Action not permitted
Modal body text goes here.
Modal Title
Modal Body
CERTFR-2026-AVI-1432
Vulnerability from certfr_avis
De multiples vulnérabilités ont été découvertes dans le noyau Linux de SUSE. Certaines d'entre elles permettent à un attaquant de provoquer une atteinte à la confidentialité des données, un contournement de la politique de sécurité et un déni de service.
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 | Public Cloud Module | Public Cloud Module 15-SP7 | ||
| SUSE | SUSE Linux Enterprise High Performance Computing | SUSE Linux Enterprise High Performance Computing 15 SP5 | ||
| SUSE | SUSE Linux Enterprise High Availability Extension | SUSE Linux Enterprise High Availability Extension 15 SP4 | ||
| SUSE | SUSE Linux Enterprise High Performance Computing | SUSE Linux Enterprise High Performance Computing ESPOS 15 SP5 | ||
| SUSE | openSUSE Leap | openSUSE Leap 15.5 | ||
| SUSE | SUSE Linux Enterprise Live Patching | SUSE Linux Enterprise Live Patching 15-SP5 | ||
| SUSE | SUSE Linux Enterprise Server | SUSE Linux Enterprise Server 12 SP5 LTSS | ||
| SUSE | SUSE Linux Enterprise Real Time | SUSE Linux Enterprise Real Time 15 SP7 | ||
| SUSE | SUSE Linux Enterprise Server | SUSE Linux Enterprise Server 16.0 | ||
| SUSE | SUSE Linux Enterprise Server | SUSE Linux Enterprise Server for SAP Applications 15 SP6 | ||
| SUSE | SUSE Linux Enterprise High Performance Computing | SUSE Linux Enterprise High Performance Computing 12 SP5 | ||
| SUSE | SUSE Linux Enterprise High Performance Computing | SUSE Linux Enterprise High Performance Computing 15 SP4 | ||
| SUSE | SUSE Manager Retail Branch Server | SUSE Manager Retail Branch Server 4.3 | ||
| SUSE | SUSE Linux Enterprise Live Patching | SUSE Linux Enterprise Live Patching 12-SP5 | ||
| SUSE | SUSE Linux Enterprise Server | SUSE Linux Enterprise Server 12 SP5 LTSS Extended Security | ||
| SUSE | openSUSE Leap | openSUSE Leap 15.4 | ||
| SUSE | SUSE Linux Enterprise Desktop | SUSE Linux Enterprise Desktop 15 SP7 | ||
| SUSE | SUSE Linux Enterprise Live Patching | SUSE Linux Enterprise Live Patching 15-SP6 | ||
| SUSE | SUSE Linux Enterprise Server | SUSE Linux Enterprise Server for SAP Applications 12 SP5 | ||
| SUSE | SUSE Linux Enterprise Live Patching | SUSE Linux Enterprise Live Patching 15-SP7 | ||
| SUSE | SUSE Linux Enterprise High Performance Computing | SUSE Linux Enterprise High Performance Computing LTSS 15 SP4 | ||
| SUSE | SUSE Linux Enterprise Server | SUSE Linux Enterprise Server 12 SP5 | ||
| SUSE | SUSE Linux Enterprise Server | SUSE Linux Enterprise Server 15 SP4 LTSS | ||
| SUSE | SUSE Linux Enterprise Server | SUSE Linux Enterprise Server 15 SP5 | ||
| SUSE | SUSE Linux Enterprise Micro | SUSE Linux Enterprise Micro for Rancher 5.4 | ||
| SUSE | SUSE Linux Enterprise High Performance Computing | SUSE Linux Enterprise High Performance Computing ESPOS 15 SP4 | ||
| SUSE | SUSE Linux Micro Extras | SUSE Linux Micro Extras 6.1 | ||
| SUSE | SUSE Linux Enterprise Server | SUSE Linux Enterprise Server for SAP Applications 15 SP5 | ||
| SUSE | SUSE Linux Enterprise High Performance Computing | SUSE Linux Enterprise High Performance Computing LTSS 15 SP5 | ||
| SUSE | openSUSE Leap | openSUSE Leap 15.6 | ||
| SUSE | SUSE Linux Enterprise Micro | SUSE Linux Enterprise Micro 5.3 | ||
| SUSE | SUSE Linux Enterprise Real Time | SUSE Linux Enterprise Real Time 15 SP5 | ||
| SUSE | SUSE Linux Enterprise Server | SUSE Linux Enterprise Server for SAP applications 16.0 | ||
| SUSE | SUSE Linux Enterprise Micro | SUSE Linux Enterprise Micro for Rancher 5.3 | ||
| SUSE | SUSE Linux Enterprise Server | SUSE Linux Enterprise Server 15 SP6 | ||
| SUSE | SUSE Linux Enterprise Workstation Extension | SUSE Linux Enterprise Workstation Extension 15 SP7 | ||
| SUSE | SUSE Linux Enterprise Real Time | SUSE Linux Enterprise Real Time 15 SP4 | ||
| SUSE | SUSE Manager Proxy | SUSE Manager Proxy 4.3 | ||
| SUSE | SUSE Linux Micro Extras | SUSE Linux Micro Extras 6.2 | ||
| SUSE | SUSE Linux Enterprise Server | SUSE Linux Enterprise Server for SAP Applications 15 SP7 | ||
| SUSE | SUSE Linux Enterprise Server | SUSE Linux Enterprise Server 11 SP4 | ||
| SUSE | SUSE Linux Enterprise Server | SUSE Linux Enterprise Server for SAP Applications 15 SP4 | ||
| SUSE | Basesystem Module | Basesystem Module 15-SP7 | ||
| SUSE | SUSE Linux Enterprise High Availability Extension | SUSE Linux Enterprise High Availability Extension 15 SP7 | ||
| SUSE | SUSE Linux Micro | SUSE Linux Micro 6.2 | ||
| SUSE | SUSE Linux Enterprise Micro | SUSE Linux Enterprise Micro 5.5 | ||
| SUSE | SUSE Linux Enterprise Server | SUSE Linux Enterprise Server 15 SP4 | ||
| SUSE | SUSE Linux Enterprise Real Time | SUSE Linux Enterprise Real Time 15 SP6 | ||
| SUSE | SUSE Linux Micro | SUSE Linux Micro 6.1 | ||
| SUSE | Legacy Module | Legacy Module 15-SP7 | ||
| SUSE | SUSE Linux Micro | SUSE Linux Micro 6.0 | ||
| SUSE | SUSE Linux Enterprise Server | SUSE Linux Enterprise Server 15 SP7 | ||
| SUSE | SUSE Linux Enterprise Server | SUSE Linux Enterprise Server 15 SP5 LTSS | ||
| SUSE | SUSE Manager Server | SUSE Manager Server 4.3 | ||
| SUSE | SUSE Linux Enterprise Server | SUSE Linux Enterprise Server 15 SP6 LTSS | ||
| SUSE | SUSE Real Time Module | SUSE Real Time Module 15-SP7 | ||
| SUSE | Development Tools Module | Development Tools Module 15-SP7 | ||
| SUSE | SUSE Linux Enterprise High Availability Extension | SUSE Linux Enterprise High Availability Extension 15 SP6 | ||
| SUSE | SUSE Linux Enterprise Micro | SUSE Linux Enterprise Micro 5.4 | ||
| SUSE | SUSE Linux Enterprise Live Patching | SUSE Linux Enterprise Live Patching 15-SP4 | ||
| SUSE | SUSE Linux Enterprise Server | SUSE Linux Enterprise Server 11 SP4 LTSS EXTREME CORE | ||
| SUSE | SUSE Linux Micro Extras | SUSE Linux Micro Extras 6.0 |
References
{
"$ref": "https://www.cert.ssi.gouv.fr/openapi.json",
"affected_systems": [
{
"description": "Public Cloud Module 15-SP7",
"product": {
"name": "Public Cloud Module",
"vendor": {
"name": "SUSE",
"scada": false
}
}
},
{
"description": "SUSE Linux Enterprise High Performance Computing 15 SP5",
"product": {
"name": "SUSE Linux Enterprise High Performance Computing",
"vendor": {
"name": "SUSE",
"scada": false
}
}
},
{
"description": "SUSE Linux Enterprise High Availability Extension 15 SP4",
"product": {
"name": "SUSE Linux Enterprise High Availability Extension",
"vendor": {
"name": "SUSE",
"scada": false
}
}
},
{
"description": "SUSE Linux Enterprise High Performance Computing ESPOS 15 SP5",
"product": {
"name": "SUSE Linux Enterprise High Performance Computing",
"vendor": {
"name": "SUSE",
"scada": false
}
}
},
{
"description": "openSUSE Leap 15.5",
"product": {
"name": "openSUSE Leap",
"vendor": {
"name": "SUSE",
"scada": false
}
}
},
{
"description": "SUSE Linux Enterprise Live Patching 15-SP5",
"product": {
"name": "SUSE Linux Enterprise Live Patching",
"vendor": {
"name": "SUSE",
"scada": false
}
}
},
{
"description": "SUSE Linux Enterprise Server 12 SP5 LTSS",
"product": {
"name": "SUSE Linux Enterprise Server",
"vendor": {
"name": "SUSE",
"scada": false
}
}
},
{
"description": "SUSE Linux Enterprise Real Time 15 SP7",
"product": {
"name": "SUSE Linux Enterprise Real Time",
"vendor": {
"name": "SUSE",
"scada": false
}
}
},
{
"description": "SUSE Linux Enterprise Server 16.0",
"product": {
"name": "SUSE Linux Enterprise Server",
"vendor": {
"name": "SUSE",
"scada": false
}
}
},
{
"description": "SUSE Linux Enterprise Server for SAP Applications 15 SP6",
"product": {
"name": "SUSE Linux Enterprise Server",
"vendor": {
"name": "SUSE",
"scada": false
}
}
},
{
"description": "SUSE Linux Enterprise High Performance Computing 12 SP5",
"product": {
"name": "SUSE Linux Enterprise High Performance Computing",
"vendor": {
"name": "SUSE",
"scada": false
}
}
},
{
"description": "SUSE Linux Enterprise High Performance Computing 15 SP4",
"product": {
"name": "SUSE Linux Enterprise High Performance Computing",
"vendor": {
"name": "SUSE",
"scada": false
}
}
},
{
"description": "SUSE Manager Retail Branch Server 4.3",
"product": {
"name": "SUSE Manager Retail Branch Server",
"vendor": {
"name": "SUSE",
"scada": false
}
}
},
{
"description": "SUSE Linux Enterprise Live Patching 12-SP5",
"product": {
"name": "SUSE Linux Enterprise Live Patching",
"vendor": {
"name": "SUSE",
"scada": false
}
}
},
{
"description": "SUSE Linux Enterprise Server 12 SP5 LTSS Extended Security",
"product": {
"name": "SUSE Linux Enterprise Server",
"vendor": {
"name": "SUSE",
"scada": false
}
}
},
{
"description": "openSUSE Leap 15.4",
"product": {
"name": "openSUSE Leap",
"vendor": {
"name": "SUSE",
"scada": false
}
}
},
{
"description": "SUSE Linux Enterprise Desktop 15 SP7",
"product": {
"name": "SUSE Linux Enterprise Desktop",
"vendor": {
"name": "SUSE",
"scada": false
}
}
},
{
"description": "SUSE Linux Enterprise Live Patching 15-SP6",
"product": {
"name": "SUSE Linux Enterprise Live Patching",
"vendor": {
"name": "SUSE",
"scada": false
}
}
},
{
"description": "SUSE Linux Enterprise Server for SAP Applications 12 SP5",
"product": {
"name": "SUSE Linux Enterprise Server",
"vendor": {
"name": "SUSE",
"scada": false
}
}
},
{
"description": "SUSE Linux Enterprise Live Patching 15-SP7",
"product": {
"name": "SUSE Linux Enterprise Live Patching",
"vendor": {
"name": "SUSE",
"scada": false
}
}
},
{
"description": "SUSE Linux Enterprise High Performance Computing LTSS 15 SP4",
"product": {
"name": "SUSE Linux Enterprise High Performance Computing",
"vendor": {
"name": "SUSE",
"scada": false
}
}
},
{
"description": "SUSE Linux Enterprise Server 12 SP5",
"product": {
"name": "SUSE Linux Enterprise Server",
"vendor": {
"name": "SUSE",
"scada": false
}
}
},
{
"description": "SUSE Linux Enterprise Server 15 SP4 LTSS",
"product": {
"name": "SUSE Linux Enterprise Server",
"vendor": {
"name": "SUSE",
"scada": false
}
}
},
{
"description": "SUSE Linux Enterprise Server 15 SP5",
"product": {
"name": "SUSE Linux Enterprise Server",
"vendor": {
"name": "SUSE",
"scada": false
}
}
},
{
"description": "SUSE Linux Enterprise Micro for Rancher 5.4",
"product": {
"name": "SUSE Linux Enterprise Micro",
"vendor": {
"name": "SUSE",
"scada": false
}
}
},
{
"description": "SUSE Linux Enterprise High Performance Computing ESPOS 15 SP4",
"product": {
"name": "SUSE Linux Enterprise High Performance Computing",
"vendor": {
"name": "SUSE",
"scada": false
}
}
},
{
"description": "SUSE Linux Micro Extras 6.1",
"product": {
"name": "SUSE Linux Micro Extras",
"vendor": {
"name": "SUSE",
"scada": false
}
}
},
{
"description": "SUSE Linux Enterprise Server for SAP Applications 15 SP5",
"product": {
"name": "SUSE Linux Enterprise Server",
"vendor": {
"name": "SUSE",
"scada": false
}
}
},
{
"description": "SUSE Linux Enterprise High Performance Computing LTSS 15 SP5",
"product": {
"name": "SUSE Linux Enterprise High Performance Computing",
"vendor": {
"name": "SUSE",
"scada": false
}
}
},
{
"description": "openSUSE Leap 15.6",
"product": {
"name": "openSUSE Leap",
"vendor": {
"name": "SUSE",
"scada": false
}
}
},
{
"description": "SUSE Linux Enterprise Micro 5.3",
"product": {
"name": "SUSE Linux Enterprise Micro",
"vendor": {
"name": "SUSE",
"scada": false
}
}
},
{
"description": "SUSE Linux Enterprise Real Time 15 SP5",
"product": {
"name": "SUSE Linux Enterprise Real Time",
"vendor": {
"name": "SUSE",
"scada": false
}
}
},
{
"description": "SUSE Linux Enterprise Server for SAP applications 16.0",
"product": {
"name": "SUSE Linux Enterprise Server",
"vendor": {
"name": "SUSE",
"scada": false
}
}
},
{
"description": "SUSE Linux Enterprise Micro for Rancher 5.3",
"product": {
"name": "SUSE Linux Enterprise Micro",
"vendor": {
"name": "SUSE",
"scada": false
}
}
},
{
"description": "SUSE Linux Enterprise Server 15 SP6",
"product": {
"name": "SUSE Linux Enterprise Server",
"vendor": {
"name": "SUSE",
"scada": false
}
}
},
{
"description": "SUSE Linux Enterprise Workstation Extension 15 SP7",
"product": {
"name": "SUSE Linux Enterprise Workstation Extension",
"vendor": {
"name": "SUSE",
"scada": false
}
}
},
{
"description": "SUSE Linux Enterprise Real Time 15 SP4",
"product": {
"name": "SUSE Linux Enterprise Real Time",
"vendor": {
"name": "SUSE",
"scada": false
}
}
},
{
"description": "SUSE Manager Proxy 4.3",
"product": {
"name": "SUSE Manager Proxy",
"vendor": {
"name": "SUSE",
"scada": false
}
}
},
{
"description": "SUSE Linux Micro Extras 6.2",
"product": {
"name": "SUSE Linux Micro Extras",
"vendor": {
"name": "SUSE",
"scada": false
}
}
},
{
"description": "SUSE Linux Enterprise Server for SAP Applications 15 SP7",
"product": {
"name": "SUSE Linux Enterprise Server",
"vendor": {
"name": "SUSE",
"scada": false
}
}
},
{
"description": "SUSE Linux Enterprise Server 11 SP4",
"product": {
"name": "SUSE Linux Enterprise Server",
"vendor": {
"name": "SUSE",
"scada": false
}
}
},
{
"description": "SUSE Linux Enterprise Server for SAP Applications 15 SP4",
"product": {
"name": "SUSE Linux Enterprise Server",
"vendor": {
"name": "SUSE",
"scada": false
}
}
},
{
"description": "Basesystem Module 15-SP7",
"product": {
"name": "Basesystem Module",
"vendor": {
"name": "SUSE",
"scada": false
}
}
},
{
"description": "SUSE Linux Enterprise High Availability Extension 15 SP7",
"product": {
"name": "SUSE Linux Enterprise High Availability Extension",
"vendor": {
"name": "SUSE",
"scada": false
}
}
},
{
"description": "SUSE Linux Micro 6.2",
"product": {
"name": "SUSE Linux Micro",
"vendor": {
"name": "SUSE",
"scada": false
}
}
},
{
"description": "SUSE Linux Enterprise Micro 5.5",
"product": {
"name": "SUSE Linux Enterprise Micro",
"vendor": {
"name": "SUSE",
"scada": false
}
}
},
{
"description": "SUSE Linux Enterprise Server 15 SP4",
"product": {
"name": "SUSE Linux Enterprise Server",
"vendor": {
"name": "SUSE",
"scada": false
}
}
},
{
"description": "SUSE Linux Enterprise Real Time 15 SP6",
"product": {
"name": "SUSE Linux Enterprise Real Time",
"vendor": {
"name": "SUSE",
"scada": false
}
}
},
{
"description": "SUSE Linux Micro 6.1",
"product": {
"name": "SUSE Linux Micro",
"vendor": {
"name": "SUSE",
"scada": false
}
}
},
{
"description": "Legacy Module 15-SP7",
"product": {
"name": "Legacy Module",
"vendor": {
"name": "SUSE",
"scada": false
}
}
},
{
"description": "SUSE Linux Micro 6.0",
"product": {
"name": "SUSE Linux Micro",
"vendor": {
"name": "SUSE",
"scada": false
}
}
},
{
"description": "SUSE Linux Enterprise Server 15 SP7",
"product": {
"name": "SUSE Linux Enterprise Server",
"vendor": {
"name": "SUSE",
"scada": false
}
}
},
{
"description": "SUSE Linux Enterprise Server 15 SP5 LTSS",
"product": {
"name": "SUSE Linux Enterprise Server",
"vendor": {
"name": "SUSE",
"scada": false
}
}
},
{
"description": "SUSE Manager Server 4.3",
"product": {
"name": "SUSE Manager Server",
"vendor": {
"name": "SUSE",
"scada": false
}
}
},
{
"description": "SUSE Linux Enterprise Server 15 SP6 LTSS",
"product": {
"name": "SUSE Linux Enterprise Server",
"vendor": {
"name": "SUSE",
"scada": false
}
}
},
{
"description": "SUSE Real Time Module 15-SP7",
"product": {
"name": "SUSE Real Time Module",
"vendor": {
"name": "SUSE",
"scada": false
}
}
},
{
"description": "Development Tools Module 15-SP7",
"product": {
"name": "Development Tools Module",
"vendor": {
"name": "SUSE",
"scada": false
}
}
},
{
"description": "SUSE Linux Enterprise High Availability Extension 15 SP6",
"product": {
"name": "SUSE Linux Enterprise High Availability Extension",
"vendor": {
"name": "SUSE",
"scada": false
}
}
},
{
"description": "SUSE Linux Enterprise Micro 5.4",
"product": {
"name": "SUSE Linux Enterprise Micro",
"vendor": {
"name": "SUSE",
"scada": false
}
}
},
{
"description": "SUSE Linux Enterprise Live Patching 15-SP4",
"product": {
"name": "SUSE Linux Enterprise Live Patching",
"vendor": {
"name": "SUSE",
"scada": false
}
}
},
{
"description": "SUSE Linux Enterprise Server 11 SP4 LTSS EXTREME CORE",
"product": {
"name": "SUSE Linux Enterprise Server",
"vendor": {
"name": "SUSE",
"scada": false
}
}
},
{
"description": "SUSE Linux Micro Extras 6.0",
"product": {
"name": "SUSE Linux Micro Extras",
"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-97415",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-97415"
},
{
"name": "CVE-2026-97555",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-97555"
},
{
"name": "CVE-2026-98260",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-98260"
},
{
"name": "CVE-2026-64461",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-64461"
},
{
"name": "CVE-2026-43457",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-43457"
},
{
"name": "CVE-2026-97943",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-97943"
},
{
"name": "CVE-2026-89706",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-89706"
},
{
"name": "CVE-2026-74715",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74715"
},
{
"name": "CVE-2026-72015",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-72015"
},
{
"name": "CVE-2026-63830",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-63830"
},
{
"name": "CVE-2026-98365",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-98365"
},
{
"name": "CVE-2026-43132",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-43132"
},
{
"name": "CVE-2026-64424",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-64424"
},
{
"name": "CVE-2026-98359",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-98359"
},
{
"name": "CVE-2026-98173",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-98173"
},
{
"name": "CVE-2026-72319",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-72319"
},
{
"name": "CVE-2026-68242",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-68242"
},
{
"name": "CVE-2026-46034",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-46034"
},
{
"name": "CVE-2026-98347",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-98347"
},
{
"name": "CVE-2026-89778",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-89778"
},
{
"name": "CVE-2026-97595",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-97595"
},
{
"name": "CVE-2026-68430",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-68430"
},
{
"name": "CVE-2026-98130",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-98130"
},
{
"name": "CVE-2026-74723",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74723"
},
{
"name": "CVE-2026-98253",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-98253"
},
{
"name": "CVE-2026-98354",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-98354"
},
{
"name": "CVE-2026-63948",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-63948"
},
{
"name": "CVE-2026-89811",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-89811"
},
{
"name": "CVE-2026-64068",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-64068"
},
{
"name": "CVE-2026-74653",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74653"
},
{
"name": "CVE-2026-43299",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-43299"
},
{
"name": "CVE-2026-98127",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-98127"
},
{
"name": "CVE-2026-90283",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-90283"
},
{
"name": "CVE-2026-74306",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74306"
},
{
"name": "CVE-2026-45865",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-45865"
},
{
"name": "CVE-2026-93822",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-93822"
},
{
"name": "CVE-2026-98175",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-98175"
},
{
"name": "CVE-2026-64280",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-64280"
},
{
"name": "CVE-2026-74578",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74578"
},
{
"name": "CVE-2026-31731",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-31731"
},
{
"name": "CVE-2026-72236",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-72236"
},
{
"name": "CVE-2023-54158",
"url": "https://www.cve.org/CVERecord?id=CVE-2023-54158"
},
{
"name": "CVE-2026-74583",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74583"
},
{
"name": "CVE-2026-97533",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-97533"
},
{
"name": "CVE-2026-98089",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-98089"
},
{
"name": "CVE-2026-63795",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-63795"
},
{
"name": "CVE-2024-39468",
"url": "https://www.cve.org/CVERecord?id=CVE-2024-39468"
},
{
"name": "CVE-2026-98273",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-98273"
},
{
"name": "CVE-2026-98269",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-98269"
},
{
"name": "CVE-2026-72213",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-72213"
},
{
"name": "CVE-2026-98352",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-98352"
},
{
"name": "CVE-2026-99999",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-99999"
},
{
"name": "CVE-2026-90088",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-90088"
},
{
"name": "CVE-2026-98171",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-98171"
},
{
"name": "CVE-2026-98252",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-98252"
},
{
"name": "CVE-2026-97556",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-97556"
},
{
"name": "CVE-2026-93800",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-93800"
},
{
"name": "CVE-2026-80893",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-80893"
},
{
"name": "CVE-2026-89542",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-89542"
},
{
"name": "CVE-2026-64593",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-64593"
},
{
"name": "CVE-2026-53131",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-53131"
},
{
"name": "CVE-2026-64568",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-64568"
},
{
"name": "CVE-2026-98432",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-98432"
},
{
"name": "CVE-2026-98360",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-98360"
},
{
"name": "CVE-2026-98041",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-98041"
},
{
"name": "CVE-2026-98015",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-98015"
},
{
"name": "CVE-2026-98358",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-98358"
},
{
"name": "CVE-2026-89636",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-89636"
},
{
"name": "CVE-2026-90101",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-90101"
},
{
"name": "CVE-2026-72172",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-72172"
},
{
"name": "CVE-2026-98366",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-98366"
},
{
"name": "CVE-2026-72253",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-72253"
},
{
"name": "CVE-2026-68106",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-68106"
},
{
"name": "CVE-2026-98174",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-98174"
},
{
"name": "CVE-2026-74675",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74675"
},
{
"name": "CVE-2026-72040",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-72040"
},
{
"name": "CVE-2025-68358",
"url": "https://www.cve.org/CVERecord?id=CVE-2025-68358"
},
{
"name": "CVE-2022-50578",
"url": "https://www.cve.org/CVERecord?id=CVE-2022-50578"
},
{
"name": "CVE-2026-97945",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-97945"
},
{
"name": "CVE-2026-89558",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-89558"
},
{
"name": "CVE-2026-89640",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-89640"
},
{
"name": "CVE-2026-68233",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-68233"
},
{
"name": "CVE-2026-72250",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-72250"
},
{
"name": "CVE-2026-64456",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-64456"
},
{
"name": "CVE-2026-92488",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-92488"
},
{
"name": "CVE-2026-74408",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74408"
},
{
"name": "CVE-2026-93798",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-93798"
},
{
"name": "CVE-2026-74614",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74614"
},
{
"name": "CVE-2026-97558",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-97558"
},
{
"name": "CVE-2026-97559",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-97559"
},
{
"name": "CVE-2026-63794",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-63794"
},
{
"name": "CVE-2026-74544",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74544"
},
{
"name": "CVE-2026-98016",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-98016"
},
{
"name": "CVE-2026-64060",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-64060"
},
{
"name": "CVE-2026-43184",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-43184"
},
{
"name": "CVE-2026-72355",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-72355"
},
{
"name": "CVE-2026-80579",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-80579"
},
{
"name": "CVE-2026-90430",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-90430"
},
{
"name": "CVE-2026-89631",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-89631"
},
{
"name": "CVE-2026-64435",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-64435"
},
{
"name": "CVE-2026-98261",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-98261"
},
{
"name": "CVE-2026-93287",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-93287"
},
{
"name": "CVE-2026-93134",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-93134"
},
{
"name": "CVE-2026-74368",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74368"
},
{
"name": "CVE-2026-89987",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-89987"
},
{
"name": "CVE-2026-68323",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-68323"
},
{
"name": "CVE-2026-98010",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-98010"
},
{
"name": "CVE-2026-98169",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-98169"
},
{
"name": "CVE-2026-72041",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-72041"
},
{
"name": "CVE-2026-80572",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-80572"
},
{
"name": "CVE-2026-72476",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-72476"
},
{
"name": "CVE-2026-72081",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-72081"
},
{
"name": "CVE-2026-98077",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-98077"
},
{
"name": "CVE-2026-74611",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74611"
},
{
"name": "CVE-2026-74379",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74379"
},
{
"name": "CVE-2026-45930",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-45930"
},
{
"name": "CVE-2026-63887",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-63887"
},
{
"name": "CVE-2026-74587",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74587"
},
{
"name": "CVE-2026-64062",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-64062"
},
{
"name": "CVE-2026-68241",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-68241"
},
{
"name": "CVE-2026-97942",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-97942"
},
{
"name": "CVE-2026-98167",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-98167"
},
{
"name": "CVE-2026-98125",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-98125"
},
{
"name": "CVE-2026-89593",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-89593"
},
{
"name": "CVE-2026-89754",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-89754"
},
{
"name": "CVE-2026-89755",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-89755"
},
{
"name": "CVE-2026-68303",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-68303"
},
{
"name": "CVE-2026-93066",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-93066"
},
{
"name": "CVE-2026-98323",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-98323"
},
{
"name": "CVE-2026-64070",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-64070"
},
{
"name": "CVE-2026-97564",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-97564"
},
{
"name": "CVE-2026-53108",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-53108"
},
{
"name": "CVE-2026-72174",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-72174"
},
{
"name": "CVE-2026-93222",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-93222"
},
{
"name": "CVE-2026-98367",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-98367"
},
{
"name": "CVE-2026-63939",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-63939"
},
{
"name": "CVE-2026-93252",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-93252"
},
{
"name": "CVE-2026-93787",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-93787"
},
{
"name": "CVE-2026-63983",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-63983"
},
{
"name": "CVE-2026-72305",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-72305"
},
{
"name": "CVE-2023-54180",
"url": "https://www.cve.org/CVERecord?id=CVE-2023-54180"
},
{
"name": "CVE-2026-89726",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-89726"
},
{
"name": "CVE-2026-93785",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-93785"
},
{
"name": "CVE-2026-97571",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-97571"
},
{
"name": "CVE-2026-72493",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-72493"
},
{
"name": "CVE-2026-89685",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-89685"
},
{
"name": "CVE-2026-98170",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-98170"
},
{
"name": "CVE-2026-93806",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-93806"
},
{
"name": "CVE-2026-97416",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-97416"
},
{
"name": "CVE-2026-74312",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74312"
},
{
"name": "CVE-2026-90011",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-90011"
},
{
"name": "CVE-2026-64054",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-64054"
},
{
"name": "CVE-2026-72110",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-72110"
},
{
"name": "CVE-2026-68158",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-68158"
},
{
"name": "CVE-2026-80977",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-80977"
},
{
"name": "CVE-2026-72212",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-72212"
},
{
"name": "CVE-2026-72301",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-72301"
},
{
"name": "CVE-2026-74624",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74624"
},
{
"name": "CVE-2026-64012",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-64012"
},
{
"name": "CVE-2026-89669",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-89669"
},
{
"name": "CVE-2026-98126",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-98126"
},
{
"name": "CVE-2026-64058",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-64058"
},
{
"name": "CVE-2026-43091",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-43091"
},
{
"name": "CVE-2026-64064",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-64064"
},
{
"name": "CVE-2026-64116",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-64116"
},
{
"name": "CVE-2026-64428",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-64428"
},
{
"name": "CVE-2026-93820",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-93820"
},
{
"name": "CVE-2026-90315",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-90315"
},
{
"name": "CVE-2026-97491",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-97491"
},
{
"name": "CVE-2026-64422",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-64422"
},
{
"name": "CVE-2026-98357",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-98357"
},
{
"name": "CVE-2026-93821",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-93821"
},
{
"name": "CVE-2026-90289",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-90289"
},
{
"name": "CVE-2026-46028",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-46028"
},
{
"name": "CVE-2026-98216",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-98216"
},
{
"name": "CVE-2025-71183",
"url": "https://www.cve.org/CVERecord?id=CVE-2025-71183"
},
{
"name": "CVE-2026-97563",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-97563"
},
{
"name": "CVE-2026-68236",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-68236"
},
{
"name": "CVE-2026-98248",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-98248"
},
{
"name": "CVE-2026-72405",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-72405"
},
{
"name": "CVE-2026-97562",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-97562"
},
{
"name": "CVE-2026-64063",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-64063"
},
{
"name": "CVE-2026-89528",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-89528"
},
{
"name": "CVE-2026-97574",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-97574"
},
{
"name": "CVE-2026-43283",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-43283"
},
{
"name": "CVE-2026-97561",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-97561"
},
{
"name": "CVE-2026-97554",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-97554"
}
],
"initial_release_date": "2026-10-30T00:00:00",
"last_revision_date": "2026-10-30T00:00:00",
"links": [],
"reference": "CERTFR-2026-AVI-1432",
"revisions": [
{
"description": "Version initiale",
"revision_date": "2026-10-30T00:00:00.000000"
}
],
"risks": [
{
"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"
}
],
"summary": "De multiples vuln\u00e9rabilit\u00e9s ont \u00e9t\u00e9 d\u00e9couvertes dans le noyau Linux de SUSE. Certaines d\u0027entre elles permettent \u00e0 un attaquant de provoquer une atteinte \u00e0 la confidentialit\u00e9 des donn\u00e9es, un contournement de la politique de s\u00e9curit\u00e9 et un d\u00e9ni de service.",
"title": "Multiples vuln\u00e9rabilit\u00e9s dans le noyau Linux de SUSE",
"vendor_advisories": [
{
"published_at": "2026-10-29",
"title": "Bulletin de s\u00e9curit\u00e9 SUSE SUSE-SU-2026:4933-1",
"url": "https://www.suse.com/support/update/announcement/2026/suse-su-20264933-1"
},
{
"published_at": "2026-10-24",
"title": "Bulletin de s\u00e9curit\u00e9 SUSE SUSE-SU-2026:24419-1",
"url": "https://www.suse.com/support/update/announcement/2026/suse-su-202624419-1"
},
{
"published_at": "2026-10-19",
"title": "Bulletin de s\u00e9curit\u00e9 SUSE SUSE-SU-2026:24312-1",
"url": "https://www.suse.com/support/update/announcement/2026/suse-su-202624312-1"
},
{
"published_at": "2026-10-29",
"title": "Bulletin de s\u00e9curit\u00e9 SUSE SUSE-SU-2026:4935-1",
"url": "https://www.suse.com/support/update/announcement/2026/suse-su-20264935-1"
},
{
"published_at": "2026-10-21",
"title": "Bulletin de s\u00e9curit\u00e9 SUSE SUSE-SU-2026:24364-1",
"url": "https://www.suse.com/support/update/announcement/2026/suse-su-202624364-1"
},
{
"published_at": "2026-10-21",
"title": "Bulletin de s\u00e9curit\u00e9 SUSE SUSE-SU-2026:24379-1",
"url": "https://www.suse.com/support/update/announcement/2026/suse-su-202624379-1"
},
{
"published_at": "2026-10-21",
"title": "Bulletin de s\u00e9curit\u00e9 SUSE SUSE-SU-2026:24375-1",
"url": "https://www.suse.com/support/update/announcement/2026/suse-su-202624375-1"
},
{
"published_at": "2026-10-26",
"title": "Bulletin de s\u00e9curit\u00e9 SUSE SUSE-SU-2026:24458-1",
"url": "https://www.suse.com/support/update/announcement/2026/suse-su-202624458-1"
},
{
"published_at": "2026-10-21",
"title": "Bulletin de s\u00e9curit\u00e9 SUSE SUSE-SU-2026:24371-1",
"url": "https://www.suse.com/support/update/announcement/2026/suse-su-202624371-1"
},
{
"published_at": "2026-10-29",
"title": "Bulletin de s\u00e9curit\u00e9 SUSE SUSE-SU-2026:4938-1",
"url": "https://www.suse.com/support/update/announcement/2026/suse-su-20264938-1"
},
{
"published_at": "2026-10-23",
"title": "Bulletin de s\u00e9curit\u00e9 SUSE SUSE-SU-2026:4892-1",
"url": "https://www.suse.com/support/update/announcement/2026/suse-su-20264892-1"
},
{
"published_at": "2026-10-26",
"title": "Bulletin de s\u00e9curit\u00e9 SUSE SUSE-SU-2026:24433-1",
"url": "https://www.suse.com/support/update/announcement/2026/suse-su-202624433-1"
},
{
"published_at": "2026-10-23",
"title": "Bulletin de s\u00e9curit\u00e9 SUSE SUSE-SU-2026:24417-1",
"url": "https://www.suse.com/support/update/announcement/2026/suse-su-202624417-1"
},
{
"published_at": "2026-10-23",
"title": "Bulletin de s\u00e9curit\u00e9 SUSE SUSE-SU-2026:24415-1",
"url": "https://www.suse.com/support/update/announcement/2026/suse-su-202624415-1"
},
{
"published_at": "2026-10-23",
"title": "Bulletin de s\u00e9curit\u00e9 SUSE SUSE-SU-2026:4889-1",
"url": "https://www.suse.com/support/update/announcement/2026/suse-su-20264889-1"
},
{
"published_at": "2026-10-26",
"title": "Bulletin de s\u00e9curit\u00e9 SUSE SUSE-SU-2026:24456-1",
"url": "https://www.suse.com/support/update/announcement/2026/suse-su-202624456-1"
},
{
"published_at": "2026-10-24",
"title": "Bulletin de s\u00e9curit\u00e9 SUSE SUSE-SU-2026:24386-1",
"url": "https://www.suse.com/support/update/announcement/2026/suse-su-202624386-1"
},
{
"published_at": "2026-10-24",
"title": "Bulletin de s\u00e9curit\u00e9 SUSE SUSE-SU-2026:24453-1",
"url": "https://www.suse.com/support/update/announcement/2026/suse-su-202624453-1"
},
{
"published_at": "2026-10-23",
"title": "Bulletin de s\u00e9curit\u00e9 SUSE SUSE-SU-2026:4888-1",
"url": "https://www.suse.com/support/update/announcement/2026/suse-su-20264888-1"
},
{
"published_at": "2026-10-24",
"title": "Bulletin de s\u00e9curit\u00e9 SUSE SUSE-SU-2026:24452-1",
"url": "https://www.suse.com/support/update/announcement/2026/suse-su-202624452-1"
},
{
"published_at": "2026-10-19",
"title": "Bulletin de s\u00e9curit\u00e9 SUSE SUSE-SU-2026:24313-1",
"url": "https://www.suse.com/support/update/announcement/2026/suse-su-202624313-1"
},
{
"published_at": "2026-10-26",
"title": "Bulletin de s\u00e9curit\u00e9 SUSE SUSE-SU-2026:24432-1",
"url": "https://www.suse.com/support/update/announcement/2026/suse-su-202624432-1"
},
{
"published_at": "2026-10-24",
"title": "Bulletin de s\u00e9curit\u00e9 SUSE SUSE-SU-2026:24450-1",
"url": "https://www.suse.com/support/update/announcement/2026/suse-su-202624450-1"
},
{
"published_at": "2026-10-26",
"title": "Bulletin de s\u00e9curit\u00e9 SUSE SUSE-SU-2026:24455-1",
"url": "https://www.suse.com/support/update/announcement/2026/suse-su-202624455-1"
},
{
"published_at": "2026-10-24",
"title": "Bulletin de s\u00e9curit\u00e9 SUSE SUSE-SU-2026:24424-1",
"url": "https://www.suse.com/support/update/announcement/2026/suse-su-202624424-1"
},
{
"published_at": "2026-10-23",
"title": "Bulletin de s\u00e9curit\u00e9 SUSE SUSE-SU-2026:4883-1",
"url": "https://www.suse.com/support/update/announcement/2026/suse-su-20264883-1"
},
{
"published_at": "2026-10-24",
"title": "Bulletin de s\u00e9curit\u00e9 SUSE SUSE-SU-2026:24427-1",
"url": "https://www.suse.com/support/update/announcement/2026/suse-su-202624427-1"
},
{
"published_at": "2026-10-24",
"title": "Bulletin de s\u00e9curit\u00e9 SUSE SUSE-SU-2026:24425-1",
"url": "https://www.suse.com/support/update/announcement/2026/suse-su-202624425-1"
},
{
"published_at": "2026-10-19",
"title": "Bulletin de s\u00e9curit\u00e9 SUSE SUSE-SU-2026:24357-1",
"url": "https://www.suse.com/support/update/announcement/2026/suse-su-202624357-1"
},
{
"published_at": "2026-10-19",
"title": "Bulletin de s\u00e9curit\u00e9 SUSE SUSE-SU-2026:24355-1",
"url": "https://www.suse.com/support/update/announcement/2026/suse-su-202624355-1"
},
{
"published_at": "2026-10-29",
"title": "Bulletin de s\u00e9curit\u00e9 SUSE SUSE-SU-2026:4940-1",
"url": "https://www.suse.com/support/update/announcement/2026/suse-su-20264940-1"
},
{
"published_at": "2026-10-29",
"title": "Bulletin de s\u00e9curit\u00e9 SUSE SUSE-SU-2026:4939-1",
"url": "https://www.suse.com/support/update/announcement/2026/suse-su-20264939-1"
},
{
"published_at": "2026-10-24",
"title": "Bulletin de s\u00e9curit\u00e9 SUSE SUSE-SU-2026:24449-1",
"url": "https://www.suse.com/support/update/announcement/2026/suse-su-202624449-1"
},
{
"published_at": "2026-10-26",
"title": "Bulletin de s\u00e9curit\u00e9 SUSE SUSE-SU-2026:24457-1",
"url": "https://www.suse.com/support/update/announcement/2026/suse-su-202624457-1"
},
{
"published_at": "2026-10-29",
"title": "Bulletin de s\u00e9curit\u00e9 SUSE SUSE-SU-2026:4934-1",
"url": "https://www.suse.com/support/update/announcement/2026/suse-su-20264934-1"
},
{
"published_at": "2026-10-24",
"title": "Bulletin de s\u00e9curit\u00e9 SUSE SUSE-SU-2026:24426-1",
"url": "https://www.suse.com/support/update/announcement/2026/suse-su-202624426-1"
},
{
"published_at": "2026-10-26",
"title": "Bulletin de s\u00e9curit\u00e9 SUSE SUSE-SU-2026:24434-1",
"url": "https://www.suse.com/support/update/announcement/2026/suse-su-202624434-1"
},
{
"published_at": "2026-10-23",
"title": "Bulletin de s\u00e9curit\u00e9 SUSE SUSE-SU-2026:4887-1",
"url": "https://www.suse.com/support/update/announcement/2026/suse-su-20264887-1"
},
{
"published_at": "2026-10-24",
"title": "Bulletin de s\u00e9curit\u00e9 SUSE SUSE-SU-2026:24428-1",
"url": "https://www.suse.com/support/update/announcement/2026/suse-su-202624428-1"
},
{
"published_at": "2026-10-29",
"title": "Bulletin de s\u00e9curit\u00e9 SUSE SUSE-SU-2026:4936-1",
"url": "https://www.suse.com/support/update/announcement/2026/suse-su-20264936-1"
},
{
"published_at": "2026-10-26",
"title": "Bulletin de s\u00e9curit\u00e9 SUSE SUSE-SU-2026:24454-1",
"url": "https://www.suse.com/support/update/announcement/2026/suse-su-202624454-1"
},
{
"published_at": "2026-10-24",
"title": "Bulletin de s\u00e9curit\u00e9 SUSE SUSE-SU-2026:24420-1",
"url": "https://www.suse.com/support/update/announcement/2026/suse-su-202624420-1"
},
{
"published_at": "2026-10-19",
"title": "Bulletin de s\u00e9curit\u00e9 SUSE SUSE-SU-2026:24356-1",
"url": "https://www.suse.com/support/update/announcement/2026/suse-su-202624356-1"
},
{
"published_at": "2026-10-26",
"title": "Bulletin de s\u00e9curit\u00e9 SUSE SUSE-SU-2026:24431-1",
"url": "https://www.suse.com/support/update/announcement/2026/suse-su-202624431-1"
},
{
"published_at": "2026-10-24",
"title": "Bulletin de s\u00e9curit\u00e9 SUSE SUSE-SU-2026:24451-1",
"url": "https://www.suse.com/support/update/announcement/2026/suse-su-202624451-1"
},
{
"published_at": "2026-10-24",
"title": "Bulletin de s\u00e9curit\u00e9 SUSE SUSE-SU-2026:24429-1",
"url": "https://www.suse.com/support/update/announcement/2026/suse-su-202624429-1"
},
{
"published_at": "2026-10-24",
"title": "Bulletin de s\u00e9curit\u00e9 SUSE SUSE-SU-2026:24423-1",
"url": "https://www.suse.com/support/update/announcement/2026/suse-su-202624423-1"
},
{
"published_at": "2026-10-26",
"title": "Bulletin de s\u00e9curit\u00e9 SUSE SUSE-SU-2026:24430-1",
"url": "https://www.suse.com/support/update/announcement/2026/suse-su-202624430-1"
},
{
"published_at": "2026-10-29",
"title": "Bulletin de s\u00e9curit\u00e9 SUSE SUSE-SU-2026:4937-1",
"url": "https://www.suse.com/support/update/announcement/2026/suse-su-20264937-1"
},
{
"published_at": "2026-10-24",
"title": "Bulletin de s\u00e9curit\u00e9 SUSE SUSE-SU-2026:24422-1",
"url": "https://www.suse.com/support/update/announcement/2026/suse-su-202624422-1"
},
{
"published_at": "2026-10-23",
"title": "Bulletin de s\u00e9curit\u00e9 SUSE SUSE-SU-2026:24416-1",
"url": "https://www.suse.com/support/update/announcement/2026/suse-su-202624416-1"
}
]
}
CVE-2026-72041 (GCVE-0-2026-72041)
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:
espintcp: use sk_msg_free_partial to fix partial send
sk_msg_free_partial() ensures consistency of the skmsg at every
iteration, without having to manually handle uncharges and offsets.
This simplifies the code, and fixes some bugs in skmsg accounting when
we don't send the full contents.
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 |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-72041",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "yes"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T15:50:34.375706Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"problemTypes": [
{
"descriptions": [
{
"cweId": "CWE-664",
"description": "CWE-664 Improper Control of a Resource Through its Lifetime",
"lang": "en",
"type": "CWE"
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T21:19:24.315Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"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": "518dcb84b997dff461800b079e5f2596389f766a",
"status": "affected",
"version": "e27cca96cd68fa2c6814c90f9a1cfd36bb68c593",
"versionType": "git"
},
{
"lessThan": "4ea8c051b4bd7feec7749a980f2f70e1782b84d7",
"status": "affected",
"version": "e27cca96cd68fa2c6814c90f9a1cfd36bb68c593",
"versionType": "git"
},
{
"lessThan": "a977f78adce40b39d90d9567e7987bb110102810",
"status": "affected",
"version": "e27cca96cd68fa2c6814c90f9a1cfd36bb68c593",
"versionType": "git"
},
{
"lessThan": "54d73f18f8919735f4d04d6f43374f75756c0180",
"status": "affected",
"version": "e27cca96cd68fa2c6814c90f9a1cfd36bb68c593",
"versionType": "git"
},
{
"lessThan": "14c0b42c8a2cd9b5361bbff45b52f69c62c6a286",
"status": "affected",
"version": "e27cca96cd68fa2c6814c90f9a1cfd36bb68c593",
"versionType": "git"
},
{
"lessThan": "a66d45e0ce6d73cd79962d422388e61bfaf0cb50",
"status": "affected",
"version": "e27cca96cd68fa2c6814c90f9a1cfd36bb68c593",
"versionType": "git"
},
{
"lessThan": "a338ce41bc933d8f74c39d9b3b6f1d8ca53d9714",
"status": "affected",
"version": "e27cca96cd68fa2c6814c90f9a1cfd36bb68c593",
"versionType": "git"
},
{
"lessThan": "007800408002d871f5699bdb944f985896730b8f",
"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.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": "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.145",
"versionStartIncluding": "5.6",
"vulnerable": true
},
{
"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
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nespintcp: use sk_msg_free_partial to fix partial send\n\nsk_msg_free_partial() ensures consistency of the skmsg at every\niteration, without having to manually handle uncharges and offsets.\nThis simplifies the code, and fixes some bugs in skmsg accounting when\nwe don\u0027t send the full contents."
}
],
"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 - espintcp carries IKE/IPsec over TCP (RFC 8229) on internet-facing VPN gateways; a remote TCP peer can induce partial sends during server outbound IKE responses by shrinking/draining the receive window, corrupting skmsg state without local access.\nAC:L - The attacker controls both sides of the TCP connection and can reliably force partial sends by not reading, advertising a zero window, or resetting mid-transfer; no race or memory-layout conditions outside attacker control are required.\nPR:N - Exploitation needs no credentials on the target\u2014an unauthenticated remote peer during pre-auth IKE-over-TCP can trigger server sends; locally any user can set TCP_ULP to espintcp and sendmsg without CAP_NET_ADMIN or XFRM configuration.\nUI:N - No victim user action is required; once an espintcp TCP endpoint exists, the remote peer alone drives the partial-send condition through normal TCP flow control during server transmission.\nS:U - Impact is kernel heap corruption and privilege escalation within the host kernel; it does not cross VM, IOMMU, or sandbox security boundaries.\nC:H - Incorrect skmsg/page accounting on partial sends causes use-after-free and double-free of scatterlist pages; freed objects can be reallocated and read for arbitrary kernel memory disclosure.\nI:H - Corrupted scatterlist offsets and page refcount errors yield exploitable kernel memory corruption primitives that can enable arbitrary writes and local privilege escalation.\nA:H - Double-free and invalid page references in the send/resume path can oops or panic the kernel; a remote or local attacker can repeat the trigger via sustained partial-send pressure."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-23T12:46:32.051Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/518dcb84b997dff461800b079e5f2596389f766a"
},
{
"url": "https://git.kernel.org/stable/c/4ea8c051b4bd7feec7749a980f2f70e1782b84d7"
},
{
"url": "https://git.kernel.org/stable/c/a977f78adce40b39d90d9567e7987bb110102810"
},
{
"url": "https://git.kernel.org/stable/c/54d73f18f8919735f4d04d6f43374f75756c0180"
},
{
"url": "https://git.kernel.org/stable/c/14c0b42c8a2cd9b5361bbff45b52f69c62c6a286"
},
{
"url": "https://git.kernel.org/stable/c/a66d45e0ce6d73cd79962d422388e61bfaf0cb50"
},
{
"url": "https://git.kernel.org/stable/c/a338ce41bc933d8f74c39d9b3b6f1d8ca53d9714"
},
{
"url": "https://git.kernel.org/stable/c/007800408002d871f5699bdb944f985896730b8f"
}
],
"title": "espintcp: use sk_msg_free_partial to fix partial send",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-72041",
"datePublished": "2026-08-15T05:52:00.721Z",
"dateReserved": "2026-08-09T03:40:39.901Z",
"dateUpdated": "2026-10-19T21:19:24.315Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-80572 (GCVE-0-2026-80572)
Vulnerability from cvelistv5
Published
2026-08-26 14:37
Modified
2026-10-30 12:30
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
Input: byd - synchronize timer deletion before freeing private data
byd_disconnect() uses timer_delete() before freeing the driver's private
data. This does not wait for a running byd_clear_touch() callback, which
dereferences the private data and its psmouse pointer. A callback racing
with disconnect can therefore access the private data after it has been
freed. The timer can also still be re-armed by byd_process_byte() while
the disconnect is in progress.
Use timer_shutdown_sync() before freeing the private data: it waits for
a running callback and turns any later re-arm attempt into a no-op.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 2d5f5611dd0de52e9a52b56391a7049a52184e72 Version: 2d5f5611dd0de52e9a52b56391a7049a52184e72 Version: 2d5f5611dd0de52e9a52b56391a7049a52184e72 Version: 2d5f5611dd0de52e9a52b56391a7049a52184e72 Version: 2d5f5611dd0de52e9a52b56391a7049a52184e72 Version: 2d5f5611dd0de52e9a52b56391a7049a52184e72 Version: 2d5f5611dd0de52e9a52b56391a7049a52184e72 Version: 2d5f5611dd0de52e9a52b56391a7049a52184e72 |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-80572",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T19:17:35.214904Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T19:26:27.388Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/input/mouse/byd.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "fe2785d5513b3254368a1f0831515fc59ab0d40d",
"status": "affected",
"version": "2d5f5611dd0de52e9a52b56391a7049a52184e72",
"versionType": "git"
},
{
"lessThan": "b4d74810aad9b29c313b4d7880c84aceb5abe488",
"status": "affected",
"version": "2d5f5611dd0de52e9a52b56391a7049a52184e72",
"versionType": "git"
},
{
"lessThan": "84b205297fa15f97510342221d8c9a0119711478",
"status": "affected",
"version": "2d5f5611dd0de52e9a52b56391a7049a52184e72",
"versionType": "git"
},
{
"lessThan": "28d984a66b9e14be74986167b6ad40b5e0daf19a",
"status": "affected",
"version": "2d5f5611dd0de52e9a52b56391a7049a52184e72",
"versionType": "git"
},
{
"lessThan": "ee944a706a18322b4a2599eebe8040a2994e928f",
"status": "affected",
"version": "2d5f5611dd0de52e9a52b56391a7049a52184e72",
"versionType": "git"
},
{
"lessThan": "8dbfd8e32a13e116790780ed0be82b5a05eb9916",
"status": "affected",
"version": "2d5f5611dd0de52e9a52b56391a7049a52184e72",
"versionType": "git"
},
{
"lessThan": "2e509ef60ee41a2da0deb062c262bb530143fb37",
"status": "affected",
"version": "2d5f5611dd0de52e9a52b56391a7049a52184e72",
"versionType": "git"
},
{
"lessThan": "c83e79c0842ed29860648bcce5022ef0ba5001c6",
"status": "affected",
"version": "2d5f5611dd0de52e9a52b56391a7049a52184e72",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/input/mouse/byd.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.273",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.224",
"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.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.273",
"versionStartIncluding": "4.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.224",
"versionStartIncluding": "4.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.185",
"versionStartIncluding": "4.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.154",
"versionStartIncluding": "4.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.106",
"versionStartIncluding": "4.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.46",
"versionStartIncluding": "4.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.10",
"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\nInput: byd - synchronize timer deletion before freeing private data\n\nbyd_disconnect() uses timer_delete() before freeing the driver\u0027s private\ndata. This does not wait for a running byd_clear_touch() callback, which\ndereferences the private data and its psmouse pointer. A callback racing\nwith disconnect can therefore access the private data after it has been\nfreed. The timer can also still be re-armed by byd_process_byte() while\nthe disconnect is in progress.\n\nUse timer_shutdown_sync() before freeing the private data: it waits for\na running callback and turns any later re-arm attempt into a no-op."
}
],
"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 from local PS/2 input: BYD packets enter via serio_interrupt() from built-in touchpad hardware or userio-emulated SERIO_8042 port; byd_process_byte()/byd_disconnect() are not network-exposed.\nAC:L - An attacker can arm the 64ms byd_clear_touch timer via touch/relative packets while concurrently closing userio or unbinding the port to invoke byd_disconnect(), controlling both sides of the disconnect/timer race.\nPR:L - Exploitation needs only local access to the PS/2 touchpad or /dev/userio to inject packets and trigger teardown; no init-namespace root, CAP_SYS_ADMIN, or write access to psmouse sysfs is required.\nUI:N - The attacker supplies touchpad traffic and drives device disconnect/emulation teardown themselves; no separate victim interaction (mount, plug-in approval, or click) is needed.\nS:U - Corruption stays within the host kernel address space during PS/2 driver teardown; it is standard local privilege escalation, not a guest-to-host or sandbox boundary crossing.\nC:H - byd_clear_touch() dereferences freed byd_data (priv-\u003epsmouse) and can read attacker-reclaimed slab contents, enabling kernel pointer disclosure and broader arbitrary read primitives typical of heap use-after-free bugs.\nI:H - The timer callback writes into freed byd_data fields and may call input/report helpers through a stale psmouse pointer, giving heap corruption and a path to arbitrary kernel writes or control-flow hijacking.\nA:H - Racing the timer with disconnect can cause invalid pointer dereferences, use-after-free access, kernel oops, or panic during input teardown; the condition is repeatable by re-arming the timer."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-30T12:30:37.072Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/fe2785d5513b3254368a1f0831515fc59ab0d40d"
},
{
"url": "https://git.kernel.org/stable/c/b4d74810aad9b29c313b4d7880c84aceb5abe488"
},
{
"url": "https://git.kernel.org/stable/c/84b205297fa15f97510342221d8c9a0119711478"
},
{
"url": "https://git.kernel.org/stable/c/28d984a66b9e14be74986167b6ad40b5e0daf19a"
},
{
"url": "https://git.kernel.org/stable/c/ee944a706a18322b4a2599eebe8040a2994e928f"
},
{
"url": "https://git.kernel.org/stable/c/8dbfd8e32a13e116790780ed0be82b5a05eb9916"
},
{
"url": "https://git.kernel.org/stable/c/2e509ef60ee41a2da0deb062c262bb530143fb37"
},
{
"url": "https://git.kernel.org/stable/c/c83e79c0842ed29860648bcce5022ef0ba5001c6"
}
],
"title": "Input: byd - synchronize timer deletion before freeing private data",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-80572",
"datePublished": "2026-08-26T14:37:33.141Z",
"dateReserved": "2026-08-26T14:34:25.768Z",
"dateUpdated": "2026-10-30T12:30:37.072Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-89726 (GCVE-0-2026-89726)
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:
lib/ucs2_string.c: fix out-of-bounds read in ucs2_strnlen()
Patch series "lib/ucs2_string.c: fix out-of-bounds read in
ucs2_strnlen()", v2.
This series fixes an off-by-one out-of-bounds read in ucs2_strnlen().
The first patch is the real fix, the second patch comes as a bonus and
fixes the code indentation.
This patch (of 2):
ucs2_strnlen() checks the current character before checking whether the
caller-provided maximum length has been reached. If the input is not
NUL-terminated within that bound, the loop can read one ucs2_char_t past
the limit.
Test the length before dereferencing to prevent an off-by-one
out-of-bounds read.
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": [
"lib/ucs2_string.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "04ae68af4107600120c3c41c94268f43bc350d48",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "2e5a70a175f0c74e7238b013a96c4eabc3002934",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "3ada20e110bf3245edb0a3bcddadc33d0f142f8d",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "60c74f42f5abddb85dd919b4448d5474e65dbe76",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "709eb41adaf78d59d4579a13a898125919b69bcc",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "7d658da725ea81c91f73087547b97e7ced82d62b",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "1b0dc3cbb8630f0b5cb34d848628225920a904be",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "cec0d03fe785380540dc1b4d07c80f67ae2ffc78",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"lib/ucs2_string.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\nlib/ucs2_string.c: fix out-of-bounds read in ucs2_strnlen()\n\nPatch series \"lib/ucs2_string.c: fix out-of-bounds read in\nucs2_strnlen()\", v2.\n\nThis series fixes an off-by-one out-of-bounds read in ucs2_strnlen().\n\nThe first patch is the real fix, the second patch comes as a bonus and\nfixes the code indentation.\n\n\nThis patch (of 2):\n\nucs2_strnlen() checks the current character before checking whether the\ncaller-provided maximum length has been reached. If the input is not\nNUL-terminated within that bound, the loop can read one ucs2_char_t past\nthe limit.\n\nTest the length before dereferencing to prevent an off-by-one\nout-of-bounds read."
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T08:51:39.437Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/04ae68af4107600120c3c41c94268f43bc350d48"
},
{
"url": "https://git.kernel.org/stable/c/2e5a70a175f0c74e7238b013a96c4eabc3002934"
},
{
"url": "https://git.kernel.org/stable/c/3ada20e110bf3245edb0a3bcddadc33d0f142f8d"
},
{
"url": "https://git.kernel.org/stable/c/60c74f42f5abddb85dd919b4448d5474e65dbe76"
},
{
"url": "https://git.kernel.org/stable/c/709eb41adaf78d59d4579a13a898125919b69bcc"
},
{
"url": "https://git.kernel.org/stable/c/7d658da725ea81c91f73087547b97e7ced82d62b"
},
{
"url": "https://git.kernel.org/stable/c/1b0dc3cbb8630f0b5cb34d848628225920a904be"
},
{
"url": "https://git.kernel.org/stable/c/cec0d03fe785380540dc1b4d07c80f67ae2ffc78"
}
],
"title": "lib/ucs2_string.c: fix out-of-bounds read in ucs2_strnlen()",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-89726",
"datePublished": "2026-09-11T19:46:37.480Z",
"dateReserved": "2026-09-11T19:38:34.759Z",
"dateUpdated": "2026-10-19T08:51:39.437Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-97595 (GCVE-0-2026-97595)
Vulnerability from cvelistv5
Published
2026-09-25 10:22
Modified
2026-10-19 09:09
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
mac802154: fix use-after-free of sdata via queued RX frames
The RX softirq producer ieee802154_subif_frame() queues received beacon
and MAC-command frames onto local->rx_beacon_list / rx_mac_cmd_list and
schedules a process-context worker, storing a raw mac_pkt->sdata (and
skb->dev == sdata->dev) with neither a reference nor any locking:
- the lists have no lock: the softirq producer list_add_tail()s while the
mac_wq worker list_del()s, so sibling interfaces on the same phy corrupt
the list;
- the workers dereference the interface after it may have been freed.
mac802154_rx_mac_cmd_worker() touches mac_pkt->sdata directly, and
mac802154_rx_beacon_worker() -> mac802154_process_beacon() dereferences
skb->dev (== sdata->dev). Removing an interface frees its sdata
(netdev_priv) while a queued frame still points at it, so a later worker
run is a use-after-free.
Reproduced under KASAN by flooding a victim interface with MAC command
frames and removing it (the beacon path is the same class via skb->dev):
BUG: KASAN: slab-use-after-free in mac802154_rx_mac_cmd_worker+0x463/0x630 [mac802154]
Read of size 4 at addr ffff888002f9ea18 by task kworker/u8:1/31
Workqueue: phy0-mac-cmds mac802154_rx_mac_cmd_worker [mac802154]
Call Trace:
mac802154_rx_mac_cmd_worker+0x463/0x630 [mac802154]
process_one_work+0x611/0xe80
worker_thread+0x52e/0xdc0
kthread+0x30c/0x630
ret_from_fork+0x2fd/0x3e0
Fix both lists together:
- add local->rx_lock and take it around every list access: the softirq
producer (plain spin_lock, softirq context) and the workers and flush
(spin_lock_bh, process context);
- pin the interface for the lifetime of a queued frame with
netdev_hold()/netdev_put(), so the worker can safely dereference sdata /
skb->dev even while the interface is being removed;
- dequeue under the lock at the head and loop-drain the whole list in the
workers (they previously processed one frame per run and relied on a
later enqueue to drain the rest);
- drop not-yet-started frames of an interface before it is unregistered,
from ieee802154_if_remove() (after the RCU grace period) and from the
ieee802154_remove_interfaces() loop -- the latter is the whole-phy
teardown path, which does not go through ieee802154_if_remove().
An in-flight worker that already dequeued a frame keeps its own netdev
reference; unregister_netdevice() then waits it out in netdev_run_todo(),
which runs at rtnl_unlock() (rtnl released) and after the interface has
been closed, so it does not pin rtnl. A worker blocked in an association
TX only delays that one interface's unregister (the usual "waiting for %s
to become free"), it does not hold rtnl. netdev_hold() is used for this
reason instead of a cancel_work_sync() under rtnl, which would block on
the worker's unbounded MLME TX wait via ieee802154_sync_queue().
The mac-command worker additionally skips processing for a stopped
interface (ieee802154_sdata_running()), avoiding a needless association
response during teardown.
References
| URL | Tags | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"include/net/cfg802154.h",
"net/mac802154/ieee802154_i.h",
"net/mac802154/iface.c",
"net/mac802154/main.c",
"net/mac802154/rx.c",
"net/mac802154/scan.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "4826fd8373f684f9952536333ad45b26acd3455d",
"status": "affected",
"version": "57588c71177f0bfc08509c2c3a9bfe32850c0786",
"versionType": "git"
},
{
"lessThan": "4740ef0518c5e3bf31ebfb2288a6ac3b462ead06",
"status": "affected",
"version": "57588c71177f0bfc08509c2c3a9bfe32850c0786",
"versionType": "git"
},
{
"lessThan": "07f0214018d7241e3610c1be984c8abfce16c099",
"status": "affected",
"version": "57588c71177f0bfc08509c2c3a9bfe32850c0786",
"versionType": "git"
},
{
"lessThan": "3d1fde35f95d7f02a7dc473c51d81e8d9e992cfc",
"status": "affected",
"version": "57588c71177f0bfc08509c2c3a9bfe32850c0786",
"versionType": "git"
},
{
"lessThan": "2f37fba846c9fdff5fc15b6d93656057ccd13031",
"status": "affected",
"version": "57588c71177f0bfc08509c2c3a9bfe32850c0786",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"include/net/cfg802154.h",
"net/mac802154/ieee802154_i.h",
"net/mac802154/iface.c",
"net/mac802154/main.c",
"net/mac802154/rx.c",
"net/mac802154/scan.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.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.6.158",
"versionStartIncluding": "6.3",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.111",
"versionStartIncluding": "6.3",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.53",
"versionStartIncluding": "6.3",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.7",
"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\nmac802154: fix use-after-free of sdata via queued RX frames\n\nThe RX softirq producer ieee802154_subif_frame() queues received beacon\nand MAC-command frames onto local-\u003erx_beacon_list / rx_mac_cmd_list and\nschedules a process-context worker, storing a raw mac_pkt-\u003esdata (and\nskb-\u003edev == sdata-\u003edev) with neither a reference nor any locking:\n\n - the lists have no lock: the softirq producer list_add_tail()s while the\n mac_wq worker list_del()s, so sibling interfaces on the same phy corrupt\n the list;\n\n - the workers dereference the interface after it may have been freed.\n mac802154_rx_mac_cmd_worker() touches mac_pkt-\u003esdata directly, and\n mac802154_rx_beacon_worker() -\u003e mac802154_process_beacon() dereferences\n skb-\u003edev (== sdata-\u003edev). Removing an interface frees its sdata\n (netdev_priv) while a queued frame still points at it, so a later worker\n run is a use-after-free.\n\nReproduced under KASAN by flooding a victim interface with MAC command\nframes and removing it (the beacon path is the same class via skb-\u003edev):\n\n BUG: KASAN: slab-use-after-free in mac802154_rx_mac_cmd_worker+0x463/0x630 [mac802154]\n Read of size 4 at addr ffff888002f9ea18 by task kworker/u8:1/31\n Workqueue: phy0-mac-cmds mac802154_rx_mac_cmd_worker [mac802154]\n Call Trace:\n mac802154_rx_mac_cmd_worker+0x463/0x630 [mac802154]\n process_one_work+0x611/0xe80\n worker_thread+0x52e/0xdc0\n kthread+0x30c/0x630\n ret_from_fork+0x2fd/0x3e0\n\nFix both lists together:\n\n - add local-\u003erx_lock and take it around every list access: the softirq\n producer (plain spin_lock, softirq context) and the workers and flush\n (spin_lock_bh, process context);\n\n - pin the interface for the lifetime of a queued frame with\n netdev_hold()/netdev_put(), so the worker can safely dereference sdata /\n skb-\u003edev even while the interface is being removed;\n\n - dequeue under the lock at the head and loop-drain the whole list in the\n workers (they previously processed one frame per run and relied on a\n later enqueue to drain the rest);\n\n - drop not-yet-started frames of an interface before it is unregistered,\n from ieee802154_if_remove() (after the RCU grace period) and from the\n ieee802154_remove_interfaces() loop -- the latter is the whole-phy\n teardown path, which does not go through ieee802154_if_remove().\n\nAn in-flight worker that already dequeued a frame keeps its own netdev\nreference; unregister_netdevice() then waits it out in netdev_run_todo(),\nwhich runs at rtnl_unlock() (rtnl released) and after the interface has\nbeen closed, so it does not pin rtnl. A worker blocked in an association\nTX only delays that one interface\u0027s unregister (the usual \"waiting for %s\nto become free\"), it does not hold rtnl. netdev_hold() is used for this\nreason instead of a cancel_work_sync() under rtnl, which would block on\nthe worker\u0027s unbounded MLME TX wait via ieee802154_sync_queue().\n\nThe mac-command worker additionally skips processing for a stopped\ninterface (ieee802154_sdata_running()), avoiding a needless association\nresponse during teardown."
}
],
"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 - ieee802154_subif_frame() queues every received IEEE 802.15.4 MAC command frame (and beacons during a scan) onto local-\u003erx_mac_cmd_list/rx_beacon_list from the RX tasklet with no lock, so a sender in radio range supplies the frames that race the mac_wq worker; 802.15.4 is a radio link, so this is adjacent rather than network.\nAC:H - A remote attacker only reaches the bug by making the tasklet\u0027s unlocked list_add_tail() collide with the worker\u0027s list_del() on another CPU. They control the flood but not the worker\u0027s timing, and the window is a few pointer writes. The use-after-free of sdata also needs an interface removal that the remote attacker cannot cause.\nPR:N - __ieee802154_rx_handle_packet() hands every parsed frame to each running non-monitor interface, and ieee802154_subif_frame() queues MAC command frames with no association or scan state required; unsecured frames pass mac802154_llsec_decrypt(), so no credentials are needed.\nUI:N - The victim only needs a running 802.15.4 interface, which is its normal operating state; the attacker sends the frames and the kernel queues and processes them without any user action.\nS:U - The corruption stays within the host kernel (mac802154 RX lists, cfg802154_mac_pkt, netdev_priv sdata) and crosses no VM or IOMMU boundary.\nC:H - A corrupted rx_mac_cmd_list or rx_beacon_list lets the worker dereference freed cfg802154_mac_pkt entries, their skb and sdata. Reclaimed slab contents are then read as kernel pointers, a use-after-free read that can disclose kernel memory.\nI:H - The worker does list_del(), kfree() and kfree_skb() on stale mac_pkt entries, and mac802154_process_association_req/resp() write through the freed sdata, giving write and double-free primitives on reclaimable slab memory.\nA:H - List corruption or the sdata use-after-free in mac802154_rx_mac_cmd_worker() or mac802154_rx_beacon_worker() causes a kernel oops; the commit\u0027s KASAN report shows such a slab-use-after-free."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T09:09:59.016Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/4826fd8373f684f9952536333ad45b26acd3455d"
},
{
"url": "https://git.kernel.org/stable/c/4740ef0518c5e3bf31ebfb2288a6ac3b462ead06"
},
{
"url": "https://git.kernel.org/stable/c/07f0214018d7241e3610c1be984c8abfce16c099"
},
{
"url": "https://git.kernel.org/stable/c/3d1fde35f95d7f02a7dc473c51d81e8d9e992cfc"
},
{
"url": "https://git.kernel.org/stable/c/2f37fba846c9fdff5fc15b6d93656057ccd13031"
}
],
"title": "mac802154: fix use-after-free of sdata via queued RX frames",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-97595",
"datePublished": "2026-09-25T10:22:11.134Z",
"dateReserved": "2026-09-24T16:01:01.157Z",
"dateUpdated": "2026-10-19T09:09:59.016Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-98252 (GCVE-0-2026-98252)
Vulnerability from cvelistv5
Published
2026-10-06 08:45
Modified
2026-10-19 09:16
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
RDMA/core: fix refcount bug in iwpm_get_nlmsg_request()
iwpm_get_nlmsg_request() initializes refcount _after_ list_add_tail()
making it accessible to global list where another CPU can kref_get()
on nlmsg_request causing a refcount "addition on 0" bug. Fix this
by initializing kref _before_ list_add_tail() so refcount for
nlmsg_request can be incremented/decremented normally. In addition,
also initialize every field before list_add_tail().
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 30dc5e63d6a5ad24894b5512d10b228d73645a44 Version: 30dc5e63d6a5ad24894b5512d10b228d73645a44 Version: 30dc5e63d6a5ad24894b5512d10b228d73645a44 Version: 30dc5e63d6a5ad24894b5512d10b228d73645a44 Version: 30dc5e63d6a5ad24894b5512d10b228d73645a44 Version: 30dc5e63d6a5ad24894b5512d10b228d73645a44 Version: 30dc5e63d6a5ad24894b5512d10b228d73645a44 Version: 30dc5e63d6a5ad24894b5512d10b228d73645a44 |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/infiniband/core/iwpm_util.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "52c13c63bb3662c108244e7447055e30bf40244e",
"status": "affected",
"version": "30dc5e63d6a5ad24894b5512d10b228d73645a44",
"versionType": "git"
},
{
"lessThan": "8a91609032d47e77bcb37bc8f6e88d89340d2709",
"status": "affected",
"version": "30dc5e63d6a5ad24894b5512d10b228d73645a44",
"versionType": "git"
},
{
"lessThan": "ce8a379598bd4058081416abea4279fd05a95374",
"status": "affected",
"version": "30dc5e63d6a5ad24894b5512d10b228d73645a44",
"versionType": "git"
},
{
"lessThan": "2fbac8a56004b6ce54fbfe845d4b25da6e0b55e8",
"status": "affected",
"version": "30dc5e63d6a5ad24894b5512d10b228d73645a44",
"versionType": "git"
},
{
"lessThan": "88e429a4e9bac3d2138011c5ca06254331f2587f",
"status": "affected",
"version": "30dc5e63d6a5ad24894b5512d10b228d73645a44",
"versionType": "git"
},
{
"lessThan": "e15eb536be4f646ce683d2867572b2200be877f7",
"status": "affected",
"version": "30dc5e63d6a5ad24894b5512d10b228d73645a44",
"versionType": "git"
},
{
"lessThan": "117871cdb8927542abd7b65ce5995bf0265a8c05",
"status": "affected",
"version": "30dc5e63d6a5ad24894b5512d10b228d73645a44",
"versionType": "git"
},
{
"lessThan": "33fb59da49c4c3f5c2ec9f9d4447a56857a02c02",
"status": "affected",
"version": "30dc5e63d6a5ad24894b5512d10b228d73645a44",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/infiniband/core/iwpm_util.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "3.16"
},
{
"lessThan": "3.16",
"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.112",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.54",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.8",
"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.16",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.222",
"versionStartIncluding": "3.16",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.189",
"versionStartIncluding": "3.16",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.158",
"versionStartIncluding": "3.16",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.112",
"versionStartIncluding": "3.16",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.54",
"versionStartIncluding": "3.16",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.8",
"versionStartIncluding": "3.16",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "3.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 refcount bug in iwpm_get_nlmsg_request()\n\niwpm_get_nlmsg_request() initializes refcount _after_ list_add_tail()\nmaking it accessible to global list where another CPU can kref_get()\non nlmsg_request causing a refcount \"addition on 0\" bug. Fix this\nby initializing kref _before_ list_add_tail() so refcount for\nnlmsg_request can be incremented/decremented normally. In addition,\nalso initialize every field before list_add_tail()."
}
],
"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 triggering input is a forged IWPM reply (e.g. RDMA_NL_IWPM_REG_PID) sent over a local NETLINK_RDMA socket to iwcm_nl_cb_table callbacks, which call iwpm_find_nlmsg_request(). No remote protocol carries it, and rdma_nl_rcv_msg() rejects RDMA_NL_IWCM messages from outside init_net.\nAC:H - The forged reply must land in the few-instruction gap between list_add_tail() and kref_init()/sema_init() in iwpm_get_nlmsg_request(). The host also needs an iWARP device so that iw_cm_map() sends port-mapper requests, and the attacker cannot set that up.\nPR:L - No iwcm_nl_cb_table entry sets RDMA_NL_ADMIN_PERM, and the NETLINK_RDMA socket uses NL_CFG_F_NONROOT_RECV, so an unprivileged user in the initial netns can join RDMA_NL_GROUP_IWPM, read the sequence numbers and send replies. A local login is still needed.\nUI:N - The attacker sends the netlink replies and starts iWARP connection setup without any action from another user.\nS:U - The memory corruption stays inside the kernel\u0027s own security authority. No guest/host or IOMMU boundary is crossed.\nC:H - kref_init() erases the reference taken by iwpm_find_nlmsg_request(), so the requester\u0027s kref_put() in iwpm_wait_complete_req() can free the kmalloc\u0027d iwpm_nlmsg_request while iwpm_register_pid_cb() still uses it. That is a use-after-free that can be reclaimed by sprayed data.\nI:H - After the early free, the callback\u0027s up(\u0026nlmsg_request-\u003esem) and the requester\u0027s down_timeout() write a semaphore inside a freed and possibly reclaimed slab object. That is a use-after-free write on heap memory.\nA:H - The race fires a refcount_t \u0027addition on 0\u0027 WARN (a panic under panic_on_warn), and the replies can dereference NULL req_buffer in iwpm_register_pid_cb() or touch freed memory, either of which oopses the kernel."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T09:16:23.591Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/52c13c63bb3662c108244e7447055e30bf40244e"
},
{
"url": "https://git.kernel.org/stable/c/8a91609032d47e77bcb37bc8f6e88d89340d2709"
},
{
"url": "https://git.kernel.org/stable/c/ce8a379598bd4058081416abea4279fd05a95374"
},
{
"url": "https://git.kernel.org/stable/c/2fbac8a56004b6ce54fbfe845d4b25da6e0b55e8"
},
{
"url": "https://git.kernel.org/stable/c/88e429a4e9bac3d2138011c5ca06254331f2587f"
},
{
"url": "https://git.kernel.org/stable/c/e15eb536be4f646ce683d2867572b2200be877f7"
},
{
"url": "https://git.kernel.org/stable/c/117871cdb8927542abd7b65ce5995bf0265a8c05"
},
{
"url": "https://git.kernel.org/stable/c/33fb59da49c4c3f5c2ec9f9d4447a56857a02c02"
}
],
"title": "RDMA/core: fix refcount bug in iwpm_get_nlmsg_request()",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-98252",
"datePublished": "2026-10-06T08:45:19.393Z",
"dateReserved": "2026-09-25T10:25:14.331Z",
"dateUpdated": "2026-10-19T09:16:23.591Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-64593 (GCVE-0-2026-64593)
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:
btrfs: do not trim a device which is not writeable
[BUG]
There is a bug report that btrfs/242 can randomly fail with the
following NULL pointer dereference:
run fstests btrfs/242 at 2026-06-01 10:25:08
BTRFS: device fsid d4d7f234-487c-4787-88e4-47a8b68c9874 devid 1 transid 9 /dev/sdc (8:32) scanned by mount (122609)
BTRFS info (device sdc): first mount of filesystem d4d7f234-487c-4787-88e4-47a8b68c9874
BTRFS info (device sdc): using crc32c checksum algorithm
BTRFS warning (device sdc): devid 2 uuid fbe72d72-3272-482d-80fb-ab88ed398192 is missing
BTRFS warning (device sdc): devid 2 uuid fbe72d72-3272-482d-80fb-ab88ed398192 is missing
BTRFS info (device sdc): allowing degraded mounts
BTRFS info (device sdc): turning on async discard
BTRFS info (device sdc): enabling free space tree
Unable to handle kernel NULL pointer dereference at virtual address 0000000000000018
user pgtable: 4k pages, 48-bit VAs, pgdp=000000013fd6b000
CPU: 4 UID: 0 PID: 122625 Comm: fstrim Not tainted 7.0.10-2-default #1 PREEMPT(full) openSUSE Tumbleweed e9a5f6b24978fba3bf015a992f865837fdfff3dd
Hardware name: QEMU KVM Virtual Machine, BIOS edk2-20250812-19.fc42 08/12/2025
pstate: 01400005 (nzcv daif +PAN -UAO -TCO +DIT -SSBS BTYPE=--)
pc : btrfs_trim_fs+0x34c/0xa00 [btrfs]
lr : btrfs_trim_fs+0x1f0/0xa00 [btrfs]
Call trace:
btrfs_trim_fs+0x34c/0xa00 [btrfs f02c1d570ceea621c69d302ba75dd61868083840] (P)
btrfs_ioctl_fitrim+0xe8/0x178 [btrfs f02c1d570ceea621c69d302ba75dd61868083840]
btrfs_ioctl+0xdd4/0x2bd8 [btrfs f02c1d570ceea621c69d302ba75dd61868083840]
__arm64_sys_ioctl+0xac/0x108
invoke_syscall.constprop.0+0x5c/0xd0
el0_svc_common.constprop.0+0x40/0xf0
do_el0_svc+0x24/0x40
el0_svc+0x40/0x1d0
el0t_64_sync_handler+0xa0/0xe8
el0t_64_sync+0x1b0/0x1b8
Code: 17ffff83 f94017e0 f9002be0 f9402ea0 (f9400c00)
---[ end trace 0000000000000000 ]---
Also the reporter is very kind to test the following ASSERT() added to
btrfs_trim_free_extents_throttle():
ASSERT(device->bdev,
"devid=%llu path=%s dev_state=0x%lx\n",
device->devid, btrfs_dev_name(device), device->dev_state);
And it shows the following output:
assertion failed: device->bdev, in extent-tree.c:6630 (devid=2 path=/dev/sdd dev_state=0x82)
Which means the device->bdev is NULL, and the dev_state is
BTRFS_DEV_STATE_IN_FS_METADATA | BTRFS_DEV_STATE_ITEM_FOUND, without
BTRFS_DEV_STATE_WRITEABLE flag set.
[CAUSE]
The pc points to the following call chain:
btrfs_trim_fs()
|- btrfs_trim_free_extents()
|- btrfs_trim_free_extents_throttle()
|- bdev_max_discard_sectors(device->bdev)
So the NULL pointer dereference is caused by device->bdev being NULL.
This looks impossible by a quick glance, as just before calling
btrfs_trim_free_extents_throttle(), we have skipped any device that has
BTRFS_DEV_STATE_MISSING flag set.
However in this particular case, there is a window where the missing
device is later re-scanned, causing btrfs to remove the
BTRFS_DEV_STATE_MISSING flag:
btrfs_control_ioctl()
|- btrfs_scan_one_device()
|- device_list_add()
|- rcu_assign_pointer(device->name, name);
| This updates the missing device's path to the new good path.
|
|- clear_bit(BTRFS_DEV_STATE_MISSING, &device->dev_state)
This removes the BTRFS_DEV_STATE_MISSING flag.
This allows the missing device to re-appear and clear the
BTRFS_DEV_STATE_MISSING flag. However the device still does not have
the BTRFS_DEV_STATE_WRITEABLE flag set, nor is its bdev pointer updated.
The bdev pointer remains NULL, triggering the crash later.
[FIX]
This is a big de-synchronization between BTRFS_DEV_STATE_MISSING and
device->bdev pointer, and shows a gap in btrfs's re-appearing-device
handling.
The proper handling of re-appearing device will need quite some extra
work, which is out of the context of this small
---truncated---
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 499f377f49f085ee4aa214c738e948e88626f39b Version: 499f377f49f085ee4aa214c738e948e88626f39b Version: 499f377f49f085ee4aa214c738e948e88626f39b Version: 499f377f49f085ee4aa214c738e948e88626f39b Version: 499f377f49f085ee4aa214c738e948e88626f39b Version: 499f377f49f085ee4aa214c738e948e88626f39b Version: 499f377f49f085ee4aa214c738e948e88626f39b Version: 499f377f49f085ee4aa214c738e948e88626f39b |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"fs/btrfs/extent-tree.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "f41ae7e6664f3c4361129728f2c4d5f3ed995251",
"status": "affected",
"version": "499f377f49f085ee4aa214c738e948e88626f39b",
"versionType": "git"
},
{
"lessThan": "210af872eafa0cf572a84cb303c0f9d2914c1226",
"status": "affected",
"version": "499f377f49f085ee4aa214c738e948e88626f39b",
"versionType": "git"
},
{
"lessThan": "3d8fa4b828a86b33c60858e58aaab6df273ede05",
"status": "affected",
"version": "499f377f49f085ee4aa214c738e948e88626f39b",
"versionType": "git"
},
{
"lessThan": "9c894159c5b8adc84072e3af0e55b0473a69564e",
"status": "affected",
"version": "499f377f49f085ee4aa214c738e948e88626f39b",
"versionType": "git"
},
{
"lessThan": "02c903fc6fc7e16c5d1f22d18784f1208acf43e3",
"status": "affected",
"version": "499f377f49f085ee4aa214c738e948e88626f39b",
"versionType": "git"
},
{
"lessThan": "7a64521802997257b144e6edfb4e278dbeb972dd",
"status": "affected",
"version": "499f377f49f085ee4aa214c738e948e88626f39b",
"versionType": "git"
},
{
"lessThan": "b4af31b898a948e29861cb0bae734058f9a49d9b",
"status": "affected",
"version": "499f377f49f085ee4aa214c738e948e88626f39b",
"versionType": "git"
},
{
"lessThan": "1b1937eb08f51319bf71575484cde2b8c517aedc",
"status": "affected",
"version": "499f377f49f085ee4aa214c738e948e88626f39b",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"fs/btrfs/extent-tree.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.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.3",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.212",
"versionStartIncluding": "4.3",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.178",
"versionStartIncluding": "4.3",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.145",
"versionStartIncluding": "4.3",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.96",
"versionStartIncluding": "4.3",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.39",
"versionStartIncluding": "4.3",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.4",
"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\nbtrfs: do not trim a device which is not writeable\n\n[BUG]\nThere is a bug report that btrfs/242 can randomly fail with the\nfollowing NULL pointer dereference:\n\n run fstests btrfs/242 at 2026-06-01 10:25:08\n BTRFS: device fsid d4d7f234-487c-4787-88e4-47a8b68c9874 devid 1 transid 9 /dev/sdc (8:32) scanned by mount (122609)\n BTRFS info (device sdc): first mount of filesystem d4d7f234-487c-4787-88e4-47a8b68c9874\n BTRFS info (device sdc): using crc32c checksum algorithm\n BTRFS warning (device sdc): devid 2 uuid fbe72d72-3272-482d-80fb-ab88ed398192 is missing\n BTRFS warning (device sdc): devid 2 uuid fbe72d72-3272-482d-80fb-ab88ed398192 is missing\n BTRFS info (device sdc): allowing degraded mounts\n BTRFS info (device sdc): turning on async discard\n BTRFS info (device sdc): enabling free space tree\n Unable to handle kernel NULL pointer dereference at virtual address 0000000000000018\n user pgtable: 4k pages, 48-bit VAs, pgdp=000000013fd6b000\n CPU: 4 UID: 0 PID: 122625 Comm: fstrim Not tainted 7.0.10-2-default #1 PREEMPT(full) openSUSE Tumbleweed e9a5f6b24978fba3bf015a992f865837fdfff3dd\n Hardware name: QEMU KVM Virtual Machine, BIOS edk2-20250812-19.fc42 08/12/2025\n pstate: 01400005 (nzcv daif +PAN -UAO -TCO +DIT -SSBS BTYPE=--)\n pc : btrfs_trim_fs+0x34c/0xa00 [btrfs]\n lr : btrfs_trim_fs+0x1f0/0xa00 [btrfs]\n Call trace:\n btrfs_trim_fs+0x34c/0xa00 [btrfs f02c1d570ceea621c69d302ba75dd61868083840] (P)\n btrfs_ioctl_fitrim+0xe8/0x178 [btrfs f02c1d570ceea621c69d302ba75dd61868083840]\n btrfs_ioctl+0xdd4/0x2bd8 [btrfs f02c1d570ceea621c69d302ba75dd61868083840]\n __arm64_sys_ioctl+0xac/0x108\n invoke_syscall.constprop.0+0x5c/0xd0\n el0_svc_common.constprop.0+0x40/0xf0\n do_el0_svc+0x24/0x40\n el0_svc+0x40/0x1d0\n el0t_64_sync_handler+0xa0/0xe8\n el0t_64_sync+0x1b0/0x1b8\n Code: 17ffff83 f94017e0 f9002be0 f9402ea0 (f9400c00)\n ---[ end trace 0000000000000000 ]---\n\nAlso the reporter is very kind to test the following ASSERT() added to\nbtrfs_trim_free_extents_throttle():\n\n\tASSERT(device-\u003ebdev,\n\t \"devid=%llu path=%s dev_state=0x%lx\\n\",\n\t device-\u003edevid, btrfs_dev_name(device), device-\u003edev_state);\n\nAnd it shows the following output:\n\n assertion failed: device-\u003ebdev, in extent-tree.c:6630 (devid=2 path=/dev/sdd dev_state=0x82)\n\nWhich means the device-\u003ebdev is NULL, and the dev_state is\nBTRFS_DEV_STATE_IN_FS_METADATA | BTRFS_DEV_STATE_ITEM_FOUND, without\nBTRFS_DEV_STATE_WRITEABLE flag set.\n\n[CAUSE]\nThe pc points to the following call chain:\n\n btrfs_trim_fs()\n |- btrfs_trim_free_extents()\n |- btrfs_trim_free_extents_throttle()\n |- bdev_max_discard_sectors(device-\u003ebdev)\n\nSo the NULL pointer dereference is caused by device-\u003ebdev being NULL.\n\nThis looks impossible by a quick glance, as just before calling\nbtrfs_trim_free_extents_throttle(), we have skipped any device that has\nBTRFS_DEV_STATE_MISSING flag set.\n\nHowever in this particular case, there is a window where the missing\ndevice is later re-scanned, causing btrfs to remove the\nBTRFS_DEV_STATE_MISSING flag:\n\n btrfs_control_ioctl()\n |- btrfs_scan_one_device()\n |- device_list_add()\n |- rcu_assign_pointer(device-\u003ename, name);\n | This updates the missing device\u0027s path to the new good path.\n |\n |- clear_bit(BTRFS_DEV_STATE_MISSING, \u0026device-\u003edev_state)\n This removes the BTRFS_DEV_STATE_MISSING flag.\n\nThis allows the missing device to re-appear and clear the\nBTRFS_DEV_STATE_MISSING flag. However the device still does not have\nthe BTRFS_DEV_STATE_WRITEABLE flag set, nor is its bdev pointer updated.\n\nThe bdev pointer remains NULL, triggering the crash later.\n\n[FIX]\nThis is a big de-synchronization between BTRFS_DEV_STATE_MISSING and\ndevice-\u003ebdev pointer, and shows a gap in btrfs\u0027s re-appearing-device\nhandling.\n\nThe proper handling of re-appearing device will need quite some extra\nwork, which is out of the context of this small\n---truncated---"
}
],
"providerMetadata": {
"dateUpdated": "2026-08-17T04:58:15.319Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/f41ae7e6664f3c4361129728f2c4d5f3ed995251"
},
{
"url": "https://git.kernel.org/stable/c/210af872eafa0cf572a84cb303c0f9d2914c1226"
},
{
"url": "https://git.kernel.org/stable/c/3d8fa4b828a86b33c60858e58aaab6df273ede05"
},
{
"url": "https://git.kernel.org/stable/c/9c894159c5b8adc84072e3af0e55b0473a69564e"
},
{
"url": "https://git.kernel.org/stable/c/02c903fc6fc7e16c5d1f22d18784f1208acf43e3"
},
{
"url": "https://git.kernel.org/stable/c/7a64521802997257b144e6edfb4e278dbeb972dd"
},
{
"url": "https://git.kernel.org/stable/c/b4af31b898a948e29861cb0bae734058f9a49d9b"
},
{
"url": "https://git.kernel.org/stable/c/1b1937eb08f51319bf71575484cde2b8c517aedc"
}
],
"title": "btrfs: do not trim a device which is not writeable",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-64593",
"datePublished": "2026-08-06T07:13:49.700Z",
"dateReserved": "2026-07-19T15:36:31.799Z",
"dateUpdated": "2026-08-17T04:58:15.319Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-74578 (GCVE-0-2026-74578)
Vulnerability from cvelistv5
Published
2026-08-16 08:20
Modified
2026-10-16 19:05
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
crypto: algif_skcipher - force synchronous processing on trees without ctx->state
The AIO/async path in skcipher_recvmsg() passes the socket-wide ctx->iv
directly into the skcipher request. After io_submit() the socket lock is
dropped and the request is processed asynchronously, so a concurrent
sendmsg(ALG_SET_IV) can overwrite ctx->iv and make the in-flight request
run under an attacker-controlled IV. For CTR/stream modes this is
IV/keystream reuse and lets an unprivileged user recover the plaintext of
a concurrent operation.
Snapshotting ctx->iv into per-request storage for the async path is not
sufficient. For ciphers with statesize == 0 - which includes cbc and ctr -
the MSG_MORE inter-chunk IV chaining is carried solely by the in-place
req->iv writeback, which a snapshot redirects into per-request memory that
af_alg_free_resources() releases on completion, silently producing wrong
output. Writing the IV back from the completion callback instead is not
possible either: that would require lock_sock() there, but the callback can
run in softirq/atomic context, so it must not sleep.
Make the operation synchronous instead, which removes both the IV race and
any writeback race. This is equivalent to the upstream resolution, commit
fcc77d33a34c ("net: Remove support for AIO on sockets"), which removed the
AIO socket path across net/ entirely and so produces the same end state for
this file. This patch deviates from that commit deliberately: rather than
removing AIO socket support tree-wide, which would be far too invasive for
stable, it removes only the AIO branch in crypto/algif_skcipher.c.
io_submit() now completes synchronously; AF_ALG async is rarely used in
practice.
The -EIOCBQUEUED check in skcipher_recvmsg() is now dead but harmless,
and is left alone to keep the fix minimal.
Tested on 6.6.y: attacker IV injection dropped from 2296/200000 to 0/200000
after the change; MSG_MORE chunked CTR output bit-identical to single-shot.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: e870456d8e7c8d57c059ea479b5aadbb55ff4c3a Version: e870456d8e7c8d57c059ea479b5aadbb55ff4c3a Version: e870456d8e7c8d57c059ea479b5aadbb55ff4c3a Version: e870456d8e7c8d57c059ea479b5aadbb55ff4c3a Version: e870456d8e7c8d57c059ea479b5aadbb55ff4c3a Version: e870456d8e7c8d57c059ea479b5aadbb55ff4c3a Version: e870456d8e7c8d57c059ea479b5aadbb55ff4c3a Version: e870456d8e7c8d57c059ea479b5aadbb55ff4c3a |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-74578",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T19:00:58.726885Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T19:05:57.566Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"crypto/algif_skcipher.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "bf09b0be8e851f050e98da702d247c14d81b591a",
"status": "affected",
"version": "e870456d8e7c8d57c059ea479b5aadbb55ff4c3a",
"versionType": "git"
},
{
"lessThan": "73dd3bf704ca6c20639de70c08e9a10bee904a95",
"status": "affected",
"version": "e870456d8e7c8d57c059ea479b5aadbb55ff4c3a",
"versionType": "git"
},
{
"lessThan": "f1a87ca0843d74482402a206ea2dfb315ee9acbd",
"status": "affected",
"version": "e870456d8e7c8d57c059ea479b5aadbb55ff4c3a",
"versionType": "git"
},
{
"lessThan": "7b91e51d0eb7cbb07f7f086f9176bd93dbbc85dd",
"status": "affected",
"version": "e870456d8e7c8d57c059ea479b5aadbb55ff4c3a",
"versionType": "git"
},
{
"lessThan": "60eafc7b08c6689ea3ad39eff8d97aefc8a087c7",
"status": "affected",
"version": "e870456d8e7c8d57c059ea479b5aadbb55ff4c3a",
"versionType": "git"
},
{
"lessThan": "d7860b682da55433b5da0591b0e4c1982ecd2689",
"status": "affected",
"version": "e870456d8e7c8d57c059ea479b5aadbb55ff4c3a",
"versionType": "git"
},
{
"lessThan": "b05defc41b27c7d0c05c45f67bf5b91c28f93669",
"status": "affected",
"version": "e870456d8e7c8d57c059ea479b5aadbb55ff4c3a",
"versionType": "git"
},
{
"lessThan": "fcc77d33a34cf271702e8daafb6c593e4626776d",
"status": "affected",
"version": "e870456d8e7c8d57c059ea479b5aadbb55ff4c3a",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"crypto/algif_skcipher.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.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.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.212",
"versionStartIncluding": "4.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.178",
"versionStartIncluding": "4.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.145",
"versionStartIncluding": "4.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.97",
"versionStartIncluding": "4.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.40",
"versionStartIncluding": "4.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.5",
"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\ncrypto: algif_skcipher - force synchronous processing on trees without ctx-\u003estate\n\nThe AIO/async path in skcipher_recvmsg() passes the socket-wide ctx-\u003eiv\ndirectly into the skcipher request. After io_submit() the socket lock is\ndropped and the request is processed asynchronously, so a concurrent\nsendmsg(ALG_SET_IV) can overwrite ctx-\u003eiv and make the in-flight request\nrun under an attacker-controlled IV. For CTR/stream modes this is\nIV/keystream reuse and lets an unprivileged user recover the plaintext of\na concurrent operation.\n\nSnapshotting ctx-\u003eiv into per-request storage for the async path is not\nsufficient. For ciphers with statesize == 0 - which includes cbc and ctr -\nthe MSG_MORE inter-chunk IV chaining is carried solely by the in-place\nreq-\u003eiv writeback, which a snapshot redirects into per-request memory that\naf_alg_free_resources() releases on completion, silently producing wrong\noutput. Writing the IV back from the completion callback instead is not\npossible either: that would require lock_sock() there, but the callback can\nrun in softirq/atomic context, so it must not sleep.\n\nMake the operation synchronous instead, which removes both the IV race and\nany writeback race. This is equivalent to the upstream resolution, commit\nfcc77d33a34c (\"net: Remove support for AIO on sockets\"), which removed the\nAIO socket path across net/ entirely and so produces the same end state for\nthis file. This patch deviates from that commit deliberately: rather than\nremoving AIO socket support tree-wide, which would be far too invasive for\nstable, it removes only the AIO branch in crypto/algif_skcipher.c.\nio_submit() now completes synchronously; AF_ALG async is rarely used in\npractice.\n\nThe -EIOCBQUEUED check in skcipher_recvmsg() is now dead but harmless,\nand is left alone to keep the fix minimal.\n\nTested on 6.6.y: attacker IV injection dropped from 2296/200000 to 0/200000\nafter the change; MSG_MORE chunked CTR output bit-identical to single-shot."
}
],
"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 local syscalls on an AF_ALG skcipher socket (socket/bind/accept/sendmsg plus async recvmsg, io_submit, aio_read, or io_uring read); the bug is not reachable from remote network protocols.\nAC:L - The attacker fully controls the race by running concurrent threads or syscalls on the same socket, timing async recvmsg/io_submit against sendmsg(ALG_SET_IV); pre-fix testing achieved thousands of successful IV injections in 200000 attempts.\nPR:L - Any unprivileged local user can create and use AF_ALG skcipher sockets without CAP_NET_ADMIN or init-namespace root; only standard UNIX discretionary access to the target socket FD is required, which includes same-UID multi-threaded processes.\nUI:N - Exploitation is fully attacker-driven through direct syscalls and requires no victim interaction such as opening files, clicking links, or mounting filesystems.\nS:U - Impact is confined to cryptographic operations on the compromised AF_ALG socket within the attacker\u0027s security context; it does not cross VM, container, or kernel-user authority boundaries like KVM escape or IOMMU bypass.\nC:H - Concurrent IV injection on CTR/stream ciphers causes keystream reuse, letting an attacker recover the full plaintext of an in-flight decrypt/encrypt on the same keyed socket even when the key never leaves kernel memory.\nI:H - Attacker-controlled IV injection corrupts in-flight cipher output and breaks MSG_MORE CBC/CTR chaining (statesize==0), silently producing attacker-influenced ciphertext/plaintext and undermining cryptographic integrity of concurrent operations.\nA:N - The flaw causes information disclosure and silent cryptographic corruption but does not kernel panic, oops, hang, or reliably deny service; availability impact is none beyond possible application-level misbehavior."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-17T05:48:57.219Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/bf09b0be8e851f050e98da702d247c14d81b591a"
},
{
"url": "https://git.kernel.org/stable/c/73dd3bf704ca6c20639de70c08e9a10bee904a95"
},
{
"url": "https://git.kernel.org/stable/c/f1a87ca0843d74482402a206ea2dfb315ee9acbd"
},
{
"url": "https://git.kernel.org/stable/c/7b91e51d0eb7cbb07f7f086f9176bd93dbbc85dd"
},
{
"url": "https://git.kernel.org/stable/c/60eafc7b08c6689ea3ad39eff8d97aefc8a087c7"
},
{
"url": "https://git.kernel.org/stable/c/d7860b682da55433b5da0591b0e4c1982ecd2689"
},
{
"url": "https://git.kernel.org/stable/c/b05defc41b27c7d0c05c45f67bf5b91c28f93669"
},
{
"url": "https://git.kernel.org/stable/c/fcc77d33a34cf271702e8daafb6c593e4626776d"
}
],
"title": "crypto: algif_skcipher - force synchronous processing on trees without ctx-\u003estate",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-74578",
"datePublished": "2026-08-16T08:20:32.055Z",
"dateReserved": "2026-08-15T05:44:03.917Z",
"dateUpdated": "2026-10-16T19:05:57.566Z",
"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-30 12:32
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
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: cc20c031bb067eb3280a1c4b5c42295093e24863 Version: cc20c031bb067eb3280a1c4b5c42295093e24863 Version: cc20c031bb067eb3280a1c4b5c42295093e24863 Version: cc20c031bb067eb3280a1c4b5c42295093e24863 Version: cc20c031bb067eb3280a1c4b5c42295093e24863 Version: cc20c031bb067eb3280a1c4b5c42295093e24863 |
||
{
"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": "bb99866cb1d3d5e8201200a8692fd8da3106a8fd",
"status": "affected",
"version": "cc20c031bb067eb3280a1c4b5c42295093e24863",
"versionType": "git"
},
{
"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.1.*",
"status": "unaffected",
"version": "6.1.191",
"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.1.191",
"versionStartIncluding": "2.6.30",
"vulnerable": true
},
{
"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-30T12:32:21.680Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/bb99866cb1d3d5e8201200a8692fd8da3106a8fd"
},
{
"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-30T12:32:21.680Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-64068 (GCVE-0-2026-64068)
Vulnerability from cvelistv5
Published
2026-07-19 15:39
Modified
2026-10-21 12:43
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
netfs: Fix missing locking around retry adding new subreqs
Fix netfs_retry_read_subrequests() and netfs_retry_write_stream() to take
the appropriate lock when adding extra subrequests into
stream->subrequests.
References
| URL | Tags | |
|---|---|---|
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"fs/netfs/read_retry.c",
"fs/netfs/write_retry.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "f59c4ec86ef3a9ac99706ae163a38ec28129fd76",
"status": "affected",
"version": "288ace2f57c9d06dd2e42bd80d03747d879a4068",
"versionType": "git"
},
{
"lessThan": "d5c9d19b0ff2f7153532ac238a5e96fed2df315c",
"status": "affected",
"version": "288ace2f57c9d06dd2e42bd80d03747d879a4068",
"versionType": "git"
},
{
"lessThan": "393f3f0d7353a94b1e0bc4ca89c683fe983e5fd2",
"status": "affected",
"version": "288ace2f57c9d06dd2e42bd80d03747d879a4068",
"versionType": "git"
},
{
"lessThan": "cce18c263e9623872327ba3c956012f73c1179cc",
"status": "affected",
"version": "288ace2f57c9d06dd2e42bd80d03747d879a4068",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"fs/netfs/read_retry.c",
"fs/netfs/write_retry.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.50",
"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.114",
"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.0.11",
"versionStartIncluding": "6.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1",
"versionStartIncluding": "6.10",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnetfs: Fix missing locking around retry adding new subreqs\n\nFix netfs_retry_read_subrequests() and netfs_retry_write_stream() to take\nthe appropriate lock when adding extra subrequests into\nstream-\u003esubrequests."
}
],
"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 netfs client retry logic reached when CIFS, Ceph, AFS, or fscache-backed NFS processes I/O responses from a remote server; a malicious or MITM server can trigger retries and race the collector via crafted protocol replies.\nAC:L - An attacker controlling the remote server can force NEED_RETRY conditions and time fast completions during subrequest splitting; they control both sides of the race by sending concurrent responses while the client retries.\nPR:N - Exploitation requires no privileges on the victim host; a remote attacker only needs the client to have an active mount and any process to perform normal reads or writes against it.\nUI:N - No victim interaction beyond routine filesystem access on an already-mounted share; readahead, writeback, and daemon I/O can trigger the race without deliberate user action.\nS:U - Impact is kernel memory corruption and potential privilege escalation within the kernel; it does not cross a VM, container, or IOMMU security boundary.\nC:H - Concurrent unsynchronized list manipulation of refcounted subrequest objects can cause use-after-free, enabling arbitrary kernel memory disclosure.\nI:H - List corruption and use-after-free on heap-allocated subrequests can be leveraged for arbitrary kernel writes and control-flow hijacking.\nA:H - The race can corrupt the subrequest list and trigger kernel oops, panic, or use-after-free crashes during normal network filesystem I/O retries."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-21T12:43:00.243Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/f59c4ec86ef3a9ac99706ae163a38ec28129fd76"
},
{
"url": "https://git.kernel.org/stable/c/d5c9d19b0ff2f7153532ac238a5e96fed2df315c"
},
{
"url": "https://git.kernel.org/stable/c/393f3f0d7353a94b1e0bc4ca89c683fe983e5fd2"
},
{
"url": "https://git.kernel.org/stable/c/cce18c263e9623872327ba3c956012f73c1179cc"
}
],
"title": "netfs: Fix missing locking around retry adding new subreqs",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-64068",
"datePublished": "2026-07-19T15:39:45.306Z",
"dateReserved": "2026-07-19T07:54:57.030Z",
"dateUpdated": "2026-10-21T12:43:00.243Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-72319 (GCVE-0-2026-72319)
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:
ipvs: ensure inner headers in ICMP errors are in headroom
Sashiko points out that after stripping the outer headers
with pskb_pull() we should ensure the inner IP headers
in ICMP errors from tunnels are present in the skb headroom
for functions like ipv4_update_pmtu(), icmp_send() and
IP_VS_DBG().
Also, add more checks for the length of the inner headers.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: f2edb9f7706dcb2c0d9a362b2ba849efe3a97f5e Version: f2edb9f7706dcb2c0d9a362b2ba849efe3a97f5e Version: f2edb9f7706dcb2c0d9a362b2ba849efe3a97f5e Version: f2edb9f7706dcb2c0d9a362b2ba849efe3a97f5e Version: f2edb9f7706dcb2c0d9a362b2ba849efe3a97f5e Version: f2edb9f7706dcb2c0d9a362b2ba849efe3a97f5e Version: f2edb9f7706dcb2c0d9a362b2ba849efe3a97f5e Version: f2edb9f7706dcb2c0d9a362b2ba849efe3a97f5e |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-72319",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "yes"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T18:46:50.262793Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T18:55:17.469Z",
"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_core.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "19657b3a17b774ae4e2f2635b5ae8638c9344a40",
"status": "affected",
"version": "f2edb9f7706dcb2c0d9a362b2ba849efe3a97f5e",
"versionType": "git"
},
{
"lessThan": "dac813101914c21219ac221a60a31a11bc90e7ec",
"status": "affected",
"version": "f2edb9f7706dcb2c0d9a362b2ba849efe3a97f5e",
"versionType": "git"
},
{
"lessThan": "dd22f74a09e25ca298ced0a3763ef353242cb78d",
"status": "affected",
"version": "f2edb9f7706dcb2c0d9a362b2ba849efe3a97f5e",
"versionType": "git"
},
{
"lessThan": "9bc9b95aee2b2e3f1301a16a67ee504960402875",
"status": "affected",
"version": "f2edb9f7706dcb2c0d9a362b2ba849efe3a97f5e",
"versionType": "git"
},
{
"lessThan": "a735f9964a3d9ed97daf9b08507f8b5bcafe6326",
"status": "affected",
"version": "f2edb9f7706dcb2c0d9a362b2ba849efe3a97f5e",
"versionType": "git"
},
{
"lessThan": "8f48cfe657409fb5c7ba0521b14da6d47546d9cf",
"status": "affected",
"version": "f2edb9f7706dcb2c0d9a362b2ba849efe3a97f5e",
"versionType": "git"
},
{
"lessThan": "92185d6f7819bc558939ae83de7b1abe90e3b5c2",
"status": "affected",
"version": "f2edb9f7706dcb2c0d9a362b2ba849efe3a97f5e",
"versionType": "git"
},
{
"lessThan": "3f7a535ff0fa627a0132803e4c2f903ceffcbc1c",
"status": "affected",
"version": "f2edb9f7706dcb2c0d9a362b2ba849efe3a97f5e",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"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": "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\nipvs: ensure inner headers in ICMP errors are in headroom\n\nSashiko points out that after stripping the outer headers\nwith pskb_pull() we should ensure the inner IP headers\nin ICMP errors from tunnels are present in the skb headroom\nfor functions like ipv4_update_pmtu(), icmp_send() and\nIP_VS_DBG().\n\nAlso, add more checks for the length of the inner 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 - Crafted IPv4 ICMP error packets reach ip_vs_in_icmp() through IPVS netfilter LOCAL_IN and FORWARD hooks on internet-facing load balancers and Kubernetes kube-proxy IPVS nodes; remote senders trigger the tunnel PMTUD handler without local access.\nAC:L - An attacker controls ICMP nesting, IPIP/UDP/GRE encapsulation, skb fragmentation/non-linear layout, and can establish matching IPVS TUN connections through the VIP; no race or condition outside attacker control is required once IPVS tunnel mode is deployed.\nPR:N - IPVS configuration is an administrator deployment prerequisite; a remote attacker sending ICMP errors to an already-configured load balancer needs no credentials or host capabilities on the victim.\nUI:N - Exploitation is driven entirely by network packets processed automatically in softirq; no victim user action beyond normal traffic through the load balancer is required.\nS:U - Out-of-bounds kernel skb header access and route PMTU corruption remain within the host kernel authority; this is standard kernel compromise, not VM escape or sandbox crossing.\nC:H - After pskb_pull() without pskb_may_pull(), ipv4_update_pmtu() and ip_hdr() dereference skb-\u003edata that may lie past skb_tail_pointer or hold non-linear fragment data, constituting an out-of-bounds kernel read per CNA guidance.\nI:H - Mis-parsed inner IP header fields from unchecked skb-\u003edata drive ipv4_update_pmtu() route lookups and FNHE/PMTU updates with attacker-influenced saddr/daddr values, enabling unauthorized modification of kernel routing state.\nA:H - Out-of-bounds header access in the IPVS ICMP tunnel path can trigger kernel oops or panic, and a remote attacker can repeatedly send crafted ICMP errors to deny service on IPVS TUN load balancers."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-17T05:42:45.694Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/19657b3a17b774ae4e2f2635b5ae8638c9344a40"
},
{
"url": "https://git.kernel.org/stable/c/dac813101914c21219ac221a60a31a11bc90e7ec"
},
{
"url": "https://git.kernel.org/stable/c/dd22f74a09e25ca298ced0a3763ef353242cb78d"
},
{
"url": "https://git.kernel.org/stable/c/9bc9b95aee2b2e3f1301a16a67ee504960402875"
},
{
"url": "https://git.kernel.org/stable/c/a735f9964a3d9ed97daf9b08507f8b5bcafe6326"
},
{
"url": "https://git.kernel.org/stable/c/8f48cfe657409fb5c7ba0521b14da6d47546d9cf"
},
{
"url": "https://git.kernel.org/stable/c/92185d6f7819bc558939ae83de7b1abe90e3b5c2"
},
{
"url": "https://git.kernel.org/stable/c/3f7a535ff0fa627a0132803e4c2f903ceffcbc1c"
}
],
"title": "ipvs: ensure inner headers in ICMP errors are in headroom",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-72319",
"datePublished": "2026-08-15T05:55:32.313Z",
"dateReserved": "2026-08-09T03:40:39.919Z",
"dateUpdated": "2026-10-16T18:55:17.469Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-43283 (GCVE-0-2026-43283)
Vulnerability from cvelistv5
Published
2026-05-06 11:29
Modified
2026-08-05 12:27
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
net: ethernet: ec_bhf: Fix dma_free_coherent() dma handle
dma_free_coherent() in error path takes priv->rx_buf.alloc_len as
the dma handle. This would lead to improper unmapping of the buffer.
Change the dma handle to priv->rx_buf.alloc_phys.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 6af55ff52b02d492d45db88df3e461fa51a6f753 Version: 6af55ff52b02d492d45db88df3e461fa51a6f753 Version: 6af55ff52b02d492d45db88df3e461fa51a6f753 Version: 6af55ff52b02d492d45db88df3e461fa51a6f753 Version: 6af55ff52b02d492d45db88df3e461fa51a6f753 Version: 6af55ff52b02d492d45db88df3e461fa51a6f753 Version: 6af55ff52b02d492d45db88df3e461fa51a6f753 Version: 6af55ff52b02d492d45db88df3e461fa51a6f753 |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/net/ethernet/ec_bhf.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "0f589ee54fd6d76d3f75e745f7f12c64cbd749e5",
"status": "affected",
"version": "6af55ff52b02d492d45db88df3e461fa51a6f753",
"versionType": "git"
},
{
"lessThan": "accd0599bc8e73b962247c6c6c70ca7aa1f8e8d0",
"status": "affected",
"version": "6af55ff52b02d492d45db88df3e461fa51a6f753",
"versionType": "git"
},
{
"lessThan": "8320727be7ff704e07c87624efc2a4a75f54b3ce",
"status": "affected",
"version": "6af55ff52b02d492d45db88df3e461fa51a6f753",
"versionType": "git"
},
{
"lessThan": "1e300c33ef3cc544c2b9c693778fe9490cfe9184",
"status": "affected",
"version": "6af55ff52b02d492d45db88df3e461fa51a6f753",
"versionType": "git"
},
{
"lessThan": "1b1371cd4032ae859838ebc74215f569987bb197",
"status": "affected",
"version": "6af55ff52b02d492d45db88df3e461fa51a6f753",
"versionType": "git"
},
{
"lessThan": "1b1d3c5d58a80a19d017a409aa2308162bab5bbf",
"status": "affected",
"version": "6af55ff52b02d492d45db88df3e461fa51a6f753",
"versionType": "git"
},
{
"lessThan": "7e54ff938bebb173822b4c38b33fc164c1cabf92",
"status": "affected",
"version": "6af55ff52b02d492d45db88df3e461fa51a6f753",
"versionType": "git"
},
{
"lessThan": "ffe68c3766997d82e9ccaf1cdbd47eba269c4aa2",
"status": "affected",
"version": "6af55ff52b02d492d45db88df3e461fa51a6f753",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/net/ethernet/ec_bhf.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.252",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.202",
"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.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": "5.10.252",
"versionStartIncluding": "3.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.202",
"versionStartIncluding": "3.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.165",
"versionStartIncluding": "3.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.128",
"versionStartIncluding": "3.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.75",
"versionStartIncluding": "3.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.16",
"versionStartIncluding": "3.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.19.6",
"versionStartIncluding": "3.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.0",
"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: ethernet: ec_bhf: Fix dma_free_coherent() dma handle\n\ndma_free_coherent() in error path takes priv-\u003erx_buf.alloc_len as\nthe dma handle. This would lead to improper unmapping of the buffer.\n\nChange the dma handle to priv-\u003erx_buf.alloc_phys."
}
],
"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 path is reached by local netdevice administration via RTM_SETLINK or SIOCSIFFLAGS setting IFF_UP, which calls ec_bhf_open(). Received EtherCAT packets do not directly reach the bad dma_free_coherent() error path.\nAC:L - An attacker who can administer the netdev can repeatedly attempt link-up under memory pressure until TX coherent allocation fails after RX allocation succeeds. No race or external timing condition is required.\nPR:L - The path requires CAP_NET_ADMIN in the owning network namespace, and this physical netdev is movable because the driver does not mark it netns_immutable. In a reasonable delegated/container netns deployment, namespace admin privileges are sufficient.\nUI:N - No separate victim interaction is needed once the attacker has access to the local netlink/ioctl control path. The attacker can trigger the open error path directly with link-up attempts.\nS:C - The wrong DMA handle can leave a stale DMA/IOMMU mapping or free the wrong physical pages, allowing device DMA beyond the intended lifetime of the RX buffer. This crosses the intended DMA isolation boundary.\nC:H - Stale DMA access or freeing the wrong in-use pages can expose reused kernel memory through memory corruption. As a DMA lifetime/memory corruption issue, high confidentiality impact is defensible.\nI:H - The bug can let the device write received data into freed or incorrectly freed kernel memory, creating a kernel memory corruption primitive. Such corruption is potentially usable for arbitrary kernel memory modification or code execution.\nA:H - Passing an invalid DMA handle to dma_free_coherent() can corrupt allocator/IOMMU state or free the wrong pages. At minimum this can cause kernel warnings, oopses, or panics."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-05T12:27:03.376Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/0f589ee54fd6d76d3f75e745f7f12c64cbd749e5"
},
{
"url": "https://git.kernel.org/stable/c/accd0599bc8e73b962247c6c6c70ca7aa1f8e8d0"
},
{
"url": "https://git.kernel.org/stable/c/8320727be7ff704e07c87624efc2a4a75f54b3ce"
},
{
"url": "https://git.kernel.org/stable/c/1e300c33ef3cc544c2b9c693778fe9490cfe9184"
},
{
"url": "https://git.kernel.org/stable/c/1b1371cd4032ae859838ebc74215f569987bb197"
},
{
"url": "https://git.kernel.org/stable/c/1b1d3c5d58a80a19d017a409aa2308162bab5bbf"
},
{
"url": "https://git.kernel.org/stable/c/7e54ff938bebb173822b4c38b33fc164c1cabf92"
},
{
"url": "https://git.kernel.org/stable/c/ffe68c3766997d82e9ccaf1cdbd47eba269c4aa2"
}
],
"title": "net: ethernet: ec_bhf: Fix dma_free_coherent() dma handle",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-43283",
"datePublished": "2026-05-06T11:29:03.726Z",
"dateReserved": "2026-05-01T14:12:55.998Z",
"dateUpdated": "2026-08-05T12:27:03.376Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-72493 (GCVE-0-2026-72493)
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:
net: serialize netif_running() check in enqueue_to_backlog()
Syzbot reported a KASAN slab-use-after-free in fib_rules_lookup().
The root cause is a race condition where packets can escape the backlog
flushing during device unregistration (e.g., during netns exit).
Commit e9e4dd3267d0 ("net: do not process device backlog during unregistration")
introduced a lockless netif_running() check in enqueue_to_backlog() to
prevent queuing packets to an unregistering device.
However, this creates a TOCTOU race window.
A lockless transmitter (like veth_xmit) can pass
the check before dev_close() clears IFF_UP. If the transmitter is then
delayed, flush_all_backlogs() can run and finish before the transmitter
grabs the backlog lock and queues the packet. The packet then escapes
the flush and triggers UAF later when processed.
Fix this by moving the netif_running() check inside the backlog lock.
This serializes the check with the flush work (which also grabs the lock).
We then either queue the packet before the flush runs (so it gets flushed),
or check netif_running() after the flush/close completes (so it gets dropped).
References
| URL | Tags | |
|---|---|---|
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: e9e4dd3267d0c5234c5c0f47440456b10875dec9 Version: e9e4dd3267d0c5234c5c0f47440456b10875dec9 Version: e9e4dd3267d0c5234c5c0f47440456b10875dec9 Version: e9e4dd3267d0c5234c5c0f47440456b10875dec9 Version: 78b6803a1961369d0b8350ff1f99b7375bbd7a8f Version: b5d73d9cdd6be22795499890ea928a6f57ef829c Version: f6533fed1bfa842e391ee50f9a9c5e963c71e579 Version: 2095ab2456da766174cda8bc105d7a7b1bc70e16 Version: f1fdb184aefa8447560e3ea0e605171592ffee41 Version: f75c8a3015422128ca150e81c730bc2a471b5f4a Version: 3.2.71 ≤ Version: 3.4.111 ≤ Version: 3.12.48 ≤ Version: 3.14.54 ≤ Version: 3.18.22 ≤ Version: 4.1.9 ≤ |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-72493",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T18:50:52.967716Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T18:55:26.667Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"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": "cbe10ea090ea9d6fa5ff50c9b44f2a86fe56f0b7",
"status": "affected",
"version": "e9e4dd3267d0c5234c5c0f47440456b10875dec9",
"versionType": "git"
},
{
"lessThan": "b422e3eff0edf0975de4883929adbed28f9d08bc",
"status": "affected",
"version": "e9e4dd3267d0c5234c5c0f47440456b10875dec9",
"versionType": "git"
},
{
"lessThan": "2fface6e0bbd6314d1d9d071abf2c4d67548511c",
"status": "affected",
"version": "e9e4dd3267d0c5234c5c0f47440456b10875dec9",
"versionType": "git"
},
{
"lessThan": "46762cefe7f4e5bffc1eb467810a7bbb02e461d7",
"status": "affected",
"version": "e9e4dd3267d0c5234c5c0f47440456b10875dec9",
"versionType": "git"
},
{
"status": "affected",
"version": "78b6803a1961369d0b8350ff1f99b7375bbd7a8f",
"versionType": "git"
},
{
"status": "affected",
"version": "b5d73d9cdd6be22795499890ea928a6f57ef829c",
"versionType": "git"
},
{
"status": "affected",
"version": "f6533fed1bfa842e391ee50f9a9c5e963c71e579",
"versionType": "git"
},
{
"status": "affected",
"version": "2095ab2456da766174cda8bc105d7a7b1bc70e16",
"versionType": "git"
},
{
"status": "affected",
"version": "f1fdb184aefa8447560e3ea0e605171592ffee41",
"versionType": "git"
},
{
"status": "affected",
"version": "f75c8a3015422128ca150e81c730bc2a471b5f4a",
"versionType": "git"
},
{
"lessThan": "3.3",
"status": "affected",
"version": "3.2.71",
"versionType": "semver"
},
{
"lessThan": "3.5",
"status": "affected",
"version": "3.4.111",
"versionType": "semver"
},
{
"lessThan": "3.13",
"status": "affected",
"version": "3.12.48",
"versionType": "semver"
},
{
"lessThan": "3.15",
"status": "affected",
"version": "3.14.54",
"versionType": "semver"
},
{
"lessThan": "3.19",
"status": "affected",
"version": "3.18.22",
"versionType": "semver"
},
{
"lessThan": "4.2",
"status": "affected",
"version": "4.1.9",
"versionType": "semver"
}
]
},
{
"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": "4.2"
},
{
"lessThan": "4.2",
"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.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": "4.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.57",
"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
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "3.2.71",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "3.4.111",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "3.12.48",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "3.14.54",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "3.18.22",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "4.1.9",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnet: serialize netif_running() check in enqueue_to_backlog()\n\nSyzbot reported a KASAN slab-use-after-free in fib_rules_lookup().\n\nThe root cause is a race condition where packets can escape the backlog\nflushing during device unregistration (e.g., during netns exit).\n\nCommit e9e4dd3267d0 (\"net: do not process device backlog during unregistration\")\nintroduced a lockless netif_running() check in enqueue_to_backlog() to\nprevent queuing packets to an unregistering device.\n\nHowever, this creates a TOCTOU race window.\n\nA lockless transmitter (like veth_xmit) can pass\nthe check before dev_close() clears IFF_UP. If the transmitter is then\ndelayed, flush_all_backlogs() can run and finish before the transmitter\ngrabs the backlog lock and queues the packet. The packet then escapes\nthe flush and triggers UAF later when processed.\n\nFix this by moving the netif_running() check inside the backlog lock.\nThis serializes the check with the flush work (which also grabs the lock).\nWe then either queue the packet before the flush runs (so it gets flushed),\nor check netif_running() after the flush/close completes (so it gets dropped)."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 9.9,
"baseSeverity": "CRITICAL",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - The bug is in the generic per-CPU backlog receive path (`netif_rx`/`netif_receive_skb` -\u003e `enqueue_to_backlog`); packets can originate from remote peers reaching veth/bridge/NIC interfaces, and syzbot reproduced it via network transmit/receive activity during device unregistration.\nAC:L - The attacker controls both racing sides by concurrently flooding packets through a lockless transmitter (e.g. veth) while unregistering the device/netns (e.g. `ip link del` or netns exit); no victim-specific timing or memory layout is required beyond repeatable parallel traffic and teardown.\nPR:L - Triggering veth creation, traffic injection, and netdev/netns teardown requires only `CAP_NET_ADMIN` inside a network namespace, obtainable by an unprivileged local user via user namespaces (`unshare -Urn`); init-namespace root is not required.\nUI:N - Exploitation needs only the attacker\u0027s own concurrent packet transmission and interface/netns teardown; no independent action by another user or administrator is required at trigger time.\nS:C - The use-after-free is triggered from within an isolated network namespace yet corrupts host-global kernel routing state (`fib_rules_lookup` on freed namespace/rule data), crossing the container/netns security boundary into the host kernel\u0027s integrity and availability.\nC:H - KASAN reported slab-use-after-free in `fib_rules_lookup()` walking `net-\u003erules_ops`; freed namespace/device-associated structures can be reallocated and read through stale pointers, yielding an attacker-influenceable kernel memory read/disclosure primitive.\nI:H - Processing the escaped backlog skb invokes routing through freed `fib_rules_ops` and indirect function pointers (`ops-\u003ematch`/`ops-\u003eaction`); UAF on these heap objects enables heap grooming, control-flow hijack, and arbitrary kernel write leading to privilege escalation.\nA:H - Confirmed slab-use-after-free in core packet processing during device unregistration reliably causes kernel oops/panic (syzbot KASAN splat in `fib_rules_lookup()`), and repeated triggering can deny service to the entire host."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-21T12:45:02.169Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/cbe10ea090ea9d6fa5ff50c9b44f2a86fe56f0b7"
},
{
"url": "https://git.kernel.org/stable/c/b422e3eff0edf0975de4883929adbed28f9d08bc"
},
{
"url": "https://git.kernel.org/stable/c/2fface6e0bbd6314d1d9d071abf2c4d67548511c"
},
{
"url": "https://git.kernel.org/stable/c/46762cefe7f4e5bffc1eb467810a7bbb02e461d7"
}
],
"title": "net: serialize netif_running() check in enqueue_to_backlog()",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-72493",
"datePublished": "2026-08-15T05:57:27.642Z",
"dateReserved": "2026-08-09T03:40:39.937Z",
"dateUpdated": "2026-10-21T12:45:02.169Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-98169 (GCVE-0-2026-98169)
Vulnerability from cvelistv5
Published
2026-10-06 08:44
Modified
2026-10-30 12:37
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
smb: client: fix potential OOB read in smb3_enum_snapshots()
If snapshot_array_size is smaller than GMT_TOKEN_SIZE,
smb3_enum_snapshots() sets ret_data_len to
sizeof(struct smb_snapshot_array) without verifying the actual length
of the server's reply.
Because SMB2_ioctl() places no lower bound on the server-supplied
OutputCount and allocates retbuf to exactly that length, a short reply
results in ret_data_len exceeding the size of retbuf. The subsequent
copy_to_user() then reads past the end of retbuf, leaking adjacent slab
memory to userspace. The subsequent clamp check is ineffective as it
only reduces ret_data_len.
Fix this by rejecting replies shorter than
sizeof(struct smb_snapshot_array) with -EIO. Note that the bound is set
to the 12-byte struct size rather than the 16-byte
MIN_SNAPSHOT_ARRAY_SIZE defined in MS-SMB2 3.3.5.15.1, because 12 bytes
is exactly what copy_to_user() attempts to read.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: e02789a53d71334b067ad72eee5d4e88a0158083 Version: e02789a53d71334b067ad72eee5d4e88a0158083 Version: e02789a53d71334b067ad72eee5d4e88a0158083 Version: e02789a53d71334b067ad72eee5d4e88a0158083 Version: e02789a53d71334b067ad72eee5d4e88a0158083 Version: e02789a53d71334b067ad72eee5d4e88a0158083 Version: e02789a53d71334b067ad72eee5d4e88a0158083 Version: e02789a53d71334b067ad72eee5d4e88a0158083 Version: a94703ff8e3647f8a9a3a92a468450299a7b77e9 Version: 82a856f527334ffd69aae26e7dd9e03b19c4a520 Version: 25b981bfe192fd208ba04c81f4aa30ffb5141660 Version: 4.9.125 ≤ Version: 4.14.68 ≤ Version: 4.18.6 ≤ |
||
{
"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": "67ef1d6da00f4f39eb5fcebe7a44fe494b645059",
"status": "affected",
"version": "e02789a53d71334b067ad72eee5d4e88a0158083",
"versionType": "git"
},
{
"lessThan": "5edf5b398d49b881c0df79d6e4f6df251236c533",
"status": "affected",
"version": "e02789a53d71334b067ad72eee5d4e88a0158083",
"versionType": "git"
},
{
"lessThan": "15a221c734b9d044ab769e7e3606b2cab96fb65a",
"status": "affected",
"version": "e02789a53d71334b067ad72eee5d4e88a0158083",
"versionType": "git"
},
{
"lessThan": "74995ee8305a7c4d76ee70d6acd996a75eda3c03",
"status": "affected",
"version": "e02789a53d71334b067ad72eee5d4e88a0158083",
"versionType": "git"
},
{
"lessThan": "210f0f1f67817e7d2348b86b5115a9b85ef5c98b",
"status": "affected",
"version": "e02789a53d71334b067ad72eee5d4e88a0158083",
"versionType": "git"
},
{
"lessThan": "1cdf0d304d820fb13bf0faf532c3459600f9ea43",
"status": "affected",
"version": "e02789a53d71334b067ad72eee5d4e88a0158083",
"versionType": "git"
},
{
"lessThan": "dbe452a905dfe2804647530a9ff3d7e3826ed04d",
"status": "affected",
"version": "e02789a53d71334b067ad72eee5d4e88a0158083",
"versionType": "git"
},
{
"lessThan": "4775c3b7a597907e0b97556c7986fda238a377ae",
"status": "affected",
"version": "e02789a53d71334b067ad72eee5d4e88a0158083",
"versionType": "git"
},
{
"status": "affected",
"version": "a94703ff8e3647f8a9a3a92a468450299a7b77e9",
"versionType": "git"
},
{
"status": "affected",
"version": "82a856f527334ffd69aae26e7dd9e03b19c4a520",
"versionType": "git"
},
{
"status": "affected",
"version": "25b981bfe192fd208ba04c81f4aa30ffb5141660",
"versionType": "git"
},
{
"lessThan": "4.10",
"status": "affected",
"version": "4.9.125",
"versionType": "semver"
},
{
"lessThan": "4.15",
"status": "affected",
"version": "4.14.68",
"versionType": "semver"
},
{
"lessThan": "4.19",
"status": "affected",
"version": "4.18.6",
"versionType": "semver"
}
]
},
{
"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": "4.19"
},
{
"lessThan": "4.19",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.273",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.224",
"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.112",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.54",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.8",
"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.273",
"versionStartIncluding": "4.19",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.224",
"versionStartIncluding": "4.19",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.189",
"versionStartIncluding": "4.19",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.158",
"versionStartIncluding": "4.19",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.112",
"versionStartIncluding": "4.19",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.54",
"versionStartIncluding": "4.19",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.8",
"versionStartIncluding": "4.19",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "4.19",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "4.9.125",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "4.14.68",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "4.18.6",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nsmb: client: fix potential OOB read in smb3_enum_snapshots()\n\nIf snapshot_array_size is smaller than GMT_TOKEN_SIZE,\nsmb3_enum_snapshots() sets ret_data_len to\nsizeof(struct smb_snapshot_array) without verifying the actual length\nof the server\u0027s reply.\n\nBecause SMB2_ioctl() places no lower bound on the server-supplied\nOutputCount and allocates retbuf to exactly that length, a short reply\nresults in ret_data_len exceeding the size of retbuf. The subsequent\ncopy_to_user() then reads past the end of retbuf, leaking adjacent slab\nmemory to userspace. The subsequent clamp check is ineffective as it\nonly reduces ret_data_len.\n\nFix this by rejecting replies shorter than\nsizeof(struct smb_snapshot_array) with -EIO. Note that the bound is set\nto the 12-byte struct size rather than the 16-byte\nMIN_SNAPSHOT_ARRAY_SIZE defined in MS-SMB2 3.3.5.15.1, because 12 bytes\nis exactly what copy_to_user() attempts to read."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.1,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:N/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - The bad input is the OutputCount field of the SMB2 IOCTL response to FSCTL_SRV_ENUMERATE_SNAPSHOTS, sent by the SMB server over TCP. SMB2_ioctl() rejects only 0 or oversized values and kmemdup()s 1-11 bytes, and smb3_enum_snapshots() then copies 12 bytes from that buffer.\nAC:L - A server that always answers the snapshot FSCTL with OutputCount 1-11 hits the bug every time a caller passes snapshot_array_size \u003c GMT_TOKEN_SIZE, which is the normal first sizing query. No race or memory layout outside the server\u0027s control is needed.\nPR:N - The attacker is the SMB server answering the client\u0027s request. It needs no account or privilege on the client to send a short IOCTL response.\nUI:R - A victim has to mount the attacker\u0027s share, and a process on the client has to issue ioctl(CIFS_ENUMERATE_SNAPSHOTS) on a file there to make smb3_enum_snapshots() run.\nS:U - The out-of-bounds read and the crash both stay inside the client kernel. No VM, IOMMU or other security boundary is crossed.\nC:L - copy_to_user() reads at most 11 bytes past the kmemdup\u0027d retbuf, from the next kmalloc-8 object or the unused tail of a kmalloc-16 object. The leak is small and fixed in size, and it goes to the ioctl caller, not back over the wire.\nI:N - The defect is a read only: retbuf is copied out to user space, and no kernel memory is written out of bounds.\nA:H - With CONFIG_HARDENED_USERCOPY (common on distro and Android kernels), a 12-byte copy_to_user() from a kmalloc-8 retbuf (OutputCount 1-8) fails the heap object check. usercopy_abort() then calls BUG() and the kernel oopses, or panics if panic_on_oops is set. The server can trigger this on every enumeration."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-30T12:37:47.892Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/67ef1d6da00f4f39eb5fcebe7a44fe494b645059"
},
{
"url": "https://git.kernel.org/stable/c/5edf5b398d49b881c0df79d6e4f6df251236c533"
},
{
"url": "https://git.kernel.org/stable/c/15a221c734b9d044ab769e7e3606b2cab96fb65a"
},
{
"url": "https://git.kernel.org/stable/c/74995ee8305a7c4d76ee70d6acd996a75eda3c03"
},
{
"url": "https://git.kernel.org/stable/c/210f0f1f67817e7d2348b86b5115a9b85ef5c98b"
},
{
"url": "https://git.kernel.org/stable/c/1cdf0d304d820fb13bf0faf532c3459600f9ea43"
},
{
"url": "https://git.kernel.org/stable/c/dbe452a905dfe2804647530a9ff3d7e3826ed04d"
},
{
"url": "https://git.kernel.org/stable/c/4775c3b7a597907e0b97556c7986fda238a377ae"
}
],
"title": "smb: client: fix potential OOB read in smb3_enum_snapshots()",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-98169",
"datePublished": "2026-10-06T08:44:14.339Z",
"dateReserved": "2026-09-25T10:25:14.322Z",
"dateUpdated": "2026-10-30T12:37:47.892Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-93821 (GCVE-0-2026-93821)
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:
PCI: altera: Protect root bus removal with rescan lock
Hold the pci_rescan_remove_lock lock while stopping and removing a root bus
to avoid racing with concurrent rescan or hotplug operations triggered via
sysfs. Such races may lead to use-after-free issues or system crashes.
[bhelgaas: commit log]
References
| URL | Tags | ||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: ec15c4d0d5d2e431169fbdf6c6bcf0c8ff71ef22 Version: ec15c4d0d5d2e431169fbdf6c6bcf0c8ff71ef22 Version: ec15c4d0d5d2e431169fbdf6c6bcf0c8ff71ef22 Version: ec15c4d0d5d2e431169fbdf6c6bcf0c8ff71ef22 Version: ec15c4d0d5d2e431169fbdf6c6bcf0c8ff71ef22 Version: ec15c4d0d5d2e431169fbdf6c6bcf0c8ff71ef22 Version: ec15c4d0d5d2e431169fbdf6c6bcf0c8ff71ef22 |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/pci/controller/pcie-altera.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "cf9d84d1b6a7c3f3780c043df220a7e9e38137eb",
"status": "affected",
"version": "ec15c4d0d5d2e431169fbdf6c6bcf0c8ff71ef22",
"versionType": "git"
},
{
"lessThan": "fc462f1bdeaea9789928cbfdf5e069ee559c7642",
"status": "affected",
"version": "ec15c4d0d5d2e431169fbdf6c6bcf0c8ff71ef22",
"versionType": "git"
},
{
"lessThan": "442b7f2a093b4a75f8963aaa7cbb2b8df35a6ac3",
"status": "affected",
"version": "ec15c4d0d5d2e431169fbdf6c6bcf0c8ff71ef22",
"versionType": "git"
},
{
"lessThan": "4b69c63cc247fc0f499fbd11076fee9c2a6e6fd7",
"status": "affected",
"version": "ec15c4d0d5d2e431169fbdf6c6bcf0c8ff71ef22",
"versionType": "git"
},
{
"lessThan": "c0cd65906e5f7e293ef2568c9524cc0a918333c3",
"status": "affected",
"version": "ec15c4d0d5d2e431169fbdf6c6bcf0c8ff71ef22",
"versionType": "git"
},
{
"lessThan": "7cbb8f2750d91e64caff89e164ac8280bb80bedc",
"status": "affected",
"version": "ec15c4d0d5d2e431169fbdf6c6bcf0c8ff71ef22",
"versionType": "git"
},
{
"lessThan": "a8759c8ac48c0419f5899e95a6ffc611b07c965b",
"status": "affected",
"version": "ec15c4d0d5d2e431169fbdf6c6bcf0c8ff71ef22",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/pci/controller/pcie-altera.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.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.3",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.222",
"versionStartIncluding": "5.3",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.189",
"versionStartIncluding": "5.3",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.158",
"versionStartIncluding": "5.3",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.111",
"versionStartIncluding": "5.3",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.53",
"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\nPCI: altera: Protect root bus removal with rescan lock\n\nHold the pci_rescan_remove_lock lock while stopping and removing a root bus\nto avoid racing with concurrent rescan or hotplug operations triggered via\nsysfs. Such races may lead to use-after-free issues or system crashes.\n\n[bhelgaas: commit log]"
}
],
"providerMetadata": {
"dateUpdated": "2026-10-03T10:57:52.467Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/cf9d84d1b6a7c3f3780c043df220a7e9e38137eb"
},
{
"url": "https://git.kernel.org/stable/c/fc462f1bdeaea9789928cbfdf5e069ee559c7642"
},
{
"url": "https://git.kernel.org/stable/c/442b7f2a093b4a75f8963aaa7cbb2b8df35a6ac3"
},
{
"url": "https://git.kernel.org/stable/c/4b69c63cc247fc0f499fbd11076fee9c2a6e6fd7"
},
{
"url": "https://git.kernel.org/stable/c/c0cd65906e5f7e293ef2568c9524cc0a918333c3"
},
{
"url": "https://git.kernel.org/stable/c/7cbb8f2750d91e64caff89e164ac8280bb80bedc"
},
{
"url": "https://git.kernel.org/stable/c/a8759c8ac48c0419f5899e95a6ffc611b07c965b"
}
],
"title": "PCI: altera: Protect root bus removal with rescan lock",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-93821",
"datePublished": "2026-09-24T16:02:59.826Z",
"dateReserved": "2026-09-18T17:59:28.791Z",
"dateUpdated": "2026-10-03T10:57:52.467Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-68106 (GCVE-0-2026-68106)
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:
drm/amdgpu: fix division by zero with invalid uvd dimensions
When width or height is less than 16, width_in_mb or height_in_mb
becomes 0, leading to fs_in_mb being 0. This causes a division by
zero when calculating num_dpb_buffer in H264 and H264 Perf decode
paths.
Add validation to reject frames with width < 16 or height < 16
before performing any calculations that depend on these values.
V2: Format change - move up all vaiable definitions.
V3: Use warn_once to avoid spam.
(cherry picked from commit 3e41d26c70b0a459d041cc19482a226c4b7423cb)
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-68106",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T15:43:55.237133Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"problemTypes": [
{
"descriptions": [
{
"cweId": "CWE-369",
"description": "CWE-369 Divide By Zero",
"lang": "en",
"type": "CWE"
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T20:58:50.821Z",
"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": "004d0453cfef16f056cb7b8bc04f69f19cf9df32",
"status": "affected",
"version": "d38ceaf99ed015f2a0b9af3499791bd3a3daae21",
"versionType": "git"
},
{
"lessThan": "00ee64910ecf748cc15b23bbcbea472c203ec1e8",
"status": "affected",
"version": "d38ceaf99ed015f2a0b9af3499791bd3a3daae21",
"versionType": "git"
},
{
"lessThan": "81c9b4921f62d1642b9d775524ae9240e521a5ed",
"status": "affected",
"version": "d38ceaf99ed015f2a0b9af3499791bd3a3daae21",
"versionType": "git"
},
{
"lessThan": "52f9a588296432accf2982f7d258192a37562f4f",
"status": "affected",
"version": "d38ceaf99ed015f2a0b9af3499791bd3a3daae21",
"versionType": "git"
},
{
"lessThan": "a00946b5ab7c25da5685ca9c58f50ff6f43c0fdf",
"status": "affected",
"version": "d38ceaf99ed015f2a0b9af3499791bd3a3daae21",
"versionType": "git"
},
{
"lessThan": "ffb33d466a68cea3e8a3dbed04d79037a3cbabd1",
"status": "affected",
"version": "d38ceaf99ed015f2a0b9af3499791bd3a3daae21",
"versionType": "git"
},
{
"lessThan": "be725ab23aa45c11a5afef3e2a9f6d8c084ae5dc",
"status": "affected",
"version": "d38ceaf99ed015f2a0b9af3499791bd3a3daae21",
"versionType": "git"
},
{
"lessThan": "0c01c811be47e6b146552dd59bfedbea8f09b8f4",
"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.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.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.216",
"versionStartIncluding": "4.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.183",
"versionStartIncluding": "4.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.148",
"versionStartIncluding": "4.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.101",
"versionStartIncluding": "4.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.42",
"versionStartIncluding": "4.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.6",
"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 division by zero with invalid uvd dimensions\n\nWhen width or height is less than 16, width_in_mb or height_in_mb\nbecomes 0, leading to fs_in_mb being 0. This causes a division by\nzero when calculating num_dpb_buffer in H264 and H264 Perf decode\npaths.\n\nAdd validation to reject frames with width \u003c 16 or height \u003c 16\nbefore performing any calculations that depend on these values.\n\nV2: Format change - move up all vaiable definitions.\nV3: Use warn_once to avoid spam.\n\n(cherry picked from commit 3e41d26c70b0a459d041cc19482a226c4b7423cb)"
}
],
"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 the AMDGPU_CS DRM ioctl on a local render node (/dev/dri/renderD*), traversing amdgpu_cs_ioctl, amdgpu_cs_patch_ibs, amdgpu_uvd_ring_parse_cs, and amdgpu_uvd_cs_msg_decode; it is not reachable from any network-facing kernel service.\nAC:L - An attacker with render-node access fully controls the UVD decode message fields (stream_type H264/H264 Perf, width, height, level) in their own BO and can reliably trigger width or height \u003c 16 after creating a valid UVD session handle.\nPR:L - Exploitation requires only standard unprivileged local access to the AMDGPU DRM render node (DRM_AUTH|DRM_RENDER_ALLOW on AMDGPU_CS), not root or capabilities outside the render/video group; user namespaces do not grant this access by themselves.\nUI:N - No victim interaction is required; a local attacker can directly submit a crafted UVD command stream through AMDGPU_CS ioctl without needing another user to open media, mount a filesystem, or take any other action.\nS:U - Impact is confined to the kernel/GPU driver security domain on the local host (kernel oops or GPU memory corruption within the attacker\u0027s DRM client); it does not cross VM, IOMMU, or sandbox boundaries to affect a different security authority.\nC:H - On x86, kernel-mode divide-by-zero causes a fatal trap; on architectures where unsigned division by zero returns zero, underestimated DPB buffer sizes can pass validation, enabling GPU out-of-bounds reads of adjacent mapped buffers that may hold sensitive data.\nI:H - Underestimated buffer-size calculations from zero macroblock counts can let undersized DPB buffers pass kernel validation, permitting the UVD engine to perform out-of-bounds writes into adjacent GPU-mapped memory that could be leveraged for further memory corruption.\nA:H - Triggering the divide-by-zero in kernel context during CS parsing causes an x86 divide-error exception leading to die()/kernel oops, crashing or hanging the system; repeated submissions can deny GPU/video availability on affected UVD hardware (v3.1-v6.0)."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-19T16:29:19.954Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/004d0453cfef16f056cb7b8bc04f69f19cf9df32"
},
{
"url": "https://git.kernel.org/stable/c/00ee64910ecf748cc15b23bbcbea472c203ec1e8"
},
{
"url": "https://git.kernel.org/stable/c/81c9b4921f62d1642b9d775524ae9240e521a5ed"
},
{
"url": "https://git.kernel.org/stable/c/52f9a588296432accf2982f7d258192a37562f4f"
},
{
"url": "https://git.kernel.org/stable/c/a00946b5ab7c25da5685ca9c58f50ff6f43c0fdf"
},
{
"url": "https://git.kernel.org/stable/c/ffb33d466a68cea3e8a3dbed04d79037a3cbabd1"
},
{
"url": "https://git.kernel.org/stable/c/be725ab23aa45c11a5afef3e2a9f6d8c084ae5dc"
},
{
"url": "https://git.kernel.org/stable/c/0c01c811be47e6b146552dd59bfedbea8f09b8f4"
}
],
"title": "drm/amdgpu: fix division by zero with invalid uvd dimensions",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-68106",
"datePublished": "2026-08-10T11:58:23.108Z",
"dateReserved": "2026-07-30T09:28:09.368Z",
"dateUpdated": "2026-10-19T20:58:50.821Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-98125 (GCVE-0-2026-98125)
Vulnerability from cvelistv5
Published
2026-09-25 10:36
Modified
2026-10-21 12:54
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
smb/client: fix stale page cache in insert/collapse range
smb3_insert_range() and smb3_collapse_range() use
truncate_pagecache_range() to invalidate the affected page cache.
However, if off or old_eof is not page-aligned, the boundary pages are
only partially zeroed and remain uptodate. As a result, the client may
return stale data after a successful insert/collapse range operation.
For example, with 4K pages:
page 0 page 1 page 2
0------4K 4K------8K 8K------12K
^ ^
off=2K old_eof=10K
Page 1 is removed from the page cache, while the boundary pages are
only partially zeroed. After COPYCHUNK moves the data on the server,
these cached pages may still return stale data.
This can be reproduced on a CIFS mount:
bash -c '
FILE=/mnt/scratch/repro
# Use a 6 KiB file so EOF is not page-aligned.
dd if=/dev/urandom of=/tmp/src bs=1K count=6 status=none
# Expected: a 4 KiB hole followed by the original data.
rm -f /tmp/expected
truncate -s 4K /tmp/expected
cat /tmp/src >> /tmp/expected
cp /tmp/src "$FILE"
# Prime the page cache before moving data on the server.
cat "$FILE" > /dev/null
fallocate --insert-range -o 0 -l 4K "$FILE"
if cmp -s /tmp/expected "$FILE"; then
echo "readback: OK"
else
echo "readback: STALE DATA"
fi
'
Fix this by writing back dirty data and discarding the page cache from
the start of the page containing off to EOF before moving data on the
server.
References
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: fa30a81f255a56cccd89552cd6ce7ea6e8d8acc4 Version: fa30a81f255a56cccd89552cd6ce7ea6e8d8acc4 Version: fa30a81f255a56cccd89552cd6ce7ea6e8d8acc4 Version: 49523a4732204bdacbf3941a016503ddb4ddb3b9 Version: 0cdde8460c304283d4ebe3f767a70215d1ab9d4e Version: 5.19.12 ≤ |
||
{
"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": "52dd721b3de57e41261e08485b2bc62b22b80ebe",
"status": "affected",
"version": "fa30a81f255a56cccd89552cd6ce7ea6e8d8acc4",
"versionType": "git"
},
{
"lessThan": "76222e76d08fbae4092ee9da84ded2b4c24ee598",
"status": "affected",
"version": "fa30a81f255a56cccd89552cd6ce7ea6e8d8acc4",
"versionType": "git"
},
{
"lessThan": "01261a6fa48b62f5ead8e88aaca1e27cb9ab9032",
"status": "affected",
"version": "fa30a81f255a56cccd89552cd6ce7ea6e8d8acc4",
"versionType": "git"
},
{
"status": "affected",
"version": "49523a4732204bdacbf3941a016503ddb4ddb3b9",
"versionType": "git"
},
{
"status": "affected",
"version": "0cdde8460c304283d4ebe3f767a70215d1ab9d4e",
"versionType": "git"
},
{
"lessThan": "5.20",
"status": "affected",
"version": "5.19.12",
"versionType": "semver"
}
]
},
{
"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.0"
},
{
"lessThan": "6.0",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.160",
"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": "7.2.7",
"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.19.12",
"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\nsmb/client: fix stale page cache in insert/collapse range\n\nsmb3_insert_range() and smb3_collapse_range() use\ntruncate_pagecache_range() to invalidate the affected page cache.\nHowever, if off or old_eof is not page-aligned, the boundary pages are\nonly partially zeroed and remain uptodate. As a result, the client may\nreturn stale data after a successful insert/collapse range operation.\n\nFor example, with 4K pages:\n\n page 0 page 1 page 2\n 0------4K 4K------8K 8K------12K\n ^ ^\n off=2K old_eof=10K\n\nPage 1 is removed from the page cache, while the boundary pages are\nonly partially zeroed. After COPYCHUNK moves the data on the server,\nthese cached pages may still return stale data.\n\nThis can be reproduced on a CIFS mount:\n\n bash -c \u0027\n FILE=/mnt/scratch/repro\n\n # Use a 6 KiB file so EOF is not page-aligned.\n dd if=/dev/urandom of=/tmp/src bs=1K count=6 status=none\n\n # Expected: a 4 KiB hole followed by the original data.\n rm -f /tmp/expected\n truncate -s 4K /tmp/expected\n cat /tmp/src \u003e\u003e /tmp/expected\n\n cp /tmp/src \"$FILE\"\n\n # Prime the page cache before moving data on the server.\n cat \"$FILE\" \u003e /dev/null\n\n fallocate --insert-range -o 0 -l 4K \"$FILE\"\n\n if cmp -s /tmp/expected \"$FILE\"; then\n echo \"readback: OK\"\n else\n echo \"readback: STALE DATA\"\n fi\n \u0027\n\nFix this by writing back dirty data and discarding the page cache from\nthe start of the page containing off to EOF before moving data on the\nserver."
}
],
"providerMetadata": {
"dateUpdated": "2026-10-21T12:54:36.373Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/52dd721b3de57e41261e08485b2bc62b22b80ebe"
},
{
"url": "https://git.kernel.org/stable/c/76222e76d08fbae4092ee9da84ded2b4c24ee598"
},
{
"url": "https://git.kernel.org/stable/c/01261a6fa48b62f5ead8e88aaca1e27cb9ab9032"
}
],
"title": "smb/client: fix stale page cache in insert/collapse range",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-98125",
"datePublished": "2026-09-25T10:36:07.163Z",
"dateReserved": "2026-09-25T10:25:14.318Z",
"dateUpdated": "2026-10-21T12:54:36.373Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-43091 (GCVE-0-2026-43091)
Vulnerability from cvelistv5
Published
2026-05-06 07:40
Modified
2026-10-30 12:24
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
xfrm: Wait for RCU readers during policy netns exit
xfrm_policy_fini() frees the policy_bydst hash tables after flushing the
policy work items and deleting all policies, but it does not wait for
concurrent RCU readers to leave their read-side critical sections first.
The policy_bydst tables are published via rcu_assign_pointer() and are
looked up through rcu_dereference_check(), so netns teardown must also
wait for an RCU grace period before freeing the table memory.
Fix this by adding synchronize_rcu() before freeing the policy hash tables.
References
| URL | Tags | |||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: e1e551bc56302b80ff930c966f9985095fb1b70d Version: e1e551bc56302b80ff930c966f9985095fb1b70d Version: e1e551bc56302b80ff930c966f9985095fb1b70d Version: e1e551bc56302b80ff930c966f9985095fb1b70d Version: e1e551bc56302b80ff930c966f9985095fb1b70d Version: e1e551bc56302b80ff930c966f9985095fb1b70d |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-43091",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T15:14:31.928454Z",
"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:06:13.331Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"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": "b2faee12538b5b008eaef65a4201eb29cb5cefb3",
"status": "affected",
"version": "e1e551bc56302b80ff930c966f9985095fb1b70d",
"versionType": "git"
},
{
"lessThan": "b66920a3348c0f63ba18365248fa21fbf0b3a937",
"status": "affected",
"version": "e1e551bc56302b80ff930c966f9985095fb1b70d",
"versionType": "git"
},
{
"lessThan": "438b1f668ad58f46ce699bb48e4698a7839e3f9e",
"status": "affected",
"version": "e1e551bc56302b80ff930c966f9985095fb1b70d",
"versionType": "git"
},
{
"lessThan": "3733fce2871c9bca9dd18a1a23b1432ea215a094",
"status": "affected",
"version": "e1e551bc56302b80ff930c966f9985095fb1b70d",
"versionType": "git"
},
{
"lessThan": "33a3149dd81a1e2f52b80ee1e0fc380b39f3d028",
"status": "affected",
"version": "e1e551bc56302b80ff930c966f9985095fb1b70d",
"versionType": "git"
},
{
"lessThan": "069daad4f2ae9c5c108131995529d5f02392c446",
"status": "affected",
"version": "e1e551bc56302b80ff930c966f9985095fb1b70d",
"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": "4.9"
},
{
"lessThan": "4.9",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.191",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.136",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.83",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.24",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.19.*",
"status": "unaffected",
"version": "6.19.14",
"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.191",
"versionStartIncluding": "4.9",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.136",
"versionStartIncluding": "4.9",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.83",
"versionStartIncluding": "4.9",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.24",
"versionStartIncluding": "4.9",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.19.14",
"versionStartIncluding": "4.9",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.0",
"versionStartIncluding": "4.9",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nxfrm: Wait for RCU readers during policy netns exit\n\nxfrm_policy_fini() frees the policy_bydst hash tables after flushing the\npolicy work items and deleting all policies, but it does not wait for\nconcurrent RCU readers to leave their read-side critical sections first.\n\nThe policy_bydst tables are published via rcu_assign_pointer() and are\nlooked up through rcu_dereference_check(), so netns teardown must also\nwait for an RCU grace period before freeing the table memory.\n\nFix this by adding synchronize_rcu() before freeing the policy hash tables."
}
],
"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 requires local control of a network namespace/XFRM policy state and concurrent namespace teardown; remote packets can exercise XFRM policy lookups, but a remote attacker cannot normally trigger the required netns exit.\nAC:L - The race is attacker-controllable by creating XFRM policies, generating policy lookups, and tearing down the namespace concurrently; no rare configuration or victim-controlled timing is required beyond winning a repeatable local race.\nPR:L - XFRM netlink operations require CAP_NET_ADMIN in the target network namespace, but an unprivileged local user can obtain that in a new user+network namespace on common userns-enabled systems.\nUI:N - No victim action is required once the local attacker can run code and issue the relevant namespace, netlink, and traffic operations.\nS:U - The impact is within the kernel security authority; this is a standard kernel memory-safety issue rather than a VM, IOMMU, or separate-scope escape.\nC:H - This is a use-after-free of an RCU-published XFRM policy hash table, and stale readers may dereference reallocated attacker-influenced memory during policy lookup.\nI:H - As a kernel UAF in a list traversal path that can reach policy object handling, the freed memory can plausibly be shaped into fake list/policy data and leveraged for kernel memory corruption.\nA:H - At minimum, dereferencing freed hash-table memory during packet or route policy lookup can trigger a kernel oops or panic, causing high availability impact."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-30T12:24:55.188Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/b2faee12538b5b008eaef65a4201eb29cb5cefb3"
},
{
"url": "https://git.kernel.org/stable/c/b66920a3348c0f63ba18365248fa21fbf0b3a937"
},
{
"url": "https://git.kernel.org/stable/c/438b1f668ad58f46ce699bb48e4698a7839e3f9e"
},
{
"url": "https://git.kernel.org/stable/c/3733fce2871c9bca9dd18a1a23b1432ea215a094"
},
{
"url": "https://git.kernel.org/stable/c/33a3149dd81a1e2f52b80ee1e0fc380b39f3d028"
},
{
"url": "https://git.kernel.org/stable/c/069daad4f2ae9c5c108131995529d5f02392c446"
}
],
"title": "xfrm: Wait for RCU readers during policy netns exit",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-43091",
"datePublished": "2026-05-06T07:40:23.955Z",
"dateReserved": "2026-05-01T14:12:55.984Z",
"dateUpdated": "2026-10-30T12:24:55.188Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-64060 (GCVE-0-2026-64060)
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:
netfs: Fix leak of request in netfs_write_begin() error handling
Fix netfs_write_begin() to not leak our ref on the request in the event
that we get an error from netfs_wait_for_read().
References
| URL | Tags | |
|---|---|---|
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"fs/netfs/buffered_read.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "9192f304379187b396d56d6a1a406712c6bfa5a3",
"status": "affected",
"version": "4090b31422a6f24dfe701e31ffec7ba5804a7e2f",
"versionType": "git"
},
{
"lessThan": "22ae28aae43623be235ff455558cdd13fbe2daeb",
"status": "affected",
"version": "4090b31422a6f24dfe701e31ffec7ba5804a7e2f",
"versionType": "git"
},
{
"lessThan": "28686d6d8b60dc5bbae9ef6023ab2051d6c66cdf",
"status": "affected",
"version": "4090b31422a6f24dfe701e31ffec7ba5804a7e2f",
"versionType": "git"
},
{
"lessThan": "5046a34f0643441f05b0253ea64e1a3af87efe14",
"status": "affected",
"version": "4090b31422a6f24dfe701e31ffec7ba5804a7e2f",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"fs/netfs/buffered_read.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.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.12.114",
"versionStartIncluding": "5.18",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.34",
"versionStartIncluding": "5.18",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.0.11",
"versionStartIncluding": "5.18",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1",
"versionStartIncluding": "5.18",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnetfs: Fix leak of request in netfs_write_begin() error handling\n\nFix netfs_write_begin() to not leak our ref on the request in the event\nthat we get an error from netfs_wait_for_read()."
}
],
"providerMetadata": {
"dateUpdated": "2026-10-21T12:42:59.144Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/9192f304379187b396d56d6a1a406712c6bfa5a3"
},
{
"url": "https://git.kernel.org/stable/c/22ae28aae43623be235ff455558cdd13fbe2daeb"
},
{
"url": "https://git.kernel.org/stable/c/28686d6d8b60dc5bbae9ef6023ab2051d6c66cdf"
},
{
"url": "https://git.kernel.org/stable/c/5046a34f0643441f05b0253ea64e1a3af87efe14"
}
],
"title": "netfs: Fix leak of request in netfs_write_begin() error handling",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-64060",
"datePublished": "2026-07-19T15:39:40.243Z",
"dateReserved": "2026-07-19T07:54:57.030Z",
"dateUpdated": "2026-10-21T12:42:59.144Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2022-50578 (GCVE-0-2022-50578)
Vulnerability from cvelistv5
Published
2025-10-22 13:23
Modified
2026-05-11 19:22
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
class: fix possible memory leak in __class_register()
If class_add_groups() returns error, the 'cp->subsys' need be
unregister, and the 'cp' need be freed.
We can not call kset_unregister() here, because the 'cls' will
be freed in callback function class_release() and it's also
freed in caller's error path, it will cause double free.
So fix this by calling kobject_del() and kfree_const(name) to
cleanup kobject. Besides, call kfree() to free the 'cp'.
Fault injection test can trigger this:
unreferenced object 0xffff888102fa8190 (size 8):
comm "modprobe", pid 502, jiffies 4294906074 (age 49.296s)
hex dump (first 8 bytes):
70 6b 74 63 64 76 64 00 pktcdvd.
backtrace:
[<00000000e7c7703d>] __kmalloc_track_caller+0x1ae/0x320
[<000000005e4d70bc>] kstrdup+0x3a/0x70
[<00000000c2e5e85a>] kstrdup_const+0x68/0x80
[<000000000049a8c7>] kvasprintf_const+0x10b/0x190
[<0000000029123163>] kobject_set_name_vargs+0x56/0x150
[<00000000747219c9>] kobject_set_name+0xab/0xe0
[<0000000005f1ea4e>] __class_register+0x15c/0x49a
unreferenced object 0xffff888037274000 (size 1024):
comm "modprobe", pid 502, jiffies 4294906074 (age 49.296s)
hex dump (first 32 bytes):
00 40 27 37 80 88 ff ff 00 40 27 37 80 88 ff ff .@'7.....@'7....
00 00 00 00 ad 4e ad de ff ff ff ff 00 00 00 00 .....N..........
backtrace:
[<00000000151f9600>] kmem_cache_alloc_trace+0x17c/0x2f0
[<00000000ecf3dd95>] __class_register+0x86/0x49a
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: ced6473e7486702f530a49f886b73195e4977734 Version: ced6473e7486702f530a49f886b73195e4977734 Version: ced6473e7486702f530a49f886b73195e4977734 Version: ced6473e7486702f530a49f886b73195e4977734 Version: ced6473e7486702f530a49f886b73195e4977734 Version: ced6473e7486702f530a49f886b73195e4977734 Version: ced6473e7486702f530a49f886b73195e4977734 Version: ced6473e7486702f530a49f886b73195e4977734 |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/base/class.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "4efa5443817c1b6de22d401aeca5b2481e835f8c",
"status": "affected",
"version": "ced6473e7486702f530a49f886b73195e4977734",
"versionType": "git"
},
{
"lessThan": "3bb9c92c27624ad076419a70f2b1a30cd1f8bbbd",
"status": "affected",
"version": "ced6473e7486702f530a49f886b73195e4977734",
"versionType": "git"
},
{
"lessThan": "3e0efc3f3f5e5c73996782f8db69963e501bb878",
"status": "affected",
"version": "ced6473e7486702f530a49f886b73195e4977734",
"versionType": "git"
},
{
"lessThan": "18a7200646958cf8e1b8a933de08122fc50676cd",
"status": "affected",
"version": "ced6473e7486702f530a49f886b73195e4977734",
"versionType": "git"
},
{
"lessThan": "417ef049e3fd3b0d2593c1d5ffa3d0d5d0a018a7",
"status": "affected",
"version": "ced6473e7486702f530a49f886b73195e4977734",
"versionType": "git"
},
{
"lessThan": "e764ad5918a099ebeb909ccff83893a714e497e1",
"status": "affected",
"version": "ced6473e7486702f530a49f886b73195e4977734",
"versionType": "git"
},
{
"lessThan": "abaedb68a769e6bf36836b55a2f49b531c5f3f7b",
"status": "affected",
"version": "ced6473e7486702f530a49f886b73195e4977734",
"versionType": "git"
},
{
"lessThan": "8c3e8a6bdb5253b97ad532570f8b5db5f7a06407",
"status": "affected",
"version": "ced6473e7486702f530a49f886b73195e4977734",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/base/class.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": "4.14.*",
"status": "unaffected",
"version": "4.14.303",
"versionType": "semver"
},
{
"lessThanOrEqual": "4.19.*",
"status": "unaffected",
"version": "4.19.270",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.4.*",
"status": "unaffected",
"version": "5.4.229",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.163",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.86",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.0.*",
"status": "unaffected",
"version": "6.0.16",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.2",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "6.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "4.14.303",
"versionStartIncluding": "4.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "4.19.270",
"versionStartIncluding": "4.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.4.229",
"versionStartIncluding": "4.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.163",
"versionStartIncluding": "4.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.86",
"versionStartIncluding": "4.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.0.16",
"versionStartIncluding": "4.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.2",
"versionStartIncluding": "4.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.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\nclass: fix possible memory leak in __class_register()\n\nIf class_add_groups() returns error, the \u0027cp-\u003esubsys\u0027 need be\nunregister, and the \u0027cp\u0027 need be freed.\n\nWe can not call kset_unregister() here, because the \u0027cls\u0027 will\nbe freed in callback function class_release() and it\u0027s also\nfreed in caller\u0027s error path, it will cause double free.\n\nSo fix this by calling kobject_del() and kfree_const(name) to\ncleanup kobject. Besides, call kfree() to free the \u0027cp\u0027.\n\nFault injection test can trigger this:\n\nunreferenced object 0xffff888102fa8190 (size 8):\n comm \"modprobe\", pid 502, jiffies 4294906074 (age 49.296s)\n hex dump (first 8 bytes):\n 70 6b 74 63 64 76 64 00 pktcdvd.\n backtrace:\n [\u003c00000000e7c7703d\u003e] __kmalloc_track_caller+0x1ae/0x320\n [\u003c000000005e4d70bc\u003e] kstrdup+0x3a/0x70\n [\u003c00000000c2e5e85a\u003e] kstrdup_const+0x68/0x80\n [\u003c000000000049a8c7\u003e] kvasprintf_const+0x10b/0x190\n [\u003c0000000029123163\u003e] kobject_set_name_vargs+0x56/0x150\n [\u003c00000000747219c9\u003e] kobject_set_name+0xab/0xe0\n [\u003c0000000005f1ea4e\u003e] __class_register+0x15c/0x49a\n\nunreferenced object 0xffff888037274000 (size 1024):\n comm \"modprobe\", pid 502, jiffies 4294906074 (age 49.296s)\n hex dump (first 32 bytes):\n 00 40 27 37 80 88 ff ff 00 40 27 37 80 88 ff ff .@\u00277.....@\u00277....\n 00 00 00 00 ad 4e ad de ff ff ff ff 00 00 00 00 .....N..........\n backtrace:\n [\u003c00000000151f9600\u003e] kmem_cache_alloc_trace+0x17c/0x2f0\n [\u003c00000000ecf3dd95\u003e] __class_register+0x86/0x49a"
}
],
"providerMetadata": {
"dateUpdated": "2026-05-11T19:22:08.143Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/4efa5443817c1b6de22d401aeca5b2481e835f8c"
},
{
"url": "https://git.kernel.org/stable/c/3bb9c92c27624ad076419a70f2b1a30cd1f8bbbd"
},
{
"url": "https://git.kernel.org/stable/c/3e0efc3f3f5e5c73996782f8db69963e501bb878"
},
{
"url": "https://git.kernel.org/stable/c/18a7200646958cf8e1b8a933de08122fc50676cd"
},
{
"url": "https://git.kernel.org/stable/c/417ef049e3fd3b0d2593c1d5ffa3d0d5d0a018a7"
},
{
"url": "https://git.kernel.org/stable/c/e764ad5918a099ebeb909ccff83893a714e497e1"
},
{
"url": "https://git.kernel.org/stable/c/abaedb68a769e6bf36836b55a2f49b531c5f3f7b"
},
{
"url": "https://git.kernel.org/stable/c/8c3e8a6bdb5253b97ad532570f8b5db5f7a06407"
}
],
"title": "class: fix possible memory leak in __class_register()",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2022-50578",
"datePublished": "2025-10-22T13:23:31.565Z",
"dateReserved": "2025-10-22T13:20:23.761Z",
"dateUpdated": "2026-05-11T19:22:08.143Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-68236 (GCVE-0-2026-68236)
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/amd/display: set new_stream to NULL after release
In dm_update_crtc_state(), the skip_modeset path releases new_stream
via dc_stream_release() but does not set the pointer to NULL.
If a later error (e.g., color management failure) triggers the fail
label, the error path calls dc_stream_release() again on the same
dangling pointer, causing a double release and potential use-after-free.
Fix this by setting new_stream to NULL after the initial release.
(cherry picked from commit 99f3af19073b3ddbfd96e789124cce12c4277b28)
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 9b690ef3c70422cdcd0cf912db33f2c92ef4a53f Version: 9b690ef3c70422cdcd0cf912db33f2c92ef4a53f Version: 9b690ef3c70422cdcd0cf912db33f2c92ef4a53f Version: 9b690ef3c70422cdcd0cf912db33f2c92ef4a53f Version: 9b690ef3c70422cdcd0cf912db33f2c92ef4a53f Version: 9b690ef3c70422cdcd0cf912db33f2c92ef4a53f Version: 9b690ef3c70422cdcd0cf912db33f2c92ef4a53f Version: 9b690ef3c70422cdcd0cf912db33f2c92ef4a53f |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-68236",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T15:46:01.329903Z",
"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:58:57.661Z",
"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/amdgpu_dm/amdgpu_dm.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "92b7c6e3a1546c6db868b07e93fa6fb950d1d3a0",
"status": "affected",
"version": "9b690ef3c70422cdcd0cf912db33f2c92ef4a53f",
"versionType": "git"
},
{
"lessThan": "bf9c06c70f496f1ba4474caf95c69696c828340e",
"status": "affected",
"version": "9b690ef3c70422cdcd0cf912db33f2c92ef4a53f",
"versionType": "git"
},
{
"lessThan": "01ba5b36898d6258f584269537cc49e7b05cf7c6",
"status": "affected",
"version": "9b690ef3c70422cdcd0cf912db33f2c92ef4a53f",
"versionType": "git"
},
{
"lessThan": "ba8bf1dcbb44773e7a0fd13b42925c644e0d5e76",
"status": "affected",
"version": "9b690ef3c70422cdcd0cf912db33f2c92ef4a53f",
"versionType": "git"
},
{
"lessThan": "5182e442e61397d446c36995b8f5676942d35b82",
"status": "affected",
"version": "9b690ef3c70422cdcd0cf912db33f2c92ef4a53f",
"versionType": "git"
},
{
"lessThan": "679f23f0a3606afcef1ffabd72222f00a54ad9e3",
"status": "affected",
"version": "9b690ef3c70422cdcd0cf912db33f2c92ef4a53f",
"versionType": "git"
},
{
"lessThan": "0676fecbb5242aa22c057e78326d6d6041db034c",
"status": "affected",
"version": "9b690ef3c70422cdcd0cf912db33f2c92ef4a53f",
"versionType": "git"
},
{
"lessThan": "9fa26b9eed6195bf840f39ac183b9a6237548755",
"status": "affected",
"version": "9b690ef3c70422cdcd0cf912db33f2c92ef4a53f",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.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.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.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.271",
"versionStartIncluding": "4.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.222",
"versionStartIncluding": "4.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.189",
"versionStartIncluding": "4.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.148",
"versionStartIncluding": "4.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.101",
"versionStartIncluding": "4.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.42",
"versionStartIncluding": "4.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.6",
"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\ndrm/amd/display: set new_stream to NULL after release\n\nIn dm_update_crtc_state(), the skip_modeset path releases new_stream\nvia dc_stream_release() but does not set the pointer to NULL.\n\nIf a later error (e.g., color management failure) triggers the fail\nlabel, the error path calls dc_stream_release() again on the same\ndangling pointer, causing a double release and potential use-after-free.\n\nFix this by setting new_stream to NULL after the initial release.\n\n(cherry picked from commit 99f3af19073b3ddbfd96e789124cce12c4277b28)"
}
],
"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 atomic modeset ioctl (DRM_IOCTL_MODE_ATOMIC) on a local /dev/dri/card* node of an AMD GPU; there is no network or remote input path into dm_update_crtc_state().\nAC:L - A single atomic commit that requests a mode change while attaching a wrong-sized DEGAMMA_LUT blob deterministically drives amdgpu_dm_check_crtc_color_mgmt() to -EINVAL and hits the double dc_stream_release(); no race and no uncontrolled precondition, and TEST_ONLY commits let the attacker repeat it freely to groom the heap.\nPR:L - The atomic ioctl is gated only by DRM master on the card node, which any unprivileged local user on a graphical seat or an unused VT can hold; no CAP_SYS_ADMIN or root is needed.\nUI:N - The attacker performs the whole sequence with its own ioctl calls; no action by another user or administrator is required, and TEST_ONLY commits do not even disturb the display.\nS:U - The corrupted dc_stream_state and the resulting freed-memory reuse stay within the kernel\u0027s own security authority; no VM, IOMMU, or sandbox boundary is crossed.\nC:H - The extra kref_put() frees the dc_stream_state while the CRTC state and the DC context still reference it; reading through those dangling pointers after the slab is reallocated leaks adjacent kernel object contents and pointers, and the attacker can spray to control what lands there.\nI:H - The reference-count underflow yields a use-after-free/double-free: subsequent kref_put() writes into reallocated slab memory and dc_stream_free() kfree()s an attacker-influenced update_scratch pointer, giving write and arbitrary-free primitives usable for privilege escalation.\nA:H - Even without exploitation the premature free causes dereference of freed stream/sink/link structures during atomic state unwind, producing a kernel oops or panic and killing the display pipeline; it can be triggered repeatedly."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-03T10:55:40.750Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/92b7c6e3a1546c6db868b07e93fa6fb950d1d3a0"
},
{
"url": "https://git.kernel.org/stable/c/bf9c06c70f496f1ba4474caf95c69696c828340e"
},
{
"url": "https://git.kernel.org/stable/c/01ba5b36898d6258f584269537cc49e7b05cf7c6"
},
{
"url": "https://git.kernel.org/stable/c/ba8bf1dcbb44773e7a0fd13b42925c644e0d5e76"
},
{
"url": "https://git.kernel.org/stable/c/5182e442e61397d446c36995b8f5676942d35b82"
},
{
"url": "https://git.kernel.org/stable/c/679f23f0a3606afcef1ffabd72222f00a54ad9e3"
},
{
"url": "https://git.kernel.org/stable/c/0676fecbb5242aa22c057e78326d6d6041db034c"
},
{
"url": "https://git.kernel.org/stable/c/9fa26b9eed6195bf840f39ac183b9a6237548755"
}
],
"title": "drm/amd/display: set new_stream to NULL after release",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-68236",
"datePublished": "2026-08-10T12:01:01.114Z",
"dateReserved": "2026-07-30T09:28:09.376Z",
"dateUpdated": "2026-10-19T20:58:57.661Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-89640 (GCVE-0-2026-89640)
Vulnerability from cvelistv5
Published
2026-09-11 19:45
Modified
2026-10-30 12:32
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
cifs: fix loff_t underflow in cifs_remap_file_range() when len == 0
With len == 0 (clone to EOF), the effective length is computed as:
len = src_inode->i_size - off;
If off > i_size, this is a negative loff_t, corrupting the ByteCount
in the FSCTL_DUPLICATE_EXTENTS_TO_FILE request and inverting the range
in filemap_write_and_wait_range(). The existing off >= i_size check
fires only after the ioctl has already been sent.
Snapshot i_size_read() once for both the bounds check and the length
calculation, eliminating the TOCTOU and 32-bit torn-read risk. Reject
off > src_size with -EINVAL. Treat off == src_size as a no-op,
consistent with __generic_remap_file_range_prep().
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 04b38d601239b4d9be641b412cf4b7456a041c67 Version: 04b38d601239b4d9be641b412cf4b7456a041c67 Version: 04b38d601239b4d9be641b412cf4b7456a041c67 Version: 04b38d601239b4d9be641b412cf4b7456a041c67 Version: 04b38d601239b4d9be641b412cf4b7456a041c67 Version: 04b38d601239b4d9be641b412cf4b7456a041c67 Version: 04b38d601239b4d9be641b412cf4b7456a041c67 Version: 04b38d601239b4d9be641b412cf4b7456a041c67 |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-89640",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "partial"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T19:24:54.678656Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T19:26:45.931Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"fs/smb/client/cifsfs.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "2c6eede83b3de1268db92c7e49741761c954aa26",
"status": "affected",
"version": "04b38d601239b4d9be641b412cf4b7456a041c67",
"versionType": "git"
},
{
"lessThan": "ce813e5eebf46851e872ce59bdc34dc5dd4e29a4",
"status": "affected",
"version": "04b38d601239b4d9be641b412cf4b7456a041c67",
"versionType": "git"
},
{
"lessThan": "f3d1ae1e6bc4a9f559185b6e7bd2b6375ec2fdd4",
"status": "affected",
"version": "04b38d601239b4d9be641b412cf4b7456a041c67",
"versionType": "git"
},
{
"lessThan": "7f62817fe049b0f3652518c1ba72631ec1e0a322",
"status": "affected",
"version": "04b38d601239b4d9be641b412cf4b7456a041c67",
"versionType": "git"
},
{
"lessThan": "b098f5e5858797827666e6cd73033f52fc39b5f6",
"status": "affected",
"version": "04b38d601239b4d9be641b412cf4b7456a041c67",
"versionType": "git"
},
{
"lessThan": "c2a0dcb5a7a1516aa6eb6d5cedca6a8e76527028",
"status": "affected",
"version": "04b38d601239b4d9be641b412cf4b7456a041c67",
"versionType": "git"
},
{
"lessThan": "b057ca17b656345d04669cb87f2aff9b31d873db",
"status": "affected",
"version": "04b38d601239b4d9be641b412cf4b7456a041c67",
"versionType": "git"
},
{
"lessThan": "6c322f5cf7476ded7a9a20f7be72462065a03c68",
"status": "affected",
"version": "04b38d601239b4d9be641b412cf4b7456a041c67",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"fs/smb/client/cifsfs.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.273",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.224",
"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.273",
"versionStartIncluding": "4.5",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.224",
"versionStartIncluding": "4.5",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.188",
"versionStartIncluding": "4.5",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.157",
"versionStartIncluding": "4.5",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.109",
"versionStartIncluding": "4.5",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.50",
"versionStartIncluding": "4.5",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.4",
"versionStartIncluding": "4.5",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "4.5",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\ncifs: fix loff_t underflow in cifs_remap_file_range() when len == 0\n\nWith len == 0 (clone to EOF), the effective length is computed as:\n\n len = src_inode-\u003ei_size - off;\n\nIf off \u003e i_size, this is a negative loff_t, corrupting the ByteCount\nin the FSCTL_DUPLICATE_EXTENTS_TO_FILE request and inverting the range\nin filemap_write_and_wait_range(). The existing off \u003e= i_size check\nfires only after the ioctl has already been sent.\n\nSnapshot i_size_read() once for both the bounds check and the length\ncalculation, eliminating the TOCTOU and 32-bit torn-read risk. Reject\noff \u003e src_size with -EINVAL. Treat off == src_size as a no-op,\nconsistent with __generic_remap_file_range_prep()."
}
],
"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 bug is in the CIFS client remap method, reached from the local FICLONERANGE/FICLONE ioctls through vfs_clone_file_range() on an already-mounted CIFS share, not from SMB packet parsing in ksmbd or the TCP stack.\nAC:L - An attacker fully controls src_offset and src_length and can set length to 0 with offset past i_size, so the loff_t underflow is deterministic and does not depend on a race or memory layout they cannot influence.\nPR:L - vfs_clone_file_range() only requires a regular source opened for read and a regular destination opened for write; any unprivileged user with those fds on a CIFS mount can issue FICLONERANGE without capabilities or init-namespace root.\nUI:N - The attacker opens their own CIFS files and issues the ioctl; no separate victim action such as mounting a share or opening a file is required once a typical enterprise/autofs CIFS mount exists.\nS:U - Impact stays inside the host kernel and the CIFS inode/page cache of the same OS security authority; this is not a VM, IOMMU, or sandbox boundary crossing.\nC:N - The underflow does not read attacker-inaccessible kernel or file data; it miscomputes a clone length and then truncates destination page cache and sends a bad FSCTL, with no out-of-bounds or UAF read primitive.\nI:H - Negative len wraps destend to a huge uoff_t so truncate_inode_pages_range() discards the destination file\u0027s page cache, including dirty folios not flushed in the inverted range, silently destroying buffered data, and the same value corrupts ByteCount in FSCTL_DUPLICATE_EXTENTS_TO_FILE.\nA:H - The same wrapped range and signed-to-u64 conversion can set a huge/negative EOF via smb2_set_file_size()/cifs_resize_file_locked() on duplicate-extents servers and leave netfs/pagecache state inconsistent, which can oops, hang, or deny access to the affected file and kernel paths."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-30T12:32:24.876Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/2c6eede83b3de1268db92c7e49741761c954aa26"
},
{
"url": "https://git.kernel.org/stable/c/ce813e5eebf46851e872ce59bdc34dc5dd4e29a4"
},
{
"url": "https://git.kernel.org/stable/c/f3d1ae1e6bc4a9f559185b6e7bd2b6375ec2fdd4"
},
{
"url": "https://git.kernel.org/stable/c/7f62817fe049b0f3652518c1ba72631ec1e0a322"
},
{
"url": "https://git.kernel.org/stable/c/b098f5e5858797827666e6cd73033f52fc39b5f6"
},
{
"url": "https://git.kernel.org/stable/c/c2a0dcb5a7a1516aa6eb6d5cedca6a8e76527028"
},
{
"url": "https://git.kernel.org/stable/c/b057ca17b656345d04669cb87f2aff9b31d873db"
},
{
"url": "https://git.kernel.org/stable/c/6c322f5cf7476ded7a9a20f7be72462065a03c68"
}
],
"title": "cifs: fix loff_t underflow in cifs_remap_file_range() when len == 0",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-89640",
"datePublished": "2026-09-11T19:45:33.289Z",
"dateReserved": "2026-09-11T19:38:34.740Z",
"dateUpdated": "2026-10-30T12:32:24.876Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-93066 (GCVE-0-2026-93066)
Vulnerability from cvelistv5
Published
2026-09-17 16:10
Modified
2026-10-19 09:05
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
x86/mm/pat: Take cpa_lock around large-page collapse
Loading and unloading modules concurrently on several CPUs on a KASAN
build, with a short delay injected at the CPA page-table lookup to
widen the window, faults within minutes:
BUG: KASAN: use-after-free in __change_page_attr+0x7cc/0x7e0
Write of size 8 at addr ffff888181139718 by task modprobe
...
The buggy address belongs to the physical page:
pfn:0x181139 ... page_type: f2(table)
cpa_collapse_large_pages() rebuilds a leaf PMD from its 4K PTEs and
frees the old PTE-table pages, while __change_page_attr() fetches a
PTE pointer from a lockless lookup_address_in_pgd_attr() and writes
it with set_pte_atomic() only later. When module text is served from
a shared large ROX mapping the two run on the same PMD:
CPU A (module load) CPU B (module finalize)
------------------- -----------------------
execmem_make_temp_rw
set_memory_nx
__change_page_attr
split 2M -> 4K table P
kpte = &P[i] (lockless)
execmem_restore_rox
set_memory_rox (CPA_COLLAPSE)
cpa_collapse_large_pages
rebuild leaf PMD
flush_tlb_all
pagetable_free(P)
set_pte_atomic(kpte, ...)
-> writes into freed P
P is a page-table page (page_type: table), reused at once, so the
write corrupts whatever got the page next: a bad-pte or bad-page
splat, or a fatal fault once P has been turned into read-only text.
The flush_tlb_all() before the free does not close this: its IPI only
serializes against page-table walkers that run with interrupts off
(e.g. GUP-fast); the walk in __change_page_attr() runs with interrupts
on, so nothing stops it from holding a stale pointer into P.
Serialize the collapse - the PMD rebuild, TLB flush and PTE-table
free - under cpa_lock, the same lock __change_page_attr() now takes
unconditionally since commit ("x86/mm/pat: stop gating cpa_lock on
debug_pagealloc_enabled()"), so a concurrent walker can no longer
hold a pointer into a table the collapse is about to free.
References
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"arch/x86/mm/pat/set_memory.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "591b6fac9df3f43522e8ff6eed8662f8b6f1a124",
"status": "affected",
"version": "41d88484c71cd4f659348da41b7b5b3dbd3be1f6",
"versionType": "git"
},
{
"lessThan": "fb97d1d6c20692e15247fa5c8b894b2325e38aee",
"status": "affected",
"version": "41d88484c71cd4f659348da41b7b5b3dbd3be1f6",
"versionType": "git"
},
{
"lessThan": "1aac65f3e651334259ecb2a5f5ddb81c01f02599",
"status": "affected",
"version": "41d88484c71cd4f659348da41b7b5b3dbd3be1f6",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"arch/x86/mm/pat/set_memory.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.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": "6.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.6",
"versionStartIncluding": "6.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "6.15",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nx86/mm/pat: Take cpa_lock around large-page collapse\n\nLoading and unloading modules concurrently on several CPUs on a KASAN\nbuild, with a short delay injected at the CPA page-table lookup to\nwiden the window, faults within minutes:\n\n BUG: KASAN: use-after-free in __change_page_attr+0x7cc/0x7e0\n Write of size 8 at addr ffff888181139718 by task modprobe\n ...\n The buggy address belongs to the physical page:\n pfn:0x181139 ... page_type: f2(table)\n\ncpa_collapse_large_pages() rebuilds a leaf PMD from its 4K PTEs and\nfrees the old PTE-table pages, while __change_page_attr() fetches a\nPTE pointer from a lockless lookup_address_in_pgd_attr() and writes\nit with set_pte_atomic() only later. When module text is served from\na shared large ROX mapping the two run on the same PMD:\n\n CPU A (module load) CPU B (module finalize)\n ------------------- -----------------------\n execmem_make_temp_rw\n set_memory_nx\n __change_page_attr\n split 2M -\u003e 4K table P\n kpte = \u0026P[i] (lockless)\n execmem_restore_rox\n set_memory_rox (CPA_COLLAPSE)\n cpa_collapse_large_pages\n rebuild leaf PMD\n flush_tlb_all\n pagetable_free(P)\n set_pte_atomic(kpte, ...)\n -\u003e writes into freed P\n\nP is a page-table page (page_type: table), reused at once, so the\nwrite corrupts whatever got the page next: a bad-pte or bad-page\nsplat, or a fatal fault once P has been turned into read-only text.\n\nThe flush_tlb_all() before the free does not close this: its IPI only\nserializes against page-table walkers that run with interrupts off\n(e.g. GUP-fast); the walk in __change_page_attr() runs with interrupts\non, so nothing stops it from holding a stale pointer into P.\n\nSerialize the collapse - the PMD rebuild, TLB flush and PTE-table\nfree - under cpa_lock, the same lock __change_page_attr() now takes\nunconditionally since commit (\"x86/mm/pat: stop gating cpa_lock on\ndebug_pagealloc_enabled()\"), so a concurrent walker can no longer\nhold a pointer into a table the collapse is about to free."
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T09:05:02.188Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/591b6fac9df3f43522e8ff6eed8662f8b6f1a124"
},
{
"url": "https://git.kernel.org/stable/c/fb97d1d6c20692e15247fa5c8b894b2325e38aee"
},
{
"url": "https://git.kernel.org/stable/c/1aac65f3e651334259ecb2a5f5ddb81c01f02599"
}
],
"title": "x86/mm/pat: Take cpa_lock around large-page collapse",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-93066",
"datePublished": "2026-09-17T16:10:51.612Z",
"dateReserved": "2026-09-17T15:57:05.660Z",
"dateUpdated": "2026-10-19T09:05:02.188Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-72355 (GCVE-0-2026-72355)
Vulnerability from cvelistv5
Published
2026-08-15 05:55
Modified
2026-09-21 13:13
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
netfs: Fix barriering when walking subrequest list
Fix the barriering used when walking the subrequest list in retry as
there's a possibility of seeing a subreq that's just been added by the
application thread.
References
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"fs/netfs/read_retry.c",
"fs/netfs/write_retry.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "4cca4b44e561a19c77cb1949ae6846da0539db40",
"status": "affected",
"version": "288ace2f57c9d06dd2e42bd80d03747d879a4068",
"versionType": "git"
},
{
"lessThan": "be47c047250671c9225c0319ca4695be9b391c59",
"status": "affected",
"version": "288ace2f57c9d06dd2e42bd80d03747d879a4068",
"versionType": "git"
},
{
"lessThan": "5c6ce05e406520290c1d89da97fb3cd70c09137d",
"status": "affected",
"version": "288ace2f57c9d06dd2e42bd80d03747d879a4068",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"fs/netfs/read_retry.c",
"fs/netfs/write_retry.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.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.18.53",
"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\nnetfs: Fix barriering when walking subrequest list\n\nFix the barriering used when walking the subrequest list in retry as\nthere\u0027s a possibility of seeing a subreq that\u0027s just been added by the\napplication thread."
}
],
"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 netfs client retry path used by SMB/CIFS, Ceph, NFS+fscache, and AFS; a remote malicious or MITM file server can trigger NEED_RETRY via short/error network responses during client read/write I/O.\nAC:L - The attacker controls both sides of the race by timing retry-inducing server responses and issuing concurrent reads/writes (multiple threads/fds); no victim-specific memory layout or rare uncontrollable state is required beyond normal mounted-FS I/O.\nPR:N - No local privileges on the victim are required; a remote attacker operating a malicious or compromised SMB/Ceph/NFS/AFS server can exploit any client with an active mount performing file I/O, without shell or admin access on the client.\nUI:N - On commonly pre-mounted enterprise/automounted network shares, kernel readahead and writeback can reach the buggy retry path without additional victim action at exploitation time beyond existing background file access.\nS:U - Exploitation corrupts the client kernel heap and enables local privilege escalation within the same kernel security domain; it does not by itself cross a VM/host or IOMMU boundary.\nC:H - Observing partially published subrequest entries yields stale start/len/flags/io_iter values, causing out-of-bounds kernel reads and information disclosure from adjacent memory via mis-sized iterators.\nI:H - Corrupted subrequest metadata drives wrong-span reissue_read/write, erroneous list deletion, and refcount manipulation, providing heap corruption primitives that can be leveraged for arbitrary kernel writes and code execution.\nA:H - Incorrect list traversal and mis-issued I/O can cause use-after-free, refcount underflow, kernel oops, or panic, reliably crashing or hanging the affected system."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-09-21T13:13:45.795Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/4cca4b44e561a19c77cb1949ae6846da0539db40"
},
{
"url": "https://git.kernel.org/stable/c/be47c047250671c9225c0319ca4695be9b391c59"
},
{
"url": "https://git.kernel.org/stable/c/5c6ce05e406520290c1d89da97fb3cd70c09137d"
}
],
"title": "netfs: Fix barriering when walking subrequest list",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-72355",
"datePublished": "2026-08-15T05:55:56.812Z",
"dateReserved": "2026-08-09T03:40:39.921Z",
"dateUpdated": "2026-09-21T13:13:45.795Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-98174 (GCVE-0-2026-98174)
Vulnerability from cvelistv5
Published
2026-10-06 08:44
Modified
2026-10-19 09:15
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
smb: client: fix rlist race and missing initialization
TCP_Server_Info.rlist is allocated via kzalloc which zeros both ->next
and ->prev to NULL instead of pointing to itself, making list_empty()
always return false and list_add() dereference a NULL ->prev pointer.
Also, cifs_signal_cifsd_for_reconnect() can be called concurrently
from multiple cifsd threads, allowing the same server's rlist node to
be added twice into the local list, corrupting it.
References
| URL | Tags | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Version: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Version: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Version: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Version: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Version: 0 ≤ Version: 0 ≤ Version: 0 ≤ Version: 0 ≤ |
||
{
"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": "b5f924ffbfa976e4b97f17e8132c595b97482c2d",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "5a8f82f9c5839389cf4036029dd75a9911049e83",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "04082b1833856cb9ed87e0d3d5f04cbf836cf7da",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "c037d6bde3dd5fa00b017b6b98a5389ec0ebc02f",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "5f270f091256da1338c3631083e15d7f83cc05e1",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "6.6.158",
"status": "affected",
"version": "0",
"versionType": "semver"
},
{
"lessThan": "6.12.112",
"status": "affected",
"version": "0",
"versionType": "semver"
},
{
"lessThan": "6.18.54",
"status": "affected",
"version": "0",
"versionType": "semver"
},
{
"lessThan": "7.2.8",
"status": "affected",
"version": "0",
"versionType": "semver"
}
]
},
{
"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": [
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.158",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.112",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.54",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.8",
"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",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.112",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.54",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.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 rlist race and missing initialization\n\nTCP_Server_Info.rlist is allocated via kzalloc which zeros both -\u003enext\nand -\u003eprev to NULL instead of pointing to itself, making list_empty()\nalways return false and list_add() dereference a NULL -\u003eprev pointer.\n\nAlso, cifs_signal_cifsd_for_reconnect() can be called concurrently\nfrom multiple cifsd threads, allowing the same server\u0027s rlist node to\nbe added twice into the local list, corrupting it."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.5,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - The trigger is SMB transport data sent by the server: an unexpected RFC1002 frame type, or a framing or decrypt error, on two channels makes is_smb_response()/smb2ops call cifs_reconnect(server, true). That leads to __cifs_reconnect() -\u003e cifs_signal_cifsd_for_reconnect(all_channels=true) in two cifsd threads at once. The server\u0027s TCP traffic is routable.\nAC:H - The attacker must get the two channels\u0027 list_add(\u0026nserver-\u003erlist, \u0026reco) calls inside the short window after one thread drops cifs_tcp_ses_lock and before it finishes walking its on-stack reco list. Timing that from frames sent over the network is unreliable. The bug also needs a multichannel session (chan_count \u003e 1), and that is not the default.\nPR:N - A malicious SMB server, or an on-path attacker on the client\u0027s SMB connections, needs no account on the victim host. The reconnect is triggered by RFC1002 frames that cifsd parses before any check on the server\u0027s authenticity.\nUI:R - A victim has to mount a share from the attacker\u0027s server with the non-default multichannel or max_channels\u003e1 option. Otherwise ses-\u003echan_count stays 1 and the loop over chans[1..] in cifs_signal_cifsd_for_reconnect() never adds anything to reco.\nS:U - The corruption is in the CIFS client\u0027s TCP_Server_Info list linkage and other kernel stack frames, inside the same kernel security authority. No guest/host, IOMMU or sandbox boundary is crossed.\nC:H - One TCP_Server_Info.rlist node ends up linked into two cifsd threads\u0027 on-stack reco lists. list_for_each_entry_safe() can then follow a pointer into another thread\u0027s stack, which may already be dead, and treat it as a TCP_Server_Info. That is kernel memory corruption that can be steered into reads of controlled memory.\nI:H - The bogus entry is passed to set_need_reco() (spin_lock and a tcpStatus write) and to cifs_put_tcp_session() (srv_count decrement and possible teardown and free). Those are kernel writes through a corrupted list pointer, the same class as list-corruption write primitives.\nA:H - With CONFIG_LIST_HARDENED/DEBUG_LIST, the first list_del_init() on the doubly linked rlist BUGs. Without it, the walk faults or loops on the corrupted reco list. The server can resend bad frames after every reconnect, so it can keep retrying until the client host crashes."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T09:15:05.758Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/b5f924ffbfa976e4b97f17e8132c595b97482c2d"
},
{
"url": "https://git.kernel.org/stable/c/5a8f82f9c5839389cf4036029dd75a9911049e83"
},
{
"url": "https://git.kernel.org/stable/c/04082b1833856cb9ed87e0d3d5f04cbf836cf7da"
},
{
"url": "https://git.kernel.org/stable/c/c037d6bde3dd5fa00b017b6b98a5389ec0ebc02f"
},
{
"url": "https://git.kernel.org/stable/c/5f270f091256da1338c3631083e15d7f83cc05e1"
}
],
"title": "smb: client: fix rlist race and missing initialization",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-98174",
"datePublished": "2026-10-06T08:44:18.350Z",
"dateReserved": "2026-09-25T10:25:14.322Z",
"dateUpdated": "2026-10-19T09:15:05.758Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-98261 (GCVE-0-2026-98261)
Vulnerability from cvelistv5
Published
2026-10-06 08:45
Modified
2026-10-19 09:16
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
cifs: Fix server use-after-free in cifs_chan_skip_or_disable()
When a secondary channel is no longer supported by the server,
cifs_chan_skip_or_disable() drops the channel reference with
cifs_put_tcp_session() and then continues to use the server pointer by
calling cifs_signal_cifsd_for_reconnect() on it and reading its
primary_server pointer. cifs_put_tcp_session() can drop the last
reference of the channel and tear it down, so both the channel and the
primary server (whose reference is also dropped by
cifs_put_tcp_session()) can be freed before they are signaled for
reconnect.
Signal the channel and the primary server and capture the primary
server pointer before dropping the channel reference with
cifs_put_tcp_session().
References
| URL | Tags | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 50e8363ecc85da49764781da90ebffe1a657b370 Version: f591062bdbf4742b7f1622173017f19e927057b0 Version: f591062bdbf4742b7f1622173017f19e927057b0 Version: f591062bdbf4742b7f1622173017f19e927057b0 Version: f591062bdbf4742b7f1622173017f19e927057b0 Version: d61ba1d71ea6039eca7ada870bf3f0c3c8fc12e4 Version: 6.6.15 ≤ Version: 6.7.3 ≤ |
||
{
"containers": {
"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": "0338489960ddad6368bce55e8adbc176c523093d",
"status": "affected",
"version": "50e8363ecc85da49764781da90ebffe1a657b370",
"versionType": "git"
},
{
"lessThan": "edd52eae5fcfb8433b6bb0e7cd98db438fe01227",
"status": "affected",
"version": "f591062bdbf4742b7f1622173017f19e927057b0",
"versionType": "git"
},
{
"lessThan": "fcc0a935bb6e37ecbf7e4335061309f896f35780",
"status": "affected",
"version": "f591062bdbf4742b7f1622173017f19e927057b0",
"versionType": "git"
},
{
"lessThan": "7a1b27780b113583a94256d58dabfe7c0d9286e7",
"status": "affected",
"version": "f591062bdbf4742b7f1622173017f19e927057b0",
"versionType": "git"
},
{
"lessThan": "717e0a25036b6c92cecace30913b2d874a4c22b8",
"status": "affected",
"version": "f591062bdbf4742b7f1622173017f19e927057b0",
"versionType": "git"
},
{
"status": "affected",
"version": "d61ba1d71ea6039eca7ada870bf3f0c3c8fc12e4",
"versionType": "git"
},
{
"lessThan": "6.6.158",
"status": "affected",
"version": "6.6.15",
"versionType": "semver"
},
{
"lessThan": "6.8",
"status": "affected",
"version": "6.7.3",
"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.158",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.112",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.54",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.8",
"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": "6.6.15",
"vulnerable": true
},
{
"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.54",
"versionStartIncluding": "6.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.8",
"versionStartIncluding": "6.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "6.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "6.7.3",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\ncifs: Fix server use-after-free in cifs_chan_skip_or_disable()\n\nWhen a secondary channel is no longer supported by the server,\ncifs_chan_skip_or_disable() drops the channel reference with\ncifs_put_tcp_session() and then continues to use the server pointer by\ncalling cifs_signal_cifsd_for_reconnect() on it and reading its\nprimary_server pointer. cifs_put_tcp_session() can drop the last\nreference of the channel and tear it down, so both the channel and the\nprimary server (whose reference is also dropped by\ncifs_put_tcp_session()) can be freed before they are signaled for\nreconnect.\n\nSignal the channel and the primary server and capture the primary\nserver pointer before dropping the channel reference with\ncifs_put_tcp_session()."
}
],
"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 trigger is the SMB2 NEGOTIATE response a remote server sends while a secondary channel reconnects. If it omits SMB2_GLOBAL_CAP_MULTI_CHANNEL with chan_count\u003e1, smb2_reconnect() calls smb3_update_ses_channels(disable_mchan=true) and then cifs_chan_skip_or_disable(). That function drops the channel\u0027s last reference and then uses the server.\nAC:H - cifs_put_tcp_session() only SIGKILLs the channel\u0027s cifsd thread. clean_demultiplex_info() sleeps at least 125 ms before kfree_sensitive(server), and the freed accesses (set_need_reco, server-\u003eprimary_server) run a few instructions after the put. The reconnecting thread must be descheduled across that window, which the remote attacker cannot control. The attacker must also be the server or on-path.\nPR:N - The attacker acts as the SMB server or an on-path party and needs no account or privilege on the client. The capability check runs in smb2_reconnect() right after cifs_negotiate_protocol(), before cifs_setup_session() authenticates anything.\nUI:N - An on-path attacker can force a reconnect of an existing multichannel mount and forge the unsigned NEGOTIATE response, so the victim takes no action. Signing and the 3.1.1 preauth hash are checked only after the bug fires.\nS:U - The freed TCP_Server_Info and the code using it are both in the client kernel, so this is a kernel memory-safety issue within the same security authority.\nC:H - After the freed channel TCP_Server_Info is reused, cifs_chan_skip_or_disable() reads server-\u003eprimary_server out of it and dereferences that pointer. An attacker who controls the reallocated object controls that pointer.\nI:H - cifs_signal_cifsd_for_reconnect() spin-locks and writes tcpStatus first in the freed channel and then through the primary_server pointer read from it. With the memory reallocated, that is a lock and write at an attacker-influenced address.\nA:H - Taking srv_lock and writing tcpStatus in a freed TCP_Server_Info, or following a stale primary_server pointer, can corrupt the slab or oops the client kernel."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T09:16:32.334Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/0338489960ddad6368bce55e8adbc176c523093d"
},
{
"url": "https://git.kernel.org/stable/c/edd52eae5fcfb8433b6bb0e7cd98db438fe01227"
},
{
"url": "https://git.kernel.org/stable/c/fcc0a935bb6e37ecbf7e4335061309f896f35780"
},
{
"url": "https://git.kernel.org/stable/c/7a1b27780b113583a94256d58dabfe7c0d9286e7"
},
{
"url": "https://git.kernel.org/stable/c/717e0a25036b6c92cecace30913b2d874a4c22b8"
}
],
"title": "cifs: Fix server use-after-free in cifs_chan_skip_or_disable()",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-98261",
"datePublished": "2026-10-06T08:45:25.361Z",
"dateReserved": "2026-09-25T10:25:14.332Z",
"dateUpdated": "2026-10-19T09:16:32.334Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-98010 (GCVE-0-2026-98010)
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/sched: drr: clamp quantum in change class
drr_change_class() rejects explicit quantum==0 but falls back to
psched_mtu() with no floor. With a crafted size table qdisc_pkt_len
reaches ~2 GiB, so quantum=1 (or a zero psched_mtu on a headerless
device) makes the deficit-refill loop spin under the qdisc lock.
Add clamp_t(u32, quantum, 256, 1<<20) after the zero reject and on the
fallback path. The explicit-zero reject is preserved.
Conditions to recreate the bug:
CONFIG_NET_SCH_DRR=y. Requires CAP_NET_ADMIN (namespace-local via
unshare -Urn suffices).
tc qdisc add dev dummy0 root drr
tc class add dev dummy0 parent 1: classid 1:1 drr quantum 1
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 13d2a1d2b032de08d7dcab6a1edcd47802681f96 Version: 13d2a1d2b032de08d7dcab6a1edcd47802681f96 Version: 13d2a1d2b032de08d7dcab6a1edcd47802681f96 Version: 13d2a1d2b032de08d7dcab6a1edcd47802681f96 Version: 13d2a1d2b032de08d7dcab6a1edcd47802681f96 Version: 13d2a1d2b032de08d7dcab6a1edcd47802681f96 Version: 13d2a1d2b032de08d7dcab6a1edcd47802681f96 Version: 13d2a1d2b032de08d7dcab6a1edcd47802681f96 |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/sched/sch_drr.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "e2297bbf9cf6ece86f1d1f8c683517a994990f9e",
"status": "affected",
"version": "13d2a1d2b032de08d7dcab6a1edcd47802681f96",
"versionType": "git"
},
{
"lessThan": "560794ee6e040b6e1c4ac2b3c8909f341a4596ee",
"status": "affected",
"version": "13d2a1d2b032de08d7dcab6a1edcd47802681f96",
"versionType": "git"
},
{
"lessThan": "23fea7e6736b2e1c6f6f2f05cccf33d36834da73",
"status": "affected",
"version": "13d2a1d2b032de08d7dcab6a1edcd47802681f96",
"versionType": "git"
},
{
"lessThan": "b464affe9f9dfe41ac48930c376e3fb8596651b0",
"status": "affected",
"version": "13d2a1d2b032de08d7dcab6a1edcd47802681f96",
"versionType": "git"
},
{
"lessThan": "dc8b374214ef5bba4882bbd95b361e42555cfc0d",
"status": "affected",
"version": "13d2a1d2b032de08d7dcab6a1edcd47802681f96",
"versionType": "git"
},
{
"lessThan": "d43cded350fe1218493ad3d37a276aff14108ae6",
"status": "affected",
"version": "13d2a1d2b032de08d7dcab6a1edcd47802681f96",
"versionType": "git"
},
{
"lessThan": "8f756ae1c87414ce9cc21b30e6e4c036d6e9e80b",
"status": "affected",
"version": "13d2a1d2b032de08d7dcab6a1edcd47802681f96",
"versionType": "git"
},
{
"lessThan": "8382abec0f1568d0a5590d75a3df92f23fcf5196",
"status": "affected",
"version": "13d2a1d2b032de08d7dcab6a1edcd47802681f96",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/sched/sch_drr.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.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": "2.6.29",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.222",
"versionStartIncluding": "2.6.29",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.189",
"versionStartIncluding": "2.6.29",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.158",
"versionStartIncluding": "2.6.29",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.111",
"versionStartIncluding": "2.6.29",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.53",
"versionStartIncluding": "2.6.29",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.7",
"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\nnet/sched: drr: clamp quantum in change class\n\ndrr_change_class() rejects explicit quantum==0 but falls back to\npsched_mtu() with no floor. With a crafted size table qdisc_pkt_len\nreaches ~2 GiB, so quantum=1 (or a zero psched_mtu on a headerless\ndevice) makes the deficit-refill loop spin under the qdisc lock.\n\nAdd clamp_t(u32, quantum, 256, 1\u003c\u003c20) after the zero reject and on the\nfallback path. The explicit-zero reject is preserved.\n\nConditions to recreate the bug:\n CONFIG_NET_SCH_DRR=y. Requires CAP_NET_ADMIN (namespace-local via\n unshare -Urn suffices).\n\n tc qdisc add dev dummy0 root drr\n tc class add dev dummy0 parent 1: classid 1:1 drr quantum 1"
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T09:12:15.743Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/e2297bbf9cf6ece86f1d1f8c683517a994990f9e"
},
{
"url": "https://git.kernel.org/stable/c/560794ee6e040b6e1c4ac2b3c8909f341a4596ee"
},
{
"url": "https://git.kernel.org/stable/c/23fea7e6736b2e1c6f6f2f05cccf33d36834da73"
},
{
"url": "https://git.kernel.org/stable/c/b464affe9f9dfe41ac48930c376e3fb8596651b0"
},
{
"url": "https://git.kernel.org/stable/c/dc8b374214ef5bba4882bbd95b361e42555cfc0d"
},
{
"url": "https://git.kernel.org/stable/c/d43cded350fe1218493ad3d37a276aff14108ae6"
},
{
"url": "https://git.kernel.org/stable/c/8f756ae1c87414ce9cc21b30e6e4c036d6e9e80b"
},
{
"url": "https://git.kernel.org/stable/c/8382abec0f1568d0a5590d75a3df92f23fcf5196"
}
],
"title": "net/sched: drr: clamp quantum in change class",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-98010",
"datePublished": "2026-09-25T10:23:34.738Z",
"dateReserved": "2026-09-25T10:19:56.068Z",
"dateUpdated": "2026-10-19T09:12:15.743Z",
"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-97416 (GCVE-0-2026-97416)
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:
btrfs: balance: fix potential bg lookup failure in btrfs_may_alloc_data_chunk()
[BUG]
Running btrfs balance can trigger a null-ptr-deref before relocating a
data chunk when metadata corruption leaves a chunk in the chunk tree
without a corresponding block group in the in-memory cache:
KASAN: null-ptr-deref in range [0x0000000000000088-0x000000000000008f]
RIP: 0010:btrfs_may_alloc_data_chunk+0x40/0x1c0 fs/btrfs/volumes.c:3601
Call Trace:
__btrfs_balance fs/btrfs/volumes.c:4217 [inline]
btrfs_balance+0x2516/0x42b0 fs/btrfs/volumes.c:4604
btrfs_ioctl_balance fs/btrfs/ioctl.c:3577 [inline]
btrfs_ioctl+0x25cf/0x5b90 fs/btrfs/ioctl.c:5313
...
[CAUSE]
__btrfs_balance() iterates the on-disk chunk tree and passes the chunk
logical bytenr to btrfs_may_alloc_data_chunk() before relocating a data
chunk. That helper then queries the in-memory block group cache:
cache = btrfs_lookup_block_group(fs_info, chunk_offset);
chunk_type = cache->flags; /* cache may be NULL */
A corrupt image can contain a chunk item whose matching block group
item is missing, so no block group is ever inserted into the cache. In
that case btrfs_lookup_block_group() returns NULL.
The code only guards this with ASSERT(cache), which becomes a no-op when
CONFIG_BTRFS_ASSERT is disabled. The subsequent dereference of
cache->flags therefore crashes the kernel.
[FIX]
Add a NULL check after btrfs_lookup_block_group() in
btrfs_may_alloc_data_chunk() and print and error message for clarity.
References
| URL | Tags | ||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: a6f93c71d412ba8ed743152c3a54ad0b78dcd9c7 Version: a6f93c71d412ba8ed743152c3a54ad0b78dcd9c7 Version: a6f93c71d412ba8ed743152c3a54ad0b78dcd9c7 Version: a6f93c71d412ba8ed743152c3a54ad0b78dcd9c7 Version: a6f93c71d412ba8ed743152c3a54ad0b78dcd9c7 Version: a6f93c71d412ba8ed743152c3a54ad0b78dcd9c7 Version: a6f93c71d412ba8ed743152c3a54ad0b78dcd9c7 |
||
{
"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": "9f37a6d6ae9e998232e2ba091ab4999cdf967e1b",
"status": "affected",
"version": "a6f93c71d412ba8ed743152c3a54ad0b78dcd9c7",
"versionType": "git"
},
{
"lessThan": "e479236a8f4d85c4fb6b3f7c2556c21f583e2bf2",
"status": "affected",
"version": "a6f93c71d412ba8ed743152c3a54ad0b78dcd9c7",
"versionType": "git"
},
{
"lessThan": "322f891b4d4fe64acb3351a0ffa62a7fa5ba7256",
"status": "affected",
"version": "a6f93c71d412ba8ed743152c3a54ad0b78dcd9c7",
"versionType": "git"
},
{
"lessThan": "81a664ed8b1a44c76b204c4bd0d751317a02c5cd",
"status": "affected",
"version": "a6f93c71d412ba8ed743152c3a54ad0b78dcd9c7",
"versionType": "git"
},
{
"lessThan": "9740dd0c17a4be8cc47a06c5ca5293471a7e286e",
"status": "affected",
"version": "a6f93c71d412ba8ed743152c3a54ad0b78dcd9c7",
"versionType": "git"
},
{
"lessThan": "59f75e0c8724d4adebc08c7dd3ff2358b80c21f7",
"status": "affected",
"version": "a6f93c71d412ba8ed743152c3a54ad0b78dcd9c7",
"versionType": "git"
},
{
"lessThan": "18d32b0013efba19f7ad3e5b08d7aee813d604a6",
"status": "affected",
"version": "a6f93c71d412ba8ed743152c3a54ad0b78dcd9c7",
"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": "4.16"
},
{
"lessThan": "4.16",
"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": "4.16",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.222",
"versionStartIncluding": "4.16",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.189",
"versionStartIncluding": "4.16",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.158",
"versionStartIncluding": "4.16",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.111",
"versionStartIncluding": "4.16",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.53",
"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\nbtrfs: balance: fix potential bg lookup failure in btrfs_may_alloc_data_chunk()\n\n[BUG]\nRunning btrfs balance can trigger a null-ptr-deref before relocating a\ndata chunk when metadata corruption leaves a chunk in the chunk tree\nwithout a corresponding block group in the in-memory cache:\n\n KASAN: null-ptr-deref in range [0x0000000000000088-0x000000000000008f]\n RIP: 0010:btrfs_may_alloc_data_chunk+0x40/0x1c0 fs/btrfs/volumes.c:3601\n Call Trace:\n __btrfs_balance fs/btrfs/volumes.c:4217 [inline]\n btrfs_balance+0x2516/0x42b0 fs/btrfs/volumes.c:4604\n btrfs_ioctl_balance fs/btrfs/ioctl.c:3577 [inline]\n btrfs_ioctl+0x25cf/0x5b90 fs/btrfs/ioctl.c:5313\n ...\n\n[CAUSE]\n__btrfs_balance() iterates the on-disk chunk tree and passes the chunk\nlogical bytenr to btrfs_may_alloc_data_chunk() before relocating a data\nchunk. That helper then queries the in-memory block group cache:\n\n cache = btrfs_lookup_block_group(fs_info, chunk_offset);\n chunk_type = cache-\u003eflags; /* cache may be NULL */\n\nA corrupt image can contain a chunk item whose matching block group\nitem is missing, so no block group is ever inserted into the cache. In\nthat case btrfs_lookup_block_group() returns NULL.\n\nThe code only guards this with ASSERT(cache), which becomes a no-op when\nCONFIG_BTRFS_ASSERT is disabled. The subsequent dereference of\ncache-\u003eflags therefore crashes the kernel.\n\n[FIX]\nAdd a NULL check after btrfs_lookup_block_group() in\nbtrfs_may_alloc_data_chunk() and print and error message for clarity."
}
],
"providerMetadata": {
"dateUpdated": "2026-10-03T10:58:07.862Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/9f37a6d6ae9e998232e2ba091ab4999cdf967e1b"
},
{
"url": "https://git.kernel.org/stable/c/e479236a8f4d85c4fb6b3f7c2556c21f583e2bf2"
},
{
"url": "https://git.kernel.org/stable/c/322f891b4d4fe64acb3351a0ffa62a7fa5ba7256"
},
{
"url": "https://git.kernel.org/stable/c/81a664ed8b1a44c76b204c4bd0d751317a02c5cd"
},
{
"url": "https://git.kernel.org/stable/c/9740dd0c17a4be8cc47a06c5ca5293471a7e286e"
},
{
"url": "https://git.kernel.org/stable/c/59f75e0c8724d4adebc08c7dd3ff2358b80c21f7"
},
{
"url": "https://git.kernel.org/stable/c/18d32b0013efba19f7ad3e5b08d7aee813d604a6"
}
],
"title": "btrfs: balance: fix potential bg lookup failure in btrfs_may_alloc_data_chunk()",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-97416",
"datePublished": "2026-09-24T16:03:23.731Z",
"dateReserved": "2026-09-24T14:53:16.867Z",
"dateUpdated": "2026-10-03T10:58:07.862Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-74368 (GCVE-0-2026-74368)
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:
wifi: ath12k: fix memory leak in ath12k_wifi7_dp_rx_h_verify_tkip_mic()
In ath12k_wifi7_dp_rx_h_verify_tkip_mic(), the call to
ath12k_dp_rx_check_nwifi_hdr_len_valid() may return false when the
NWIFI header length is invalid, causing the function to abort early with
-EINVAL.
When this happens, the error propagates to
ath12k_wifi7_dp_rx_h_defrag(), which clears first_frag by setting it
to NULL. As a result, the corresponding MSDU is no longer referenced
by the defragmentation path and is never freed.
This leads to a memory leak for the affected MSDU on this error path.
Proper cleanup is required to ensure the MSDU is released when header
validation fails during TKIP MIC verification.
Tested-on: WCN7850 hw2.0 PCI WLAN.HMT.1.1.c5-00302-QCAHMTSWPL_V1.0_V2.0_SILICONZ-1.115823.3
References
| URL | Tags | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 7f1d986da5c6abb75ffe4d0d325fc9b341c41a1c Version: 3abe15e756481c45f6acba3d476cb3ca4afc3b61 Version: 9a0dddfb30f120db3851627935851d262e4e7acb Version: 9a0dddfb30f120db3851627935851d262e4e7acb Version: 9a0dddfb30f120db3851627935851d262e4e7acb Version: 6ee653194ddb83674913fd2727b8ecfae0597ade Version: 50be1fb76556e80af9f5da80f28168b6c71bce58 Version: 6.6.88 ≤ Version: 6.12.24 ≤ Version: 6.13.12 ≤ Version: 6.14.3 ≤ |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/net/wireless/ath/ath12k/wifi7/dp_rx.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "d960cd5dbcc6a01f49cc304b724f6b18a63a172d",
"status": "affected",
"version": "7f1d986da5c6abb75ffe4d0d325fc9b341c41a1c",
"versionType": "git"
},
{
"lessThan": "779ab501dc8f1148b3f10740a68335741bdc5ffe",
"status": "affected",
"version": "3abe15e756481c45f6acba3d476cb3ca4afc3b61",
"versionType": "git"
},
{
"lessThan": "55c6f05b667726d2da5fd011d646fb48ce5b6b9c",
"status": "affected",
"version": "9a0dddfb30f120db3851627935851d262e4e7acb",
"versionType": "git"
},
{
"lessThan": "5187a92099778501f21af76ed6c8415d128e7298",
"status": "affected",
"version": "9a0dddfb30f120db3851627935851d262e4e7acb",
"versionType": "git"
},
{
"lessThan": "98d4f92ab6a1af2ea2ab590d7e2801b203110981",
"status": "affected",
"version": "9a0dddfb30f120db3851627935851d262e4e7acb",
"versionType": "git"
},
{
"status": "affected",
"version": "6ee653194ddb83674913fd2727b8ecfae0597ade",
"versionType": "git"
},
{
"status": "affected",
"version": "50be1fb76556e80af9f5da80f28168b6c71bce58",
"versionType": "git"
},
{
"lessThan": "6.6.160",
"status": "affected",
"version": "6.6.88",
"versionType": "semver"
},
{
"lessThan": "6.12.114",
"status": "affected",
"version": "6.12.24",
"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": [
"drivers/net/wireless/ath/ath12k/wifi7/dp_rx.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.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.88",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.114",
"versionStartIncluding": "6.12.24",
"vulnerable": true
},
{
"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.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": "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\nwifi: ath12k: fix memory leak in ath12k_wifi7_dp_rx_h_verify_tkip_mic()\n\nIn ath12k_wifi7_dp_rx_h_verify_tkip_mic(), the call to\nath12k_dp_rx_check_nwifi_hdr_len_valid() may return false when the\nNWIFI header length is invalid, causing the function to abort early with\n-EINVAL.\n\nWhen this happens, the error propagates to\nath12k_wifi7_dp_rx_h_defrag(), which clears first_frag by setting it\nto NULL. As a result, the corresponding MSDU is no longer referenced\nby the defragmentation path and is never freed.\n\nThis leads to a memory leak for the affected MSDU on this error path.\nProper cleanup is required to ensure the MSDU is released when header\nvalidation fails during TKIP MIC verification.\n\nTested-on: WCN7850 hw2.0 PCI WLAN.HMT.1.1.c5-00302-QCAHMTSWPL_V1.0_V2.0_SILICONZ-1.115823.3"
}
],
"providerMetadata": {
"dateUpdated": "2026-10-21T12:45:29.473Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/d960cd5dbcc6a01f49cc304b724f6b18a63a172d"
},
{
"url": "https://git.kernel.org/stable/c/779ab501dc8f1148b3f10740a68335741bdc5ffe"
},
{
"url": "https://git.kernel.org/stable/c/55c6f05b667726d2da5fd011d646fb48ce5b6b9c"
},
{
"url": "https://git.kernel.org/stable/c/5187a92099778501f21af76ed6c8415d128e7298"
},
{
"url": "https://git.kernel.org/stable/c/98d4f92ab6a1af2ea2ab590d7e2801b203110981"
}
],
"title": "wifi: ath12k: fix memory leak in ath12k_wifi7_dp_rx_h_verify_tkip_mic()",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-74368",
"datePublished": "2026-08-15T05:58:49.619Z",
"dateReserved": "2026-08-15T05:44:03.888Z",
"dateUpdated": "2026-10-21T12:45:29.473Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2023-54158 (GCVE-0-2023-54158)
Vulnerability from cvelistv5
Published
2025-12-24 13:07
Modified
2026-05-11 19:56
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
btrfs: don't free qgroup space unless specified
Boris noticed in his simple quotas testing that he was getting a leak
with Sweet Tea's change to subvol create that stopped doing a
transaction commit. This was just a side effect of that change.
In the delayed inode code we have an optimization that will free extra
reservations if we think we can pack a dir item into an already modified
leaf. Previously this wouldn't be triggered in the subvolume create
case because we'd commit the transaction, it was still possible but
much harder to trigger. It could actually be triggered if we did a
mkdir && subvol create with qgroups enabled.
This occurs because in btrfs_insert_delayed_dir_index(), which gets
called when we're adding the dir item, we do the following:
btrfs_block_rsv_release(fs_info, trans->block_rsv, bytes, NULL);
if we're able to skip reserving space.
The problem here is that trans->block_rsv points at the temporary block
rsv for the subvolume create, which has qgroup reservations in the block
rsv.
This is a problem because btrfs_block_rsv_release() will do the
following:
if (block_rsv->qgroup_rsv_reserved >= block_rsv->qgroup_rsv_size) {
qgroup_to_release = block_rsv->qgroup_rsv_reserved -
block_rsv->qgroup_rsv_size;
block_rsv->qgroup_rsv_reserved = block_rsv->qgroup_rsv_size;
}
The temporary block rsv just has ->qgroup_rsv_reserved set,
->qgroup_rsv_size == 0. The optimization in
btrfs_insert_delayed_dir_index() sets ->qgroup_rsv_reserved = 0. Then
later on when we call btrfs_subvolume_release_metadata() which has
btrfs_block_rsv_release(fs_info, rsv, (u64)-1, &qgroup_to_release);
btrfs_qgroup_convert_reserved_meta(root, qgroup_to_release);
qgroup_to_release is set to 0, and we do not convert the reserved
metadata space.
The problem here is that the block rsv code has been unconditionally
messing with ->qgroup_rsv_reserved, because the main place this is used
is delalloc, and any time we call btrfs_block_rsv_release() we do it
with qgroup_to_release set, and thus do the proper accounting.
The subvolume code is the only other code that uses the qgroup
reservation stuff, but it's intermingled with the above optimization,
and thus was getting its reservation freed out from underneath it and
thus leaking the reserved space.
The solution is to simply not mess with the qgroup reservations if we
don't have qgroup_to_release set. This works with the existing code as
anything that messes with the delalloc reservations always have
qgroup_to_release set. This fixes the leak that Boris was observing.
References
| URL | Tags | ||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: ff6bc37eb7f6e7b052e50c13a480e1080b3ec07a Version: ff6bc37eb7f6e7b052e50c13a480e1080b3ec07a Version: ff6bc37eb7f6e7b052e50c13a480e1080b3ec07a Version: ff6bc37eb7f6e7b052e50c13a480e1080b3ec07a Version: ff6bc37eb7f6e7b052e50c13a480e1080b3ec07a Version: ff6bc37eb7f6e7b052e50c13a480e1080b3ec07a Version: ff6bc37eb7f6e7b052e50c13a480e1080b3ec07a |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"fs/btrfs/block-rsv.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "1e05bf5e80bb1161b7294c9ce5292b26232ab853",
"status": "affected",
"version": "ff6bc37eb7f6e7b052e50c13a480e1080b3ec07a",
"versionType": "git"
},
{
"lessThan": "148b16cd30b202999ec5b534e3e5d8ab4b766f21",
"status": "affected",
"version": "ff6bc37eb7f6e7b052e50c13a480e1080b3ec07a",
"versionType": "git"
},
{
"lessThan": "f264be24146bee2d652010a18ae2517df5856261",
"status": "affected",
"version": "ff6bc37eb7f6e7b052e50c13a480e1080b3ec07a",
"versionType": "git"
},
{
"lessThan": "15e877e5923ec6d6caa5e447dcc4b79a8ff7cc53",
"status": "affected",
"version": "ff6bc37eb7f6e7b052e50c13a480e1080b3ec07a",
"versionType": "git"
},
{
"lessThan": "04ff6bd0317735791ef3e443c7c89f3c0dda548d",
"status": "affected",
"version": "ff6bc37eb7f6e7b052e50c13a480e1080b3ec07a",
"versionType": "git"
},
{
"lessThan": "478bd15f46b6e3aae78aac4f3788697f1546eea6",
"status": "affected",
"version": "ff6bc37eb7f6e7b052e50c13a480e1080b3ec07a",
"versionType": "git"
},
{
"lessThan": "d246331b78cbef86237f9c22389205bc9b4e1cc1",
"status": "affected",
"version": "ff6bc37eb7f6e7b052e50c13a480e1080b3ec07a",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"fs/btrfs/block-rsv.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.4.*",
"status": "unaffected",
"version": "5.4.243",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.180",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.112",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.29",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.2.*",
"status": "unaffected",
"version": "6.2.16",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.3.*",
"status": "unaffected",
"version": "6.3.3",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "6.4",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.4.243",
"versionStartIncluding": "4.17",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.180",
"versionStartIncluding": "4.17",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.112",
"versionStartIncluding": "4.17",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.29",
"versionStartIncluding": "4.17",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.2.16",
"versionStartIncluding": "4.17",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.3.3",
"versionStartIncluding": "4.17",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.4",
"versionStartIncluding": "4.17",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nbtrfs: don\u0027t free qgroup space unless specified\n\nBoris noticed in his simple quotas testing that he was getting a leak\nwith Sweet Tea\u0027s change to subvol create that stopped doing a\ntransaction commit. This was just a side effect of that change.\n\nIn the delayed inode code we have an optimization that will free extra\nreservations if we think we can pack a dir item into an already modified\nleaf. Previously this wouldn\u0027t be triggered in the subvolume create\ncase because we\u0027d commit the transaction, it was still possible but\nmuch harder to trigger. It could actually be triggered if we did a\nmkdir \u0026\u0026 subvol create with qgroups enabled.\n\nThis occurs because in btrfs_insert_delayed_dir_index(), which gets\ncalled when we\u0027re adding the dir item, we do the following:\n\n btrfs_block_rsv_release(fs_info, trans-\u003eblock_rsv, bytes, NULL);\n\nif we\u0027re able to skip reserving space.\n\nThe problem here is that trans-\u003eblock_rsv points at the temporary block\nrsv for the subvolume create, which has qgroup reservations in the block\nrsv.\n\nThis is a problem because btrfs_block_rsv_release() will do the\nfollowing:\n\n if (block_rsv-\u003eqgroup_rsv_reserved \u003e= block_rsv-\u003eqgroup_rsv_size) {\n\t qgroup_to_release = block_rsv-\u003eqgroup_rsv_reserved -\n\t\t block_rsv-\u003eqgroup_rsv_size;\n\t block_rsv-\u003eqgroup_rsv_reserved = block_rsv-\u003eqgroup_rsv_size;\n }\n\nThe temporary block rsv just has -\u003eqgroup_rsv_reserved set,\n-\u003eqgroup_rsv_size == 0. The optimization in\nbtrfs_insert_delayed_dir_index() sets -\u003eqgroup_rsv_reserved = 0. Then\nlater on when we call btrfs_subvolume_release_metadata() which has\n\n btrfs_block_rsv_release(fs_info, rsv, (u64)-1, \u0026qgroup_to_release);\n btrfs_qgroup_convert_reserved_meta(root, qgroup_to_release);\n\nqgroup_to_release is set to 0, and we do not convert the reserved\nmetadata space.\n\nThe problem here is that the block rsv code has been unconditionally\nmessing with -\u003eqgroup_rsv_reserved, because the main place this is used\nis delalloc, and any time we call btrfs_block_rsv_release() we do it\nwith qgroup_to_release set, and thus do the proper accounting.\n\nThe subvolume code is the only other code that uses the qgroup\nreservation stuff, but it\u0027s intermingled with the above optimization,\nand thus was getting its reservation freed out from underneath it and\nthus leaking the reserved space.\n\nThe solution is to simply not mess with the qgroup reservations if we\ndon\u0027t have qgroup_to_release set. This works with the existing code as\nanything that messes with the delalloc reservations always have\nqgroup_to_release set. This fixes the leak that Boris was observing."
}
],
"providerMetadata": {
"dateUpdated": "2026-05-11T19:56:36.669Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/1e05bf5e80bb1161b7294c9ce5292b26232ab853"
},
{
"url": "https://git.kernel.org/stable/c/148b16cd30b202999ec5b534e3e5d8ab4b766f21"
},
{
"url": "https://git.kernel.org/stable/c/f264be24146bee2d652010a18ae2517df5856261"
},
{
"url": "https://git.kernel.org/stable/c/15e877e5923ec6d6caa5e447dcc4b79a8ff7cc53"
},
{
"url": "https://git.kernel.org/stable/c/04ff6bd0317735791ef3e443c7c89f3c0dda548d"
},
{
"url": "https://git.kernel.org/stable/c/478bd15f46b6e3aae78aac4f3788697f1546eea6"
},
{
"url": "https://git.kernel.org/stable/c/d246331b78cbef86237f9c22389205bc9b4e1cc1"
}
],
"title": "btrfs: don\u0027t free qgroup space unless specified",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2023-54158",
"datePublished": "2025-12-24T13:07:07.438Z",
"dateReserved": "2025-12-24T13:02:52.530Z",
"dateUpdated": "2026-05-11T19:56:36.669Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-72040 (GCVE-0-2026-72040)
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:
ipmi: fix refcount leak in i_ipmi_request()
When a caller provides a `supplied_recv` message to i_ipmi_request(),
the function increments the user's `nr_msgs` reference count. If an
error occurs later, the out_err cleanup path only frees the recv_msg
if the function allocated it itself (i.e., !supplied_recv). In the
supplied_recv case the cleanup is skipped, leaving the reference count
elevated. The caller ipmi_request_supply_msgs() does not release the
supplied_recv on error, so the reference is permanently leaked.
Fix this by explicitly reverting the reference count operations when a
supplied recv_msg with a valid user pointer is present in the error
path: decrement nr_msgs and drop the user's kref.
References
| URL | Tags | |||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: f63723ca7d7623f9dae1990973cd158671f03c56 Version: 348121b29594d42d1635648fd3ed31dfa25351d5 Version: 53d6e403affbf6df2c859a0ea00ccfc1e72090ca Version: b52da4054ee0bf9ecb44996f2c83236ff50b3812 Version: b52da4054ee0bf9ecb44996f2c83236ff50b3812 Version: b52da4054ee0bf9ecb44996f2c83236ff50b3812 Version: 0ed73be9a2547ffb9b5c1d879ad9bfab73d920b5 Version: 6.1.157 ≤ Version: 6.6.113 ≤ Version: 6.12.54 ≤ Version: 6.17.4 ≤ |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/char/ipmi/ipmi_msghandler.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "122ca6b2af714e114c9b872a48372ace31a9ab1f",
"status": "affected",
"version": "f63723ca7d7623f9dae1990973cd158671f03c56",
"versionType": "git"
},
{
"lessThan": "9409e18ffe7378d202efe1cf69989df9f67b0369",
"status": "affected",
"version": "348121b29594d42d1635648fd3ed31dfa25351d5",
"versionType": "git"
},
{
"lessThan": "e2a3b77df6aef031455dd83ea8ed4344b7dca1f9",
"status": "affected",
"version": "53d6e403affbf6df2c859a0ea00ccfc1e72090ca",
"versionType": "git"
},
{
"lessThan": "f5c5065963024390ddad51bd455d1adc710de575",
"status": "affected",
"version": "b52da4054ee0bf9ecb44996f2c83236ff50b3812",
"versionType": "git"
},
{
"lessThan": "0fd23994ec8c5436d9f0b50848deb87ed933e6b3",
"status": "affected",
"version": "b52da4054ee0bf9ecb44996f2c83236ff50b3812",
"versionType": "git"
},
{
"lessThan": "a3f3859cecacb64f18fd446271ece9a3b3f2d4de",
"status": "affected",
"version": "b52da4054ee0bf9ecb44996f2c83236ff50b3812",
"versionType": "git"
},
{
"status": "affected",
"version": "0ed73be9a2547ffb9b5c1d879ad9bfab73d920b5",
"versionType": "git"
},
{
"lessThan": "6.1.184",
"status": "affected",
"version": "6.1.157",
"versionType": "semver"
},
{
"lessThan": "6.6.148",
"status": "affected",
"version": "6.6.113",
"versionType": "semver"
},
{
"lessThan": "6.12.101",
"status": "affected",
"version": "6.12.54",
"versionType": "semver"
},
{
"lessThan": "6.18",
"status": "affected",
"version": "6.17.4",
"versionType": "semver"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/char/ipmi/ipmi_msghandler.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.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": "6.1.157",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.148",
"versionStartIncluding": "6.6.113",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.101",
"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\nipmi: fix refcount leak in i_ipmi_request()\n\nWhen a caller provides a `supplied_recv` message to i_ipmi_request(),\nthe function increments the user\u0027s `nr_msgs` reference count. If an\nerror occurs later, the out_err cleanup path only frees the recv_msg\nif the function allocated it itself (i.e., !supplied_recv). In the\nsupplied_recv case the cleanup is skipped, leaving the reference count\nelevated. The caller ipmi_request_supply_msgs() does not release the\nsupplied_recv on error, so the reference is permanently leaked.\n\nFix this by explicitly reverting the reference count operations when a\nsupplied recv_msg with a valid user pointer is present in the error\npath: decrement nr_msgs and drop the user\u0027s kref."
}
],
"providerMetadata": {
"dateUpdated": "2026-08-23T12:46:30.954Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/122ca6b2af714e114c9b872a48372ace31a9ab1f"
},
{
"url": "https://git.kernel.org/stable/c/9409e18ffe7378d202efe1cf69989df9f67b0369"
},
{
"url": "https://git.kernel.org/stable/c/e2a3b77df6aef031455dd83ea8ed4344b7dca1f9"
},
{
"url": "https://git.kernel.org/stable/c/f5c5065963024390ddad51bd455d1adc710de575"
},
{
"url": "https://git.kernel.org/stable/c/0fd23994ec8c5436d9f0b50848deb87ed933e6b3"
},
{
"url": "https://git.kernel.org/stable/c/a3f3859cecacb64f18fd446271ece9a3b3f2d4de"
}
],
"title": "ipmi: fix refcount leak in i_ipmi_request()",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-72040",
"datePublished": "2026-08-15T05:51:59.975Z",
"dateReserved": "2026-08-09T03:40:39.901Z",
"dateUpdated": "2026-08-23T12:46:30.954Z",
"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-2025-71183 (GCVE-0-2025-71183)
Vulnerability from cvelistv5
Published
2026-01-31 11:38
Modified
2026-10-19 18:15
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
btrfs: always detect conflicting inodes when logging inode refs
After rename exchanging (either with the rename exchange operation or
regular renames in multiple non-atomic steps) two inodes and at least
one of them is a directory, we can end up with a log tree that contains
only of the inodes and after a power failure that can result in an attempt
to delete the other inode when it should not because it was not deleted
before the power failure. In some case that delete attempt fails when
the target inode is a directory that contains a subvolume inside it, since
the log replay code is not prepared to deal with directory entries that
point to root items (only inode items).
1) We have directories "dir1" (inode A) and "dir2" (inode B) under the
same parent directory;
2) We have a file (inode C) under directory "dir1" (inode A);
3) We have a subvolume inside directory "dir2" (inode B);
4) All these inodes were persisted in a past transaction and we are
currently at transaction N;
5) We rename the file (inode C), so at btrfs_log_new_name() we update
inode C's last_unlink_trans to N;
6) We get a rename exchange for "dir1" (inode A) and "dir2" (inode B),
so after the exchange "dir1" is inode B and "dir2" is inode A.
During the rename exchange we call btrfs_log_new_name() for inodes
A and B, but because they are directories, we don't update their
last_unlink_trans to N;
7) An fsync against the file (inode C) is done, and because its inode
has a last_unlink_trans with a value of N we log its parent directory
(inode A) (through btrfs_log_all_parents(), called from
btrfs_log_inode_parent()).
8) So we end up with inode B not logged, which now has the old name
of inode A. At copy_inode_items_to_log(), when logging inode A, we
did not check if we had any conflicting inode to log because inode
A has a generation lower than the current transaction (created in
a past transaction);
9) After a power failure, when replaying the log tree, since we find that
inode A has a new name that conflicts with the name of inode B in the
fs tree, we attempt to delete inode B... this is wrong since that
directory was never deleted before the power failure, and because there
is a subvolume inside that directory, attempting to delete it will fail
since replay_dir_deletes() and btrfs_unlink_inode() are not prepared
to deal with dir items that point to roots instead of inodes.
When that happens the mount fails and we get a stack trace like the
following:
[87.2314] BTRFS info (device dm-0): start tree-log replay
[87.2318] BTRFS critical (device dm-0): failed to delete reference to subvol, root 5 inode 256 parent 259
[87.2332] ------------[ cut here ]------------
[87.2338] BTRFS: Transaction aborted (error -2)
[87.2346] WARNING: CPU: 1 PID: 638968 at fs/btrfs/inode.c:4345 __btrfs_unlink_inode+0x416/0x440 [btrfs]
[87.2368] Modules linked in: btrfs loop dm_thin_pool (...)
[87.2470] CPU: 1 UID: 0 PID: 638968 Comm: mount Tainted: G W 6.18.0-rc7-btrfs-next-218+ #2 PREEMPT(full)
[87.2489] Tainted: [W]=WARN
[87.2494] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.16.2-0-gea1b7a073390-prebuilt.qemu.org 04/01/2014
[87.2514] RIP: 0010:__btrfs_unlink_inode+0x416/0x440 [btrfs]
[87.2538] Code: c0 89 04 24 (...)
[87.2568] RSP: 0018:ffffc0e741f4b9b8 EFLAGS: 00010286
[87.2574] RAX: 0000000000000000 RBX: ffff9d3ec8a6cf60 RCX: 0000000000000000
[87.2582] RDX: 0000000000000002 RSI: ffffffff84ab45a1 RDI: 00000000ffffffff
[87.2591] RBP: ffff9d3ec8a6ef20 R08: 0000000000000000 R09: ffffc0e741f4b840
[87.2599] R10: ffff9d45dc1fffa8 R11: 0000000000000003 R12: ffff9d3ee26d77e0
[87.2608] R13: ffffc0e741f4ba98 R14: ffff9d4458040800 R15: ffff9d44b6b7ca10
[87.2618] FS: 00007f7b9603a840(0000) GS:ffff9d4658982000(0000) knlGS:0000000000000000
[87.
---truncated---
References
| URL | Tags | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 56f23fdbb600e6087db7b009775b95ce07cc3195 Version: 56f23fdbb600e6087db7b009775b95ce07cc3195 Version: 56f23fdbb600e6087db7b009775b95ce07cc3195 Version: 56f23fdbb600e6087db7b009775b95ce07cc3195 Version: 56f23fdbb600e6087db7b009775b95ce07cc3195 Version: 048605483fbdd1e77ead32a7cd7b95cc17eaaf0e Version: 033ad030df0ea932a21499582fea59e1df95769b Version: 1653a3b0e9436c10eb307c318776cf91fe18ff08 Version: ff440e9185e96cbb94481fc8b6192b944dcfc061 Version: 3.18.32 ≤ Version: 4.1.23 ≤ Version: 4.4.8 ≤ Version: 4.5.2 ≤ |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2025-71183",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "yes"
},
{
"Technical Impact": "partial"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T15:06:04.374454Z",
"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-19T18:15:16.685Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"fs/btrfs/tree-log.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "c7f0207db68d5a1b4af23acbef1a8e8ddc431ebb",
"status": "affected",
"version": "56f23fdbb600e6087db7b009775b95ce07cc3195",
"versionType": "git"
},
{
"lessThan": "a63998cd6687c14b160dccb0bbcf281b2eb0dab3",
"status": "affected",
"version": "56f23fdbb600e6087db7b009775b95ce07cc3195",
"versionType": "git"
},
{
"lessThan": "0c2413c69129f6ce60157f7b53d9ba880260400b",
"status": "affected",
"version": "56f23fdbb600e6087db7b009775b95ce07cc3195",
"versionType": "git"
},
{
"lessThan": "d52af58dd463821c5c516aebb031a58934f696ea",
"status": "affected",
"version": "56f23fdbb600e6087db7b009775b95ce07cc3195",
"versionType": "git"
},
{
"lessThan": "7ba0b6461bc4edb3005ea6e00cdae189bcf908a5",
"status": "affected",
"version": "56f23fdbb600e6087db7b009775b95ce07cc3195",
"versionType": "git"
},
{
"status": "affected",
"version": "048605483fbdd1e77ead32a7cd7b95cc17eaaf0e",
"versionType": "git"
},
{
"status": "affected",
"version": "033ad030df0ea932a21499582fea59e1df95769b",
"versionType": "git"
},
{
"status": "affected",
"version": "1653a3b0e9436c10eb307c318776cf91fe18ff08",
"versionType": "git"
},
{
"status": "affected",
"version": "ff440e9185e96cbb94481fc8b6192b944dcfc061",
"versionType": "git"
},
{
"lessThan": "3.19",
"status": "affected",
"version": "3.18.32",
"versionType": "semver"
},
{
"lessThan": "4.2",
"status": "affected",
"version": "4.1.23",
"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": [
"fs/btrfs/tree-log.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.1.*",
"status": "unaffected",
"version": "6.1.161",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.121",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.66",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.6",
"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.161",
"versionStartIncluding": "4.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.121",
"versionStartIncluding": "4.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.66",
"versionStartIncluding": "4.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.6",
"versionStartIncluding": "4.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.19",
"versionStartIncluding": "4.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "3.18.32",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "4.1.23",
"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\nbtrfs: always detect conflicting inodes when logging inode refs\n\nAfter rename exchanging (either with the rename exchange operation or\nregular renames in multiple non-atomic steps) two inodes and at least\none of them is a directory, we can end up with a log tree that contains\nonly of the inodes and after a power failure that can result in an attempt\nto delete the other inode when it should not because it was not deleted\nbefore the power failure. In some case that delete attempt fails when\nthe target inode is a directory that contains a subvolume inside it, since\nthe log replay code is not prepared to deal with directory entries that\npoint to root items (only inode items).\n\n1) We have directories \"dir1\" (inode A) and \"dir2\" (inode B) under the\n same parent directory;\n\n2) We have a file (inode C) under directory \"dir1\" (inode A);\n\n3) We have a subvolume inside directory \"dir2\" (inode B);\n\n4) All these inodes were persisted in a past transaction and we are\n currently at transaction N;\n\n5) We rename the file (inode C), so at btrfs_log_new_name() we update\n inode C\u0027s last_unlink_trans to N;\n\n6) We get a rename exchange for \"dir1\" (inode A) and \"dir2\" (inode B),\n so after the exchange \"dir1\" is inode B and \"dir2\" is inode A.\n During the rename exchange we call btrfs_log_new_name() for inodes\n A and B, but because they are directories, we don\u0027t update their\n last_unlink_trans to N;\n\n7) An fsync against the file (inode C) is done, and because its inode\n has a last_unlink_trans with a value of N we log its parent directory\n (inode A) (through btrfs_log_all_parents(), called from\n btrfs_log_inode_parent()).\n\n8) So we end up with inode B not logged, which now has the old name\n of inode A. At copy_inode_items_to_log(), when logging inode A, we\n did not check if we had any conflicting inode to log because inode\n A has a generation lower than the current transaction (created in\n a past transaction);\n\n9) After a power failure, when replaying the log tree, since we find that\n inode A has a new name that conflicts with the name of inode B in the\n fs tree, we attempt to delete inode B... this is wrong since that\n directory was never deleted before the power failure, and because there\n is a subvolume inside that directory, attempting to delete it will fail\n since replay_dir_deletes() and btrfs_unlink_inode() are not prepared\n to deal with dir items that point to roots instead of inodes.\n\n When that happens the mount fails and we get a stack trace like the\n following:\n\n [87.2314] BTRFS info (device dm-0): start tree-log replay\n [87.2318] BTRFS critical (device dm-0): failed to delete reference to subvol, root 5 inode 256 parent 259\n [87.2332] ------------[ cut here ]------------\n [87.2338] BTRFS: Transaction aborted (error -2)\n [87.2346] WARNING: CPU: 1 PID: 638968 at fs/btrfs/inode.c:4345 __btrfs_unlink_inode+0x416/0x440 [btrfs]\n [87.2368] Modules linked in: btrfs loop dm_thin_pool (...)\n [87.2470] CPU: 1 UID: 0 PID: 638968 Comm: mount Tainted: G W 6.18.0-rc7-btrfs-next-218+ #2 PREEMPT(full)\n [87.2489] Tainted: [W]=WARN\n [87.2494] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.16.2-0-gea1b7a073390-prebuilt.qemu.org 04/01/2014\n [87.2514] RIP: 0010:__btrfs_unlink_inode+0x416/0x440 [btrfs]\n [87.2538] Code: c0 89 04 24 (...)\n [87.2568] RSP: 0018:ffffc0e741f4b9b8 EFLAGS: 00010286\n [87.2574] RAX: 0000000000000000 RBX: ffff9d3ec8a6cf60 RCX: 0000000000000000\n [87.2582] RDX: 0000000000000002 RSI: ffffffff84ab45a1 RDI: 00000000ffffffff\n [87.2591] RBP: ffff9d3ec8a6ef20 R08: 0000000000000000 R09: ffffc0e741f4b840\n [87.2599] R10: ffff9d45dc1fffa8 R11: 0000000000000003 R12: ffff9d3ee26d77e0\n [87.2608] R13: ffffc0e741f4ba98 R14: ffff9d4458040800 R15: ffff9d44b6b7ca10\n [87.2618] FS: 00007f7b9603a840(0000) GS:ffff9d4658982000(0000) knlGS:0000000000000000\n [87.\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:N/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - A remote attacker can reach the Btrfs rename and fsync paths through a Btrfs-backed writable ksmbd share using SMB2 RENAME and FLUSH requests. Multiple ordinary renames can perform the required exchange without RENAME_EXCHANGE support.\nAC:L - The attacker controls the complete rename and fsync sequence, with no race, heap layout, or probabilistic memory condition to overcome. The state can be recreated repeatedly so it remains pending when an unclean shutdown occurs.\nPR:N - ksmbd supports unauthenticated guest sessions, making the sequence reachable without credentials on a guest-writable share. No Linux capability is checked after the guest has ordinary delete and write access to the shared directory.\nUI:N - No victim action is required while the attacker constructs and persists the inconsistent log. Log replay normally occurs automatically during the next boot or mount after an unclean shutdown.\nS:U - The vulnerable logging and recovery operations affect resources managed by the same host kernel and Btrfs filesystem. No virtualization, IOMMU, or other security-authority boundary is crossed.\nC:N - The flaw neither reads attacker-selected memory nor discloses filesystem or kernel data. The affected paths contain no use-after-free, out-of-bounds access, or other memory-corruption primitive.\nI:H - Replay can incorrectly unlink a legitimate conflicting directory and recursively orphan its ordinary contents, allowing severe filesystem data loss. The attacker controls the conflicting names and inode arrangement used by replay.\nA:H - If the wrongly removed directory contains a subvolume, replay aborts its transaction and the entire Btrfs filesystem fails to mount. This makes all data and services dependent on that filesystem unavailable."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-05T12:12:28.400Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/c7f0207db68d5a1b4af23acbef1a8e8ddc431ebb"
},
{
"url": "https://git.kernel.org/stable/c/a63998cd6687c14b160dccb0bbcf281b2eb0dab3"
},
{
"url": "https://git.kernel.org/stable/c/0c2413c69129f6ce60157f7b53d9ba880260400b"
},
{
"url": "https://git.kernel.org/stable/c/d52af58dd463821c5c516aebb031a58934f696ea"
},
{
"url": "https://git.kernel.org/stable/c/7ba0b6461bc4edb3005ea6e00cdae189bcf908a5"
}
],
"title": "btrfs: always detect conflicting inodes when logging inode refs",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2025-71183",
"datePublished": "2026-01-31T11:38:56.067Z",
"dateReserved": "2026-01-31T11:36:51.186Z",
"dateUpdated": "2026-10-19T18:15:16.685Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-68233 (GCVE-0-2026-68233)
Vulnerability from cvelistv5
Published
2026-08-10 12:00
Modified
2026-10-30 12:28
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
drm/vc4: Shut down BO cache timer before teardown
The BO cache timer callback schedules time_work, and time_work can rearm
the timer through vc4_bo_cache_free_old().
vc4_bo_cache_destroy() deletes the timer and then cancels the work, which
does not break that cycle: the work being cancelled can rearm the timer,
and the timer then queues work again after teardown.
Use timer_shutdown_sync() instead, so the timer cannot be rearmed and the
cycle ends with cancel_work_sync().
References
| URL | Tags | |||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: c826a6e1064419f78855463cf29ce9e8b9d25bf4 Version: c826a6e1064419f78855463cf29ce9e8b9d25bf4 Version: c826a6e1064419f78855463cf29ce9e8b9d25bf4 Version: c826a6e1064419f78855463cf29ce9e8b9d25bf4 Version: c826a6e1064419f78855463cf29ce9e8b9d25bf4 Version: c826a6e1064419f78855463cf29ce9e8b9d25bf4 |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/gpu/drm/vc4/vc4_bo.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "948cd4876dafbfab826384516df19fe813d9f1d1",
"status": "affected",
"version": "c826a6e1064419f78855463cf29ce9e8b9d25bf4",
"versionType": "git"
},
{
"lessThan": "cf55c6f1b62a89bf365c48bf731ccf69340e3a16",
"status": "affected",
"version": "c826a6e1064419f78855463cf29ce9e8b9d25bf4",
"versionType": "git"
},
{
"lessThan": "e9264ee59bd94970b80b7548f693bccf0d4628da",
"status": "affected",
"version": "c826a6e1064419f78855463cf29ce9e8b9d25bf4",
"versionType": "git"
},
{
"lessThan": "a38f2724eb93a78ba250b01e0caf3468df4d3956",
"status": "affected",
"version": "c826a6e1064419f78855463cf29ce9e8b9d25bf4",
"versionType": "git"
},
{
"lessThan": "bac4c1a9af690b8635c6924872075c41d8763ed9",
"status": "affected",
"version": "c826a6e1064419f78855463cf29ce9e8b9d25bf4",
"versionType": "git"
},
{
"lessThan": "6273dd3ffb54ec581855b82ae77331b66028249c",
"status": "affected",
"version": "c826a6e1064419f78855463cf29ce9e8b9d25bf4",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/gpu/drm/vc4/vc4_bo.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.191",
"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.1.191",
"versionStartIncluding": "4.5",
"vulnerable": true
},
{
"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.6",
"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\ndrm/vc4: Shut down BO cache timer before teardown\n\nThe BO cache timer callback schedules time_work, and time_work can rearm\nthe timer through vc4_bo_cache_free_old().\n\nvc4_bo_cache_destroy() deletes the timer and then cancels the work, which\ndoes not break that cycle: the work being cancelled can rearm the timer,\nand the timer then queues work again after teardown.\n\nUse timer_shutdown_sync() instead, so the timer cannot be rearmed and the\ncycle ends with cancel_work_sync()."
}
],
"providerMetadata": {
"dateUpdated": "2026-10-30T12:28:09.594Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/948cd4876dafbfab826384516df19fe813d9f1d1"
},
{
"url": "https://git.kernel.org/stable/c/cf55c6f1b62a89bf365c48bf731ccf69340e3a16"
},
{
"url": "https://git.kernel.org/stable/c/e9264ee59bd94970b80b7548f693bccf0d4628da"
},
{
"url": "https://git.kernel.org/stable/c/a38f2724eb93a78ba250b01e0caf3468df4d3956"
},
{
"url": "https://git.kernel.org/stable/c/bac4c1a9af690b8635c6924872075c41d8763ed9"
},
{
"url": "https://git.kernel.org/stable/c/6273dd3ffb54ec581855b82ae77331b66028249c"
}
],
"title": "drm/vc4: Shut down BO cache timer before teardown",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-68233",
"datePublished": "2026-08-10T12:00:57.580Z",
"dateReserved": "2026-07-30T09:28:09.376Z",
"dateUpdated": "2026-10-30T12:28:09.594Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-74544 (GCVE-0-2026-74544)
Vulnerability from cvelistv5
Published
2026-08-15 12:27
Modified
2026-10-30 12:30
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
net/sched: cls_u32: validate offshift to prevent shift-out-of-bounds
u32_change() copies the user-provided tc_u32_sel.offshift (unsigned char,
0-255) into the kernel knode object without bounds validation. When a
packet later hits u32_classify() with TC_U32_VAROFFSET set, it evaluates
`ntohs(offmask & *data) >> offshift` where the left operand is a 16-bit
value promoted to a 32-bit int. Any offshift >= 32 is undefined behavior
per C11 6.5.7p3, triggerable by an unprivileged user via user/network
namespaces.
UBSAN: shift-out-of-bounds in net/sched/cls_u32.c:236:43
shift exponent 32 is too large for 32-bit type int
Fix this by rejecting offshift >= 16 during filter creation in
u32_change().
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-74544",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T18:59:49.230429Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T19:05:54.903Z",
"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": "7fd5b2287e5cf33e114fb7f0cef781a546039757",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "724c8edbacf1259988829cb9967f751222121d8a",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "006a4598da9a6b02e0ddc3ca5042b97224774364",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "9990cac513e8b191de2ee589051ea7ebf3cee940",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "313cb9ffc4101a885d791facf4b5ea3d5e06144d",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "aef96eead2860cbfa371e4471d4f04412213b958",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"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": "2.6.12"
},
{
"lessThan": "2.6.12",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.191",
"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.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.191",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"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.57",
"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\nnet/sched: cls_u32: validate offshift to prevent shift-out-of-bounds\n\nu32_change() copies the user-provided tc_u32_sel.offshift (unsigned char,\n0-255) into the kernel knode object without bounds validation. When a\npacket later hits u32_classify() with TC_U32_VAROFFSET set, it evaluates\n`ntohs(offmask \u0026 *data) \u003e\u003e offshift` where the left operand is a 16-bit\nvalue promoted to a 32-bit int. Any offshift \u003e= 32 is undefined behavior\nper C11 6.5.7p3, triggerable by an unprivileged user via user/network\nnamespaces.\n\nUBSAN: shift-out-of-bounds in net/sched/cls_u32.c:236:43\nshift exponent 32 is too large for 32-bit type int\n\nFix this by rejecting offshift \u003e= 16 during filter creation in\nu32_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 configured through RTM_NEWTFILTER rtnetlink (tc filter add) in u32_change(); per kernel CNA guidance, tc/qdisc/netlink classifier setup is Local even though subsequent packets invoke u32_classify() on ingress/egress paths.\nAC:L - The attacker fully controls offshift (32-255), TC_U32_VAROFFSET selector flags, and matching packet bytes when installing the filter and sending traffic through the attached qdisc; no race or external victim state is required.\nPR:L - Creating u32 filters requires CAP_NET_ADMIN, which an unprivileged local user obtains in a user/network namespace via unshare -Urn; rtnetlink enforces netlink_net_capable() against that namespace\u0027s user_ns, not only init-root.\nUI:N - The attacker installs the malicious u32 filter and injects triggering packets themselves within their namespace; no separate victim action (opening files, mounting media, clicking links) is needed.\nS:U - Corrupted classifier offset arithmetic and any resulting kernel crash stay within the host kernel\u0027s security authority; this is standard local kernel compromise, not a VM escape, IOMMU bypass, or sandbox boundary crossing.\nC:H - Undefined-behavior right-shift (offshift\u003e=32) on packet-derived values corrupts variable offset math in u32_classify(), driving attacker-influenced skb_header_pointer reads at unintended offsets; per CNA guidance, exploitable kernel memory-unsafe operations warrant High confidentiality impact.\nI:H - Invalid shift results corrupt off2 and unsigned off accumulation in the classifier hot path, derailing cls_u32 control flow; C11 undefined behavior in kernel packet classification is exploitable for integrity compromise and potential code execution per CNA memory-corruption guidance.\nA:H - Hitting u32_classify() with offshift\u003e=32 provokes documented UBSAN shift-out-of-bounds at cls_u32.c:236; undefined shifts can also trigger kernel oops/panic during packet classification, satisfying CNA guidance that kernel crashes are High availability impact."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-30T12:30:09.940Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/7fd5b2287e5cf33e114fb7f0cef781a546039757"
},
{
"url": "https://git.kernel.org/stable/c/724c8edbacf1259988829cb9967f751222121d8a"
},
{
"url": "https://git.kernel.org/stable/c/006a4598da9a6b02e0ddc3ca5042b97224774364"
},
{
"url": "https://git.kernel.org/stable/c/9990cac513e8b191de2ee589051ea7ebf3cee940"
},
{
"url": "https://git.kernel.org/stable/c/313cb9ffc4101a885d791facf4b5ea3d5e06144d"
},
{
"url": "https://git.kernel.org/stable/c/aef96eead2860cbfa371e4471d4f04412213b958"
}
],
"title": "net/sched: cls_u32: validate offshift to prevent shift-out-of-bounds",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-74544",
"datePublished": "2026-08-15T12:27:53.941Z",
"dateReserved": "2026-08-15T05:44:03.914Z",
"dateUpdated": "2026-10-30T12:30:09.940Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-93287 (GCVE-0-2026-93287)
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:
i2c: smbus: reject oversized block transfers in the common path
The SMBus block transfer length data->block[0] is validated in
i2c_smbus_xfer_emulated() but that check runs too late for tracepoints
and is skipped entirely when the adapter provides a native smbus_xfer
implementation. This allows user-controlled oversized block lengths to
reach tracepoint memcpy calls and driver callbacks unchecked.
Add an early validation in __i2c_smbus_xfer() that rejects block
transfers whose caller-supplied length is zero or exceeds
I2C_SMBUS_BLOCK_MAX before any tracepoint fires or driver callback
runs. data->block[0] is filled in by the device on SMBus block reads,
so the check is scoped to operations where the length is actually
supplied by the caller. This is consistent with the existing -EINVAL
convention in the emulated path and protects all downstream consumers
at once: the smbus_write tracepoint, all native smbus_xfer driver
implementations, and the emulated path.
Two distinct bugs are fixed by this change:
Bug 1: smbus_write tracepoint OOB (include/trace/events/smbus.h)
trace_smbus_write() fires before any validation and copies
data->block[0]+1 bytes into a 34-byte event buffer. With
block[0]=0xfe the tracepoint copies 255 bytes, overflowing by 221.
BUG: KASAN: stack-out-of-bounds in trace_event_raw_event_smbus_write+0x27c/0x530
Read of size 255 at addr ffff88800d98fcf8 by task poc_smbus/91
Call Trace:
<TASK>
__asan_memcpy+0x23/0x80
trace_event_raw_event_smbus_write+0x27c/0x530
__i2c_smbus_xfer+0x43a/0xa40
i2c_smbus_xfer+0x19e/0x340
i2cdev_ioctl_smbus+0x38f/0x7f0
i2cdev_ioctl+0x35e/0x680
__x64_sys_ioctl+0x147/0x1e0
do_syscall_64+0xcf/0x15a0
entry_SYSCALL_64_after_hwframe+0x76/0x7e
</TASK>
Bug 2: i2c-stub I2C_SMBUS_I2C_BLOCK_DATA OOB (drivers/i2c/i2c-stub.c)
stub_xfer() implements .smbus_xfer directly and only clamps
block[0] against 256-command, not I2C_SMBUS_BLOCK_MAX. With
block[0]=0xff and command=0 the loop accesses block[1+i] for
i up to 254, far past the 34-byte union.
UBSAN: array-index-out-of-bounds in drivers/i2c/i2c-stub.c:223:44
index 34 is out of range for type '__u8 [34]'
Call Trace:
<TASK>
__ubsan_handle_out_of_bounds+0xd7/0x120
stub_xfer+0x1971/0x198f [i2c_stub]
__i2c_smbus_xfer+0x306/0xa40
i2c_smbus_xfer+0x19e/0x340
i2cdev_ioctl_smbus+0x38f/0x7f0
i2cdev_ioctl+0x35e/0x680
__x64_sys_ioctl+0x147/0x1e0
do_syscall_64+0xcf/0x15a0
entry_SYSCALL_64_after_hwframe+0x76/0x7e
</TASK>
Both traces reproduced on v7.0-rc6+i2c/for-current with KASAN+UBSAN.
References
| URL | Tags | ||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 4710317891e4824ce1510a6b5066abbd3e917750 Version: 4710317891e4824ce1510a6b5066abbd3e917750 Version: 4710317891e4824ce1510a6b5066abbd3e917750 Version: 4710317891e4824ce1510a6b5066abbd3e917750 Version: 4710317891e4824ce1510a6b5066abbd3e917750 Version: 4710317891e4824ce1510a6b5066abbd3e917750 Version: 4710317891e4824ce1510a6b5066abbd3e917750 |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/i2c/i2c-core-smbus.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "856dffcc097b3d8ed45a643ebda07cb92968cb33",
"status": "affected",
"version": "4710317891e4824ce1510a6b5066abbd3e917750",
"versionType": "git"
},
{
"lessThan": "356875e33f2c6d2061a02c9dec1a1e639d265a55",
"status": "affected",
"version": "4710317891e4824ce1510a6b5066abbd3e917750",
"versionType": "git"
},
{
"lessThan": "72ca5e0b8b7a62615758f8871c34d61616c2dc8b",
"status": "affected",
"version": "4710317891e4824ce1510a6b5066abbd3e917750",
"versionType": "git"
},
{
"lessThan": "df077253f6405d67ad087538e495ef32a05717b7",
"status": "affected",
"version": "4710317891e4824ce1510a6b5066abbd3e917750",
"versionType": "git"
},
{
"lessThan": "f09edffba97d37b1fdff5f818a9a45f8a98ac171",
"status": "affected",
"version": "4710317891e4824ce1510a6b5066abbd3e917750",
"versionType": "git"
},
{
"lessThan": "c4b478bc50b7ca9865e237909941253a0f7111a2",
"status": "affected",
"version": "4710317891e4824ce1510a6b5066abbd3e917750",
"versionType": "git"
},
{
"lessThan": "3051cd060fa496df42954291fa2306ed2eab4ecc",
"status": "affected",
"version": "4710317891e4824ce1510a6b5066abbd3e917750",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/i2c/i2c-core-smbus.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.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.1",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.271",
"versionStartIncluding": "2.6.33",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.222",
"versionStartIncluding": "2.6.33",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.189",
"versionStartIncluding": "2.6.33",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.158",
"versionStartIncluding": "2.6.33",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.111",
"versionStartIncluding": "2.6.33",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.53",
"versionStartIncluding": "2.6.33",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1",
"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\ni2c: smbus: reject oversized block transfers in the common path\n\nThe SMBus block transfer length data-\u003eblock[0] is validated in\ni2c_smbus_xfer_emulated() but that check runs too late for tracepoints\nand is skipped entirely when the adapter provides a native smbus_xfer\nimplementation. This allows user-controlled oversized block lengths to\nreach tracepoint memcpy calls and driver callbacks unchecked.\n\nAdd an early validation in __i2c_smbus_xfer() that rejects block\ntransfers whose caller-supplied length is zero or exceeds\nI2C_SMBUS_BLOCK_MAX before any tracepoint fires or driver callback\nruns. data-\u003eblock[0] is filled in by the device on SMBus block reads,\nso the check is scoped to operations where the length is actually\nsupplied by the caller. This is consistent with the existing -EINVAL\nconvention in the emulated path and protects all downstream consumers\nat once: the smbus_write tracepoint, all native smbus_xfer driver\nimplementations, and the emulated path.\n\nTwo distinct bugs are fixed by this change:\n\nBug 1: smbus_write tracepoint OOB (include/trace/events/smbus.h)\n trace_smbus_write() fires before any validation and copies\n data-\u003eblock[0]+1 bytes into a 34-byte event buffer. With\n block[0]=0xfe the tracepoint copies 255 bytes, overflowing by 221.\n\n BUG: KASAN: stack-out-of-bounds in trace_event_raw_event_smbus_write+0x27c/0x530\n Read of size 255 at addr ffff88800d98fcf8 by task poc_smbus/91\n Call Trace:\n \u003cTASK\u003e\n __asan_memcpy+0x23/0x80\n trace_event_raw_event_smbus_write+0x27c/0x530\n __i2c_smbus_xfer+0x43a/0xa40\n i2c_smbus_xfer+0x19e/0x340\n i2cdev_ioctl_smbus+0x38f/0x7f0\n i2cdev_ioctl+0x35e/0x680\n __x64_sys_ioctl+0x147/0x1e0\n do_syscall_64+0xcf/0x15a0\n entry_SYSCALL_64_after_hwframe+0x76/0x7e\n \u003c/TASK\u003e\n\nBug 2: i2c-stub I2C_SMBUS_I2C_BLOCK_DATA OOB (drivers/i2c/i2c-stub.c)\n stub_xfer() implements .smbus_xfer directly and only clamps\n block[0] against 256-command, not I2C_SMBUS_BLOCK_MAX. With\n block[0]=0xff and command=0 the loop accesses block[1+i] for\n i up to 254, far past the 34-byte union.\n\n UBSAN: array-index-out-of-bounds in drivers/i2c/i2c-stub.c:223:44\n index 34 is out of range for type \u0027__u8 [34]\u0027\n Call Trace:\n \u003cTASK\u003e\n __ubsan_handle_out_of_bounds+0xd7/0x120\n stub_xfer+0x1971/0x198f [i2c_stub]\n __i2c_smbus_xfer+0x306/0xa40\n i2c_smbus_xfer+0x19e/0x340\n i2cdev_ioctl_smbus+0x38f/0x7f0\n i2cdev_ioctl+0x35e/0x680\n __x64_sys_ioctl+0x147/0x1e0\n do_syscall_64+0xcf/0x15a0\n entry_SYSCALL_64_after_hwframe+0x76/0x7e\n \u003c/TASK\u003e\n\nBoth traces reproduced on v7.0-rc6+i2c/for-current with KASAN+UBSAN."
}
],
"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 data is data-\u003eblock[0] copied from the I2C_SMBUS ioctl in i2cdev_ioctl_smbus() (i2cdev_ioctl \u2192 i2cdev_ioctl_smbus \u2192 i2c_smbus_xfer \u2192 __i2c_smbus_xfer). That byte is supplied by the local process, not by a network protocol or a remote I2C slave.\nAC:L - A single I2C_SMBUS ioctl with attacker-chosen block[0] (e.g. 0xfe) is consumed in __i2c_smbus_xfer() before any length check, so trace_smbus_write() memcpy()s block[0]+1 bytes and native callbacks such as stub_xfer() index block[1+i] with that length. There is no race or uninfluenced hardware failure.\nPR:L - i2cdev_open() and i2cdev_ioctl() contain no capable() check; I2C_SMBUS is allowed to whoever can open /dev/i2c-N. That node is commonly 0660 group i2c (i2c-tools udev), so an unprivileged i2c-group user reaches i2cdev_ioctl_smbus() without root or a user-namespace capability.\nUI:N - The attacker opens /dev/i2c-N and issues the I2C_SMBUS ioctl with a crafted i2c_smbus_ioctl_data themselves; no separate victim action is required.\nS:U - Overflows land in the host kernel\u0027s i2cdev_ioctl_smbus() stack union and in the smbus_write trace-event buffer handled by that same kernel. This is ordinary local kernel memory corruption, not a VM, IOMMU, or sandbox-authority crossing.\nC:H - With block[0]=0xfe, trace_smbus_write() memcpy()s 255 bytes from the 34-byte union i2c_smbus_data temp on i2cdev_ioctl_smbus()\u0027s stack, disclosing 221 bytes of adjacent kernel stack. stub_xfer() I2C_SMBUS_I2C_BLOCK_DATA writes likewise read block[1+i] past that union.\nI:H - The same memcpy writes 255 bytes into smbus_write\u0027s 34-byte __entry-\u003ebuf, overflowing the ftrace event by 221 bytes. stub_xfer() I2C_SMBUS_I2C_BLOCK_DATA reads write past temp.block[33] on i2cdev_ioctl_smbus()\u0027s kernel stack, a stack overflow that can corrupt return state.\nA:H - The 221-byte out-of-bounds read/write in trace_event_raw_event_smbus_write() and the stub_xfer() store past union i2c_smbus_data.block[33] produce a kernel oops/panic, matching the KASAN and UBSAN reports cited in the fix."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-03T10:57:13.466Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/856dffcc097b3d8ed45a643ebda07cb92968cb33"
},
{
"url": "https://git.kernel.org/stable/c/356875e33f2c6d2061a02c9dec1a1e639d265a55"
},
{
"url": "https://git.kernel.org/stable/c/72ca5e0b8b7a62615758f8871c34d61616c2dc8b"
},
{
"url": "https://git.kernel.org/stable/c/df077253f6405d67ad087538e495ef32a05717b7"
},
{
"url": "https://git.kernel.org/stable/c/f09edffba97d37b1fdff5f818a9a45f8a98ac171"
},
{
"url": "https://git.kernel.org/stable/c/c4b478bc50b7ca9865e237909941253a0f7111a2"
},
{
"url": "https://git.kernel.org/stable/c/3051cd060fa496df42954291fa2306ed2eab4ecc"
}
],
"title": "i2c: smbus: reject oversized block transfers in the common path",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-93287",
"datePublished": "2026-09-24T16:02:11.296Z",
"dateReserved": "2026-09-17T16:02:15.099Z",
"dateUpdated": "2026-10-03T10:57:13.466Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-72212 (GCVE-0-2026-72212)
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:
mm/memory_hotplug: fix incorrect altmap passing in error path
In create_altmaps_and_memory_blocks(), when arch_add_memory() succeeds
with memmap_on_memory enabled, the vmemmap pages are allocated from
params.altmap. If create_memory_block_devices() subsequently fails, the
error path calls arch_remove_memory() with a NULL altmap instead of
params.altmap.
This is a bug that could lead to memory corruption. Since altmap is NULL,
vmemmap_free() falls back to freeing the vmemmap pages into the system
buddy allocator via free_pages() instead of the altmap.
arch_remove_memory() then immediately destroys the physical linear mapping
for this memory. This injects unowned pages into the buddy allocator,
causing machine checks or memory corruption if the system later attempts
to allocate and use those freed pages.
Fix this by passing params.altmap to arch_remove_memory() in the error
path.
References
| URL | Tags | |
|---|---|---|
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"mm/memory_hotplug.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "3833e6abdbbfb59ec8203a84a84206cb7ffb41ac",
"status": "affected",
"version": "6b8f0798b85aa529011570369db985a788f3003f",
"versionType": "git"
},
{
"lessThan": "722e6c54bde6391fb95f0357f555aca887c7b18c",
"status": "affected",
"version": "6b8f0798b85aa529011570369db985a788f3003f",
"versionType": "git"
},
{
"lessThan": "2f9e3ec17c3d2093c664c00a027588a446c39894",
"status": "affected",
"version": "6b8f0798b85aa529011570369db985a788f3003f",
"versionType": "git"
},
{
"lessThan": "2fac4afa0e2e68841334c78c1821e49f74fbc66a",
"status": "affected",
"version": "6b8f0798b85aa529011570369db985a788f3003f",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"mm/memory_hotplug.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.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.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.40",
"versionStartIncluding": "6.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.5",
"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\nmm/memory_hotplug: fix incorrect altmap passing in error path\n\nIn create_altmaps_and_memory_blocks(), when arch_add_memory() succeeds\nwith memmap_on_memory enabled, the vmemmap pages are allocated from\nparams.altmap. If create_memory_block_devices() subsequently fails, the\nerror path calls arch_remove_memory() with a NULL altmap instead of\nparams.altmap.\n\nThis is a bug that could lead to memory corruption. Since altmap is NULL,\nvmemmap_free() falls back to freeing the vmemmap pages into the system\nbuddy allocator via free_pages() instead of the altmap. \narch_remove_memory() then immediately destroys the physical linear mapping\nfor this memory. This injects unowned pages into the buddy allocator,\ncausing machine checks or memory corruption if the system later attempts\nto allocate and use those freed pages.\n\nFix this by passing params.altmap to arch_remove_memory() in the error\npath."
}
],
"providerMetadata": {
"dateUpdated": "2026-08-17T05:10:26.630Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/3833e6abdbbfb59ec8203a84a84206cb7ffb41ac"
},
{
"url": "https://git.kernel.org/stable/c/722e6c54bde6391fb95f0357f555aca887c7b18c"
},
{
"url": "https://git.kernel.org/stable/c/2f9e3ec17c3d2093c664c00a027588a446c39894"
},
{
"url": "https://git.kernel.org/stable/c/2fac4afa0e2e68841334c78c1821e49f74fbc66a"
}
],
"title": "mm/memory_hotplug: fix incorrect altmap passing in error path",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-72212",
"datePublished": "2026-08-15T05:54:07.077Z",
"dateReserved": "2026-08-09T03:40:39.912Z",
"dateUpdated": "2026-08-17T05:10:26.630Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-64058 (GCVE-0-2026-64058)
Vulnerability from cvelistv5
Published
2026-07-19 15:39
Modified
2026-09-14 11:58
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
netfs: Fix netfs_read_folio() to wait on writeback
Fix netfs_read_folio() to wait for an ongoing writeback to complete so that
it can trust the dirty flag and whatever is attached to folio->private
(folio->private may get cleaned up by the collector before it clears the
writeback flag).
References
| URL | Tags | |
|---|---|---|
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"fs/netfs/buffered_read.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "090a8aa1894b72f5b3fc18dee68d42ad45f4a2c6",
"status": "affected",
"version": "ee4cdf7ba857a894ad1650d6ab77669cbbfa329e",
"versionType": "git"
},
{
"lessThan": "f17b9121bb99f88188ec9be2db5da1d561f4c01b",
"status": "affected",
"version": "ee4cdf7ba857a894ad1650d6ab77669cbbfa329e",
"versionType": "git"
},
{
"lessThan": "b8271cccdd5e43cc8d738afb8b51f6ad05b1cb4b",
"status": "affected",
"version": "ee4cdf7ba857a894ad1650d6ab77669cbbfa329e",
"versionType": "git"
},
{
"lessThan": "ded0c6f1606061148c202825f7e53d711f9f84cf",
"status": "affected",
"version": "ee4cdf7ba857a894ad1650d6ab77669cbbfa329e",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"fs/netfs/buffered_read.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.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.110",
"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 netfs_read_folio() to wait on writeback\n\nFix netfs_read_folio() to wait for an ongoing writeback to complete so that\nit can trust the dirty flag and whatever is attached to folio-\u003eprivate\n(folio-\u003eprivate may get cleaned up by the collector before it clears the\nwriteback flag)."
}
],
"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 netfs client page-cache path (`netfs_read_folio()`), reached only through local VFS operations (read/mmap/page fault) on mounted network filesystems (CIFS, Ceph, AFS, 9p, NFS+fscache), not from remote packet handling.\nAC:L - An attacker can reliably trigger the race by concurrently performing streaming writes and reads on the same folio from threads they control, forcing writeback while reads hit the vulnerable dirty-folio path.\nPR:L - Exploitation requires only unprivileged access to read/write files on an already-mounted netfs-backed filesystem; no CAP_SYS_ADMIN, real root, or user-namespace capability is needed.\nUI:N - No victim interaction is required beyond the attacker (or any local process with file access) issuing the concurrent read/write operations that trigger the race.\nS:U - The vulnerability corrupts kernel heap memory during local filesystem I/O in the same kernel security domain; it does not inherently cross VM, container, or IOMMU boundaries.\nC:H - The race frees `struct netfs_folio` in `folio-\u003eprivate` before writeback completes, creating a use-after-free that can expose or leak kernel heap contents when `netfs_read_gaps()` dereferences stale metadata.\nI:H - UAF on the kmalloc\u0027d `netfs_folio` object can be leveraged for heap manipulation; corrupted `dirty_offset`/`dirty_len` values drive subsequent I/O vector setup and pagecache writes in `netfs_read_gaps()`.\nA:H - Winning the race causes kernel oops/panic via NULL dereference or use-after-free during `netfs_read_gaps()`, and a malicious local user can repeat the trigger to deny availability on shared servers with CIFS/NFS/Ceph mounts."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-09-14T11:58:36.477Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/090a8aa1894b72f5b3fc18dee68d42ad45f4a2c6"
},
{
"url": "https://git.kernel.org/stable/c/f17b9121bb99f88188ec9be2db5da1d561f4c01b"
},
{
"url": "https://git.kernel.org/stable/c/b8271cccdd5e43cc8d738afb8b51f6ad05b1cb4b"
},
{
"url": "https://git.kernel.org/stable/c/ded0c6f1606061148c202825f7e53d711f9f84cf"
}
],
"title": "netfs: Fix netfs_read_folio() to wait on writeback",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-64058",
"datePublished": "2026-07-19T15:39:38.978Z",
"dateReserved": "2026-07-19T07:54:57.030Z",
"dateUpdated": "2026-09-14T11:58:36.477Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-90011 (GCVE-0-2026-90011)
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:
scsi: target: iscsi: Reserve a terminator byte for the login payload
iscsi_target_check_login_request() rejects a login PDU whose
DataSegmentLength exceeds MAX_KEY_VALUE_PAIRS, but the test is '>' and
login->req_buf is allocated with exactly MAX_KEY_VALUE_PAIRS
bytes. Since iscsit_get_login_rx() receives payload_length + padding
bytes, where
padding = ((-payload_length) & 3);
any payload_length from 8189 to 8192 fills the whole 8192 byte
buffer. The write stays in bounds, but no byte is left for a NUL
terminator.
The buffer is subsequently consumed as a C string. In the CHAP path
chap_check_algorithm() calls kstrdup(a_str), and extract_param() calls
strstr(in_buf, pattern) followed by strlen_semi(), none of which take a
length. convert_null_to_semi() additionally rewrites every embedded NUL
to ';', so even a payload made of well formed NUL separated key=value
records is left without a terminator. These walk past the end of the
object into adjacent slab memory. It is reachable by an unauthenticated
initiator against a portal configured for CHAP; when authentication is
not required iscsi_login_zero_tsih_s2() rewrites AuthMethod to None and
the CHAP path is never entered.
Allocate one extra byte. kzalloc() zeroes it and nothing ever writes to
it, as every writer copies to offset 0 for at most MAX_KEY_VALUE_PAIRS
bytes, so the buffer is always terminated.
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": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/target/iscsi/iscsi_target_login.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "5fac79f248c37774d1dd761406f83d25ca6ff8e4",
"status": "affected",
"version": "e48354ce078c079996f89d715dfa44814b4eba01",
"versionType": "git"
},
{
"lessThan": "6ddddcad436d8e6e619204d3c848147ff2f5bf1e",
"status": "affected",
"version": "e48354ce078c079996f89d715dfa44814b4eba01",
"versionType": "git"
},
{
"lessThan": "b19dc17ed963ac36c0db4b52a1803fb11169f91f",
"status": "affected",
"version": "e48354ce078c079996f89d715dfa44814b4eba01",
"versionType": "git"
},
{
"lessThan": "6b589ef9d5f6cdc70d2b4f269ca6cf26b5ebb076",
"status": "affected",
"version": "e48354ce078c079996f89d715dfa44814b4eba01",
"versionType": "git"
},
{
"lessThan": "eb9dadf4d552ebe10644871c5189286552aa48f5",
"status": "affected",
"version": "e48354ce078c079996f89d715dfa44814b4eba01",
"versionType": "git"
},
{
"lessThan": "1624bff4c5118ad494d50ad94d44f22064667a7f",
"status": "affected",
"version": "e48354ce078c079996f89d715dfa44814b4eba01",
"versionType": "git"
},
{
"lessThan": "3ddf3ea291a0ef2ea93b82e158960ac2cc42302b",
"status": "affected",
"version": "e48354ce078c079996f89d715dfa44814b4eba01",
"versionType": "git"
},
{
"lessThan": "f4825922d2fb371e2b969697d792077f1b62b62c",
"status": "affected",
"version": "e48354ce078c079996f89d715dfa44814b4eba01",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/target/iscsi/iscsi_target_login.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.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": "3.1",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.221",
"versionStartIncluding": "3.1",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.188",
"versionStartIncluding": "3.1",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.157",
"versionStartIncluding": "3.1",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.110",
"versionStartIncluding": "3.1",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.51",
"versionStartIncluding": "3.1",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.5",
"versionStartIncluding": "3.1",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"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: Reserve a terminator byte for the login payload\n\niscsi_target_check_login_request() rejects a login PDU whose\nDataSegmentLength exceeds MAX_KEY_VALUE_PAIRS, but the test is \u0027\u003e\u0027 and\nlogin-\u003ereq_buf is allocated with exactly MAX_KEY_VALUE_PAIRS\nbytes. Since iscsit_get_login_rx() receives payload_length + padding\nbytes, where\n\n\tpadding = ((-payload_length) \u0026 3);\n\nany payload_length from 8189 to 8192 fills the whole 8192 byte\nbuffer. The write stays in bounds, but no byte is left for a NUL\nterminator.\n\nThe buffer is subsequently consumed as a C string. In the CHAP path\nchap_check_algorithm() calls kstrdup(a_str), and extract_param() calls\nstrstr(in_buf, pattern) followed by strlen_semi(), none of which take a\nlength. convert_null_to_semi() additionally rewrites every embedded NUL\nto \u0027;\u0027, so even a payload made of well formed NUL separated key=value\nrecords is left without a terminator. These walk past the end of the\nobject into adjacent slab memory. It is reachable by an unauthenticated\ninitiator against a portal configured for CHAP; when authentication is\nnot required iscsi_login_zero_tsih_s2() rewrites AuthMethod to None and\nthe CHAP path is never entered.\n\nAllocate one extra byte. kzalloc() zeroes it and nothing ever writes to\nit, as every writer copies to offset 0 for at most MAX_KEY_VALUE_PAIRS\nbytes, so the buffer is always terminated."
}
],
"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 LIO in-kernel iSCSI target accepts remote TCP connections on the iSCSI portal (typically port 3260); a crafted Login PDU is received by iscsit_accept_np()/iscsit_get_login_rx() and reaches the CHAP parsers over the network, the same exposure model as nfsd or ksmbd.\nAC:L - The attacker fully controls DataSegmentLength and the login payload. A CHAP_A PDU of 8189-8192 bytes with no NUL, or a second CHAP round where convert_null_to_semi() strips every terminator, makes kstrdup()/strstr() over-read adjacent slab deterministically; no race or victim-side layout is required.\nPR:N - The over-read runs in the CHAP login handshake before the password hash is checked, so no Linux account or capability is needed. Default TPG authentication is CHAP (TA_AUTHENTICATION=1), and chap_server_open() proceeds once target-side CHAP credentials exist, which is the normal CHAP deployment.\nUI:N - The attacker opens a TCP connection to the listening portal and sends the malicious Login PDUs; no victim user action such as mounting a volume or accepting a prompt is required.\nS:U - The unbounded C-string over-read and any resulting kernel oops stay inside the host iSCSI target\u0027s kernel security authority and do not by themselves cross a VM, IOMMU, or sandbox boundary.\nC:H - chap_check_algorithm() kstrdup()s the unterminated 8192-byte req_buf, and extract_param() uses unbounded strstr()/strlen_semi() after convert_null_to_semi() removes embedded NULs, producing an unbounded out-of-bounds read of adjacent kmalloc-8k slab that can disclose neighboring kernel objects.\nI:N - iscsit_get_login_rx() copies at most MAX_KEY_VALUE_PAIRS bytes into req_buf, so the network write stays in bounds; convert_null_to_semi() also writes only within payload_length. There is no out-of-bounds write or control-flow hijack primitive.\nA:H - strlen()/kstrdup()/strstr() walking past the kmalloc-8k login object into unmapped or guard pages causes a kernel oops, and the attacker can repeat the unauthenticated login against an exposed portal, denying service to the host and its iSCSI clients."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T08:56:25.054Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/5fac79f248c37774d1dd761406f83d25ca6ff8e4"
},
{
"url": "https://git.kernel.org/stable/c/6ddddcad436d8e6e619204d3c848147ff2f5bf1e"
},
{
"url": "https://git.kernel.org/stable/c/b19dc17ed963ac36c0db4b52a1803fb11169f91f"
},
{
"url": "https://git.kernel.org/stable/c/6b589ef9d5f6cdc70d2b4f269ca6cf26b5ebb076"
},
{
"url": "https://git.kernel.org/stable/c/eb9dadf4d552ebe10644871c5189286552aa48f5"
},
{
"url": "https://git.kernel.org/stable/c/1624bff4c5118ad494d50ad94d44f22064667a7f"
},
{
"url": "https://git.kernel.org/stable/c/3ddf3ea291a0ef2ea93b82e158960ac2cc42302b"
},
{
"url": "https://git.kernel.org/stable/c/f4825922d2fb371e2b969697d792077f1b62b62c"
}
],
"title": "scsi: target: iscsi: Reserve a terminator byte for the login payload",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-90011",
"datePublished": "2026-09-16T10:33:18.793Z",
"dateReserved": "2026-09-11T19:38:34.781Z",
"dateUpdated": "2026-10-19T08:56:25.054Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-72015 (GCVE-0-2026-72015)
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:
fs/resctrl: Fix double-add of pseudo-locked region's RMID to free list
A pseudo-locked group's RMID is freed when it is created. On unmount
rmdir_all_sub() unconditionally frees all RMID of all groups, resulting
in a double-free of the pseudo-locked group's RMID. The consequence of this
is that the original free results in the pseudo-locked group's RMID being
added to the rmid_free_lru linked list and the second free then attempts
to add the same RMID entry to the rmid_free_lru again.
Do not double-free a pseudo-locked group's RMID.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: e0bdfe8e36f3fbbdc91e70bf927f743ca23917b0 Version: e0bdfe8e36f3fbbdc91e70bf927f743ca23917b0 Version: e0bdfe8e36f3fbbdc91e70bf927f743ca23917b0 Version: e0bdfe8e36f3fbbdc91e70bf927f743ca23917b0 Version: e0bdfe8e36f3fbbdc91e70bf927f743ca23917b0 Version: e0bdfe8e36f3fbbdc91e70bf927f743ca23917b0 Version: e0bdfe8e36f3fbbdc91e70bf927f743ca23917b0 Version: e0bdfe8e36f3fbbdc91e70bf927f743ca23917b0 |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"fs/resctrl/rdtgroup.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "bab7dbba38ed3011972c3d9be2dcdca7575cbe32",
"status": "affected",
"version": "e0bdfe8e36f3fbbdc91e70bf927f743ca23917b0",
"versionType": "git"
},
{
"lessThan": "ad12e70d7dc3c94a05efc61d1e4861078e0e162b",
"status": "affected",
"version": "e0bdfe8e36f3fbbdc91e70bf927f743ca23917b0",
"versionType": "git"
},
{
"lessThan": "52b769165f20b38092f28ce064b4b143471540a7",
"status": "affected",
"version": "e0bdfe8e36f3fbbdc91e70bf927f743ca23917b0",
"versionType": "git"
},
{
"lessThan": "9168176894332312c12ef052e784735dbf4ffe3f",
"status": "affected",
"version": "e0bdfe8e36f3fbbdc91e70bf927f743ca23917b0",
"versionType": "git"
},
{
"lessThan": "b2fe9e140aa94b2816aab7ebc692b543e418f5e3",
"status": "affected",
"version": "e0bdfe8e36f3fbbdc91e70bf927f743ca23917b0",
"versionType": "git"
},
{
"lessThan": "52007bfdce5310e8c8a29849bfbfb188a1e50ca0",
"status": "affected",
"version": "e0bdfe8e36f3fbbdc91e70bf927f743ca23917b0",
"versionType": "git"
},
{
"lessThan": "f7628eea9212e185a09df3aea603ca8580b8678d",
"status": "affected",
"version": "e0bdfe8e36f3fbbdc91e70bf927f743ca23917b0",
"versionType": "git"
},
{
"lessThan": "b9f089723aee892efc77c349ae47a6b452b293c4",
"status": "affected",
"version": "e0bdfe8e36f3fbbdc91e70bf927f743ca23917b0",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"fs/resctrl/rdtgroup.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.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": "4.19",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.217",
"versionStartIncluding": "4.19",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.184",
"versionStartIncluding": "4.19",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.148",
"versionStartIncluding": "4.19",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.101",
"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\nfs/resctrl: Fix double-add of pseudo-locked region\u0027s RMID to free list\n\nA pseudo-locked group\u0027s RMID is freed when it is created. On unmount\nrmdir_all_sub() unconditionally frees all RMID of all groups, resulting\nin a double-free of the pseudo-locked group\u0027s RMID. The consequence of this\nis that the original free results in the pseudo-locked group\u0027s RMID being\nadded to the rmid_free_lru linked list and the second free then attempts\nto add the same RMID entry to the rmid_free_lru again.\n\nDo not double-free a pseudo-locked group\u0027s RMID."
}
],
"providerMetadata": {
"dateUpdated": "2026-08-23T12:46:25.496Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/bab7dbba38ed3011972c3d9be2dcdca7575cbe32"
},
{
"url": "https://git.kernel.org/stable/c/ad12e70d7dc3c94a05efc61d1e4861078e0e162b"
},
{
"url": "https://git.kernel.org/stable/c/52b769165f20b38092f28ce064b4b143471540a7"
},
{
"url": "https://git.kernel.org/stable/c/9168176894332312c12ef052e784735dbf4ffe3f"
},
{
"url": "https://git.kernel.org/stable/c/b2fe9e140aa94b2816aab7ebc692b543e418f5e3"
},
{
"url": "https://git.kernel.org/stable/c/52007bfdce5310e8c8a29849bfbfb188a1e50ca0"
},
{
"url": "https://git.kernel.org/stable/c/f7628eea9212e185a09df3aea603ca8580b8678d"
},
{
"url": "https://git.kernel.org/stable/c/b9f089723aee892efc77c349ae47a6b452b293c4"
}
],
"title": "fs/resctrl: Fix double-add of pseudo-locked region\u0027s RMID to free list",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-72015",
"datePublished": "2026-08-15T05:51:43.390Z",
"dateReserved": "2026-08-09T03:40:39.900Z",
"dateUpdated": "2026-08-23T12:46:25.496Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-97562 (GCVE-0-2026-97562)
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: pin DFS superblock in iterator callback
tcon_super_cb() stores a raw superblock pointer, but __cifs_get_super()
takes its active reference only after iterate_supers_type() has dropped
s_umount and its passive reference. Concurrent DFS automount expiry can
therefore free the superblock before cifs_sb_active() uses it.
A deterministic KASAN test reproduces the race as:
BUG: KASAN: slab-use-after-free in cifs_sb_active+0x77/0x80
The same test passes with this change applied.
Take the active reference in the callback while iterate_supers_type()
still holds s_umount shared. cifs_put_tcp_super() remains the matching
release.
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": "3c9acc9835c304013a4faeb969fe9333d66ca9f8",
"status": "affected",
"version": "bacd704a95ad0b93af995aae4a523aa046f46563",
"versionType": "git"
},
{
"lessThan": "ea43a15cea36dc5ddd832be5bddeac7dd804cbcf",
"status": "affected",
"version": "bacd704a95ad0b93af995aae4a523aa046f46563",
"versionType": "git"
},
{
"lessThan": "a6b6561522212af852c9ad8a7dca8d59ef2c7377",
"status": "affected",
"version": "bacd704a95ad0b93af995aae4a523aa046f46563",
"versionType": "git"
},
{
"lessThan": "5b01a8c0209690db75341528ec53fd87e0ac1460",
"status": "affected",
"version": "bacd704a95ad0b93af995aae4a523aa046f46563",
"versionType": "git"
},
{
"lessThan": "d806d5a85dcbe2a0f181b2f0f9f61ddfbefa1818",
"status": "affected",
"version": "bacd704a95ad0b93af995aae4a523aa046f46563",
"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.7"
},
{
"lessThan": "5.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.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.158",
"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.53",
"versionStartIncluding": "5.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.7",
"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\nsmb: client: pin DFS superblock in iterator callback\n\ntcon_super_cb() stores a raw superblock pointer, but __cifs_get_super()\ntakes its active reference only after iterate_supers_type() has dropped\ns_umount and its passive reference. Concurrent DFS automount expiry can\ntherefore free the superblock before cifs_sb_active() uses it.\n\nA deterministic KASAN test reproduces the race as:\n\n BUG: KASAN: slab-use-after-free in cifs_sb_active+0x77/0x80\n\nThe same test passes with this change applied.\n\nTake the active reference in the callback while iterate_supers_type()\nstill holds s_umount shared. cifs_put_tcp_super() remains the matching\nrelease."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.5,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - The racing side is started by the remote SMB server: dropping the session or replying STATUS_NETWORK_NAME_DELETED makes the client run smb2_reconnect() -\u003e cifs_tree_connect() -\u003e cifs_get_dfs_tcon_super() -\u003e __cifs_get_super(). There, tcon_super_cb() saves a raw superblock pointer that is used after s_umount is released.\nAC:H - The server can force reconnects repeatedly, but the superblock is only freed if a DFS-link automount expires via cifs_expire_automounts() (a 500s periodic timer, idle submount only) inside the small gap between iterate_supers_type() returning and cifs_sb_active(). The attacker does not control that timing.\nPR:N - The attacker is the SMB/DFS server or a network peer that can reset the client\u0027s session. Forcing the client\u0027s tree reconnect needs no account or privilege on the client.\nUI:R - A victim must have mounted a DFS share with an automounted DFS link from the attacker-reachable server (cifs mounts need real CAP_SYS_ADMIN, not a user namespace), and the link must be idle long enough to expire.\nS:U - The use-after-free corrupts memory in the same kernel that runs the CIFS client, so no separate security authority is crossed.\nC:H - After the freed super_block and cifs_sb_info are reused, the reconnect path keeps reading them (cifs_sb_active() on freed memory, then CIFS_SB(sb) fields in tree_connect_dfs_target()), so reclaimed slab contents can be read.\nI:H - cifs_sb_active() increments counters in the freed cifs_sb/sb, and cifs_update_super_prepath() frees and replaces cifs_sb-\u003eprepath in the freed cifs_sb_info. Both are writes into freed memory that can be turned into heap corruption.\nA:H - The fix commit reports a KASAN slab-use-after-free in cifs_sb_active(); without KASAN the corrupted superblock refcounts and the later cifs_put_tcp_super()/deactivate_super() can crash the kernel."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T09:09:25.220Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/3c9acc9835c304013a4faeb969fe9333d66ca9f8"
},
{
"url": "https://git.kernel.org/stable/c/ea43a15cea36dc5ddd832be5bddeac7dd804cbcf"
},
{
"url": "https://git.kernel.org/stable/c/a6b6561522212af852c9ad8a7dca8d59ef2c7377"
},
{
"url": "https://git.kernel.org/stable/c/5b01a8c0209690db75341528ec53fd87e0ac1460"
},
{
"url": "https://git.kernel.org/stable/c/d806d5a85dcbe2a0f181b2f0f9f61ddfbefa1818"
}
],
"title": "smb: client: pin DFS superblock in iterator callback",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-97562",
"datePublished": "2026-09-25T10:21:50.664Z",
"dateReserved": "2026-09-24T16:01:01.155Z",
"dateUpdated": "2026-10-19T09:09:25.220Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-97942 (GCVE-0-2026-97942)
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/alternatives: Exclude text poking against change_page_attr()
From time to time, the following BUG can be observed
in the x86 alternatives patching code [0]:
> kernel BUG at arch/x86/kernel/alternative.c:2576!
> Oops: invalid opcode: 0000 [#1] SMP NOPTI
> CPU: 0 UID: 0 PID: 355 Comm: (udev-worker) Not tainted 7.1.3-1-default #1 PREEMPT(full) openSUSE Tumbleweed 8c1795b03ec64f997e57a8ad38b1161e3b98da64
> Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS unknown 02/02/2022
> RIP: 0010:__text_poke+0x2aa/0x450
> Call Trace:
> <TASK>
> smp_text_poke_batch_finish+0x2a7/0x320
> __static_call_transform+0xb7/0x220
> arch_static_call_transform+0x5b/0xb0
> __static_call_init+0xe9/0x270
> static_call_module_notify+0x11f/0x150
> notifier_call_chain+0x61/0xe0
> blocking_notifier_call_chain_robust+0x63/0xc0
> load_module+0x1c92/0x20c0
> init_module_from_file+0xd8/0x140
> idempotent_init_module+0x100/0x2f0
> __x64_sys_finit_module+0x71/0xe0
> do_syscall_64+0xe1/0x610
> entry_SYSCALL_64_after_hwframe+0x76/0x7e
which matches the following BUG_ON() in alternative.c:
/*
* If something went wrong, crash and burn since recovery paths are not
* implemented.
*/
BUG_ON(!pages[0] || (cross_page_boundary && !pages[1]));
This can happen if vmalloc_to_page() fails, for any reason. Such can happen
if text poking races with CPA, which can possibly result in the collapsing
of page tables (or breaking of PMD hugepages). It is not a problem for most
users of vmalloc_to_page() (they solely own the vmalloc'd range) but, when
CONFIG_ARCH_HAS_EXECMEM_ROX=y, various modules own a single execmem vmalloc
range, and can call set_memory_*() in parallel on it. This can happen to
race against __text_poke and cause havoc in vmalloc_to_page().
Fix it by excluding against CPA using the init_mm mmap read lock.
[ dhansen: Fix up SoB ordering. The actual code flow here was:
Pedro=>Lorenzo=>Mike=>Me which is reflected in the SoB chain
now. I *believe* Mike simply picked up Lorenzo's update to
Pedro's post from the Link ]
References
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"arch/x86/kernel/alternative.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "281e6f536f2f3f95d91938c5bd7ba9bcb4c1049d",
"status": "affected",
"version": "64f6a4e10c05ed527f0f24b7954964255e0d3535",
"versionType": "git"
},
{
"lessThan": "89c60435b90d32ab5e3a39da3ae73d463d07debe",
"status": "affected",
"version": "64f6a4e10c05ed527f0f24b7954964255e0d3535",
"versionType": "git"
},
{
"lessThan": "1587d3394e254639cc36516256031334095e6ef3",
"status": "affected",
"version": "64f6a4e10c05ed527f0f24b7954964255e0d3535",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"arch/x86/kernel/alternative.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.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.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.7",
"versionStartIncluding": "6.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "6.15",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nx86/alternatives: Exclude text poking against change_page_attr()\n\nFrom time to time, the following BUG can be observed\nin the x86 alternatives patching code [0]:\n\n \u003e kernel BUG at arch/x86/kernel/alternative.c:2576!\n \u003e Oops: invalid opcode: 0000 [#1] SMP NOPTI\n \u003e CPU: 0 UID: 0 PID: 355 Comm: (udev-worker) Not tainted 7.1.3-1-default #1 PREEMPT(full) openSUSE Tumbleweed 8c1795b03ec64f997e57a8ad38b1161e3b98da64\n \u003e Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS unknown 02/02/2022\n \u003e RIP: 0010:__text_poke+0x2aa/0x450\n \u003e Call Trace:\n \u003e \u003cTASK\u003e\n \u003e smp_text_poke_batch_finish+0x2a7/0x320\n \u003e __static_call_transform+0xb7/0x220\n \u003e arch_static_call_transform+0x5b/0xb0\n \u003e __static_call_init+0xe9/0x270\n \u003e static_call_module_notify+0x11f/0x150\n \u003e notifier_call_chain+0x61/0xe0\n \u003e blocking_notifier_call_chain_robust+0x63/0xc0\n \u003e load_module+0x1c92/0x20c0\n \u003e init_module_from_file+0xd8/0x140\n \u003e idempotent_init_module+0x100/0x2f0\n \u003e __x64_sys_finit_module+0x71/0xe0\n \u003e do_syscall_64+0xe1/0x610\n \u003e entry_SYSCALL_64_after_hwframe+0x76/0x7e\n\nwhich matches the following BUG_ON() in alternative.c:\n\n\t/*\n\t * If something went wrong, crash and burn since recovery paths are not\n\t * implemented.\n\t */\n\tBUG_ON(!pages[0] || (cross_page_boundary \u0026\u0026 !pages[1]));\n\nThis can happen if vmalloc_to_page() fails, for any reason. Such can happen\nif text poking races with CPA, which can possibly result in the collapsing\nof page tables (or breaking of PMD hugepages). It is not a problem for most\nusers of vmalloc_to_page() (they solely own the vmalloc\u0027d range) but, when\nCONFIG_ARCH_HAS_EXECMEM_ROX=y, various modules own a single execmem vmalloc\nrange, and can call set_memory_*() in parallel on it. This can happen to\nrace against __text_poke and cause havoc in vmalloc_to_page().\n\nFix it by excluding against CPA using the init_mm mmap read lock.\n\n[ dhansen: Fix up SoB ordering. The actual code flow here was:\n\t Pedro=\u003eLorenzo=\u003eMike=\u003eMe which is reflected in the SoB chain\n\t now. I *believe* Mike simply picked up Lorenzo\u0027s update to\n\t Pedro\u0027s post from the Link ]"
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T09:11:08.757Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/281e6f536f2f3f95d91938c5bd7ba9bcb4c1049d"
},
{
"url": "https://git.kernel.org/stable/c/89c60435b90d32ab5e3a39da3ae73d463d07debe"
},
{
"url": "https://git.kernel.org/stable/c/1587d3394e254639cc36516256031334095e6ef3"
}
],
"title": "x86/alternatives: Exclude text poking against change_page_attr()",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-97942",
"datePublished": "2026-09-25T10:22:54.188Z",
"dateReserved": "2026-09-25T10:18:58.204Z",
"dateUpdated": "2026-10-19T09:11:08.757Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-98273 (GCVE-0-2026-98273)
Vulnerability from cvelistv5
Published
2026-10-06 08:45
Modified
2026-10-19 09:16
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
x86/kprobes: Fix crash when probing CS CALL instructions
When using eBPF to probe CS CALL instructions within a function,
a crash can be triggered.
The eBPF tool probes offset 257 of the __hrtimer_run_queues()
function:
<__hrtimer_run_queues+249>: nopl 0x0(%rax,%rax,1)
<__hrtimer_run_queues+254>: mov %r14,%rdi
<__hrtimer_run_queues+257>: cs call <__x86_indirect_thunk_r12>
<__hrtimer_run_queues+263>: mov %eax,%r12d
<__hrtimer_run_queues+266>: xchg %ax,%ax
<__hrtimer_run_queues+268>: mov %r13,%rdi
Which triggers this crash:
BUG: unable to handle page fault for address: 00000000000f41c9
#PF: supervisor write access in kernel mode
#PF: error_code(0x0002) - not-present page
PGD 0 P4D 0
Oops: 0002 [#1] SMP NOPTI
CPU: 1 PID: 0 Comm: swapper/1 Kdump: loaded Tainted: P
RIP: 0010:__hrtimer_run_queues+0x106/0x230
Note that __hrtimer_run_queues+0x106 is __hrtimer_run_queues+262, which is
at the 6th byte of the above CS CALL instruction. Since the CS CALL
instruction occupies 6 bytes, the exception occurred in the middle of that
call instruction.
The root cause is that when using eBPF tools to probe in the middle of a
function, a kprobe with INT3 is used as the underlying implementation.
During single-step emulation of the original CALL instruction,
int3_emulate_call() assumes that the probed CALL instruction is 5 bytes
long. However, the actual CS-prefixed CALL instruction occupies 6 bytes,
so it constructs an incorrect exception return address. When the CPU
returns from the kprobe handler, the next instruction to be executed is at
the address of the last byte of that CS CALL instruction. Coincidentally,
starting from that address, the CPU fetches and decodes a completely
different instruction, which ultimately triggers a kernel crash.
Fix the issue by using the actual instruction length obtained from
the instruction decoder when constructing the exception return
address, rather than relying on the hardcoded CALL_INSN_SIZE macro.
[ mingo: Refined the changelog ]
References
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"arch/x86/include/asm/text-patching.h",
"arch/x86/kernel/alternative.c",
"arch/x86/kernel/kprobes/core.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "cfc1af3d054aaabee08f1f77c441b3533b082869",
"status": "affected",
"version": "6256e668b7af9d81472e03c6a171630c08f8858a",
"versionType": "git"
},
{
"lessThan": "d8c6a18c0552135cbf0c696c9019b2979d0862c9",
"status": "affected",
"version": "6256e668b7af9d81472e03c6a171630c08f8858a",
"versionType": "git"
},
{
"lessThan": "a5f7a5bb3b7f28ba7e4fa246775b29a0e5537255",
"status": "affected",
"version": "6256e668b7af9d81472e03c6a171630c08f8858a",
"versionType": "git"
},
{
"status": "affected",
"version": "ba7d1dae9fe866abe74bb1e849fb85983b7c4c37",
"versionType": "git"
},
{
"lessThan": "5.11",
"status": "affected",
"version": "5.10.190",
"versionType": "semver"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"arch/x86/include/asm/text-patching.h",
"arch/x86/kernel/alternative.c",
"arch/x86/kernel/kprobes/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.18.*",
"status": "unaffected",
"version": "6.18.54",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.8",
"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.54",
"versionStartIncluding": "5.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.8",
"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.10.190",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nx86/kprobes: Fix crash when probing CS CALL instructions\n\nWhen using eBPF to probe CS CALL instructions within a function,\na crash can be triggered.\n\nThe eBPF tool probes offset 257 of the __hrtimer_run_queues()\nfunction:\n\n\u003c__hrtimer_run_queues+249\u003e: nopl 0x0(%rax,%rax,1)\n\u003c__hrtimer_run_queues+254\u003e: mov %r14,%rdi\n\u003c__hrtimer_run_queues+257\u003e: cs call \u003c__x86_indirect_thunk_r12\u003e\n\u003c__hrtimer_run_queues+263\u003e: mov %eax,%r12d\n\u003c__hrtimer_run_queues+266\u003e: xchg %ax,%ax\n\u003c__hrtimer_run_queues+268\u003e: mov %r13,%rdi\n\nWhich triggers this crash:\n\n BUG: unable to handle page fault for address: 00000000000f41c9\n #PF: supervisor write access in kernel mode\n #PF: error_code(0x0002) - not-present page\n PGD 0 P4D 0\n Oops: 0002 [#1] SMP NOPTI\n CPU: 1 PID: 0 Comm: swapper/1 Kdump: loaded Tainted: P\n RIP: 0010:__hrtimer_run_queues+0x106/0x230\n\nNote that __hrtimer_run_queues+0x106 is __hrtimer_run_queues+262, which is\nat the 6th byte of the above CS CALL instruction. Since the CS CALL\ninstruction occupies 6 bytes, the exception occurred in the middle of that\ncall instruction.\n\nThe root cause is that when using eBPF tools to probe in the middle of a\nfunction, a kprobe with INT3 is used as the underlying implementation.\n\nDuring single-step emulation of the original CALL instruction,\nint3_emulate_call() assumes that the probed CALL instruction is 5 bytes\nlong. However, the actual CS-prefixed CALL instruction occupies 6 bytes,\nso it constructs an incorrect exception return address. When the CPU\nreturns from the kprobe handler, the next instruction to be executed is at\nthe address of the last byte of that CS CALL instruction. Coincidentally,\nstarting from that address, the CPU fetches and decodes a completely\ndifferent instruction, which ultimately triggers a kernel crash.\n\nFix the issue by using the actual instruction length obtained from\nthe instruction decoder when constructing the exception return\naddress, rather than relying on the hardcoded CALL_INSN_SIZE macro.\n\n[ mingo: Refined the changelog ]"
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T09:16:44.960Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/cfc1af3d054aaabee08f1f77c441b3533b082869"
},
{
"url": "https://git.kernel.org/stable/c/d8c6a18c0552135cbf0c696c9019b2979d0862c9"
},
{
"url": "https://git.kernel.org/stable/c/a5f7a5bb3b7f28ba7e4fa246775b29a0e5537255"
}
],
"title": "x86/kprobes: Fix crash when probing CS CALL instructions",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-98273",
"datePublished": "2026-10-06T08:45:34.645Z",
"dateReserved": "2026-09-25T10:25:14.334Z",
"dateUpdated": "2026-10-19T09:16:44.960Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-97564 (GCVE-0-2026-97564)
Vulnerability from cvelistv5
Published
2026-09-25 10:21
Modified
2026-10-30 12:37
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
smb: client: reject userspace cifs.idmap descriptions
cifs.idmap key descriptions carry authority-bearing fields (owner and
group SIDs and uid/gid values in "os:"/"gs:"/"oi:"/"gi:" form) that the
cifs.idmap upcall helper treats as kernel-originating inputs. Unlike
its sibling cifs.spnego, the cifs.idmap key type has no vet_description
hook, so userspace can create keys of this type through
request_key(2)/add_key(2) and supply those fields without CIFS origin.
A request_key(2) call with a non-NULL callout then drives a root
usermodehelper upcall (/sbin/request-key -> cifs.idmap) that consumes
the unvetted description in root context.
Only accept cifs.idmap descriptions while CIFS is using its private
root_cred to request the key. id_to_sid()/sid_to_id() already run
under override_creds(root_cred), so the kernel-originated path is
unaffected.
This mirrors commit 3da1fdf4efbc ("smb: client: reject userspace
cifs.spnego descriptions"), which applied the same restriction to
cifs.spnego.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 4d79dba0e00749fa40de8ef13a9b85ce57a1603b Version: 4d79dba0e00749fa40de8ef13a9b85ce57a1603b Version: 4d79dba0e00749fa40de8ef13a9b85ce57a1603b Version: 4d79dba0e00749fa40de8ef13a9b85ce57a1603b Version: 4d79dba0e00749fa40de8ef13a9b85ce57a1603b Version: 4d79dba0e00749fa40de8ef13a9b85ce57a1603b Version: 4d79dba0e00749fa40de8ef13a9b85ce57a1603b Version: 4d79dba0e00749fa40de8ef13a9b85ce57a1603b |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"fs/smb/client/cifsacl.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "91da70a2e5c6f54e1316d51e0e6911e78ef5e09a",
"status": "affected",
"version": "4d79dba0e00749fa40de8ef13a9b85ce57a1603b",
"versionType": "git"
},
{
"lessThan": "856cb3f05b49d23dc1542f78696e20c4ea6dd7de",
"status": "affected",
"version": "4d79dba0e00749fa40de8ef13a9b85ce57a1603b",
"versionType": "git"
},
{
"lessThan": "f29c1ec0e7d8c887a91df3f93bb4617c0ac95c6a",
"status": "affected",
"version": "4d79dba0e00749fa40de8ef13a9b85ce57a1603b",
"versionType": "git"
},
{
"lessThan": "17c93bcd17755523c21abb22cbf2a41a6eb0caaf",
"status": "affected",
"version": "4d79dba0e00749fa40de8ef13a9b85ce57a1603b",
"versionType": "git"
},
{
"lessThan": "e5964064e3fbe6325893408faff08ca33de0e2c3",
"status": "affected",
"version": "4d79dba0e00749fa40de8ef13a9b85ce57a1603b",
"versionType": "git"
},
{
"lessThan": "96751028c0d4dec785709ea3eb0ab38a4f2ded96",
"status": "affected",
"version": "4d79dba0e00749fa40de8ef13a9b85ce57a1603b",
"versionType": "git"
},
{
"lessThan": "1d3b24b16a0b013792e8f1e3ed060f0b46f537d1",
"status": "affected",
"version": "4d79dba0e00749fa40de8ef13a9b85ce57a1603b",
"versionType": "git"
},
{
"lessThan": "d9d7eeb0cea5b55b82888f443622fd8d4ee064f3",
"status": "affected",
"version": "4d79dba0e00749fa40de8ef13a9b85ce57a1603b",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"fs/smb/client/cifsacl.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.273",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.224",
"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.273",
"versionStartIncluding": "3.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.224",
"versionStartIncluding": "3.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.189",
"versionStartIncluding": "3.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.158",
"versionStartIncluding": "3.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.111",
"versionStartIncluding": "3.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.53",
"versionStartIncluding": "3.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.7",
"versionStartIncluding": "3.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "3.0",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nsmb: client: reject userspace cifs.idmap descriptions\n\ncifs.idmap key descriptions carry authority-bearing fields (owner and\ngroup SIDs and uid/gid values in \"os:\"/\"gs:\"/\"oi:\"/\"gi:\" form) that the\ncifs.idmap upcall helper treats as kernel-originating inputs. Unlike\nits sibling cifs.spnego, the cifs.idmap key type has no vet_description\nhook, so userspace can create keys of this type through\nrequest_key(2)/add_key(2) and supply those fields without CIFS origin.\nA request_key(2) call with a non-NULL callout then drives a root\nusermodehelper upcall (/sbin/request-key -\u003e cifs.idmap) that consumes\nthe unvetted description in root context.\n\nOnly accept cifs.idmap descriptions while CIFS is using its private\nroot_cred to request the key. id_to_sid()/sid_to_id() already run\nunder override_creds(root_cred), so the kernel-originated path is\nunaffected.\n\nThis mirrors commit 3da1fdf4efbc (\"smb: client: reject userspace\ncifs.spnego descriptions\"), which applied the same restriction to\ncifs.spnego."
}
],
"providerMetadata": {
"dateUpdated": "2026-10-30T12:37:26.400Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/91da70a2e5c6f54e1316d51e0e6911e78ef5e09a"
},
{
"url": "https://git.kernel.org/stable/c/856cb3f05b49d23dc1542f78696e20c4ea6dd7de"
},
{
"url": "https://git.kernel.org/stable/c/f29c1ec0e7d8c887a91df3f93bb4617c0ac95c6a"
},
{
"url": "https://git.kernel.org/stable/c/17c93bcd17755523c21abb22cbf2a41a6eb0caaf"
},
{
"url": "https://git.kernel.org/stable/c/e5964064e3fbe6325893408faff08ca33de0e2c3"
},
{
"url": "https://git.kernel.org/stable/c/96751028c0d4dec785709ea3eb0ab38a4f2ded96"
},
{
"url": "https://git.kernel.org/stable/c/1d3b24b16a0b013792e8f1e3ed060f0b46f537d1"
},
{
"url": "https://git.kernel.org/stable/c/d9d7eeb0cea5b55b82888f443622fd8d4ee064f3"
}
],
"title": "smb: client: reject userspace cifs.idmap descriptions",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-97564",
"datePublished": "2026-09-25T10:21:51.858Z",
"dateReserved": "2026-09-24T16:01:01.155Z",
"dateUpdated": "2026-10-30T12:37:26.400Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-45930 (GCVE-0-2026-45930)
Vulnerability from cvelistv5
Published
2026-05-27 12:17
Modified
2026-06-19 11:58
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
net: mctp: ensure our nlmsg responses are initialised
Syed Faraz Abrar (@farazsth98) from Zellic, and Pumpkin (@u1f383) from
DEVCORE Research Team working with Trend Micro Zero Day Initiative
report that a RTM_GETNEIGH will return uninitalised data in the pad
bytes of the ndmsg data.
Ensure we're initialising the netlink data to zero, in the link, addr
and neigh response messages.
References
| URL | Tags | ||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 583be982d93479ea3d85091b0fd0b01201ede87d Version: 583be982d93479ea3d85091b0fd0b01201ede87d Version: 583be982d93479ea3d85091b0fd0b01201ede87d Version: 583be982d93479ea3d85091b0fd0b01201ede87d Version: 583be982d93479ea3d85091b0fd0b01201ede87d Version: 583be982d93479ea3d85091b0fd0b01201ede87d Version: 583be982d93479ea3d85091b0fd0b01201ede87d |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/mctp/device.c",
"net/mctp/neigh.c",
"net/mctp/route.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "b37da3ac099e145bcd3be82c745a8d335772e3af",
"status": "affected",
"version": "583be982d93479ea3d85091b0fd0b01201ede87d",
"versionType": "git"
},
{
"lessThan": "c4f840437e7641764de15f2de951ac8335d641f1",
"status": "affected",
"version": "583be982d93479ea3d85091b0fd0b01201ede87d",
"versionType": "git"
},
{
"lessThan": "963537a26fd892f7e414a091f807b44aeee97a7d",
"status": "affected",
"version": "583be982d93479ea3d85091b0fd0b01201ede87d",
"versionType": "git"
},
{
"lessThan": "976612471a9e6ead6ceffc241e4d0a1aac90b36a",
"status": "affected",
"version": "583be982d93479ea3d85091b0fd0b01201ede87d",
"versionType": "git"
},
{
"lessThan": "54ed418de62a148a655262da682a050fa05f7924",
"status": "affected",
"version": "583be982d93479ea3d85091b0fd0b01201ede87d",
"versionType": "git"
},
{
"lessThan": "6fb6a97c86abb8592158088afaea0eb464cf9de1",
"status": "affected",
"version": "583be982d93479ea3d85091b0fd0b01201ede87d",
"versionType": "git"
},
{
"lessThan": "a6a9bc544b675d8b5180f2718ec985ad267b5cbf",
"status": "affected",
"version": "583be982d93479ea3d85091b0fd0b01201ede87d",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/mctp/device.c",
"net/mctp/neigh.c",
"net/mctp/route.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.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": "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": "5.15.210",
"versionStartIncluding": "5.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.176",
"versionStartIncluding": "5.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.143",
"versionStartIncluding": "5.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.93",
"versionStartIncluding": "5.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.35",
"versionStartIncluding": "5.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.19.4",
"versionStartIncluding": "5.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.0",
"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: mctp: ensure our nlmsg responses are initialised\n\nSyed Faraz Abrar (@farazsth98) from Zellic, and Pumpkin (@u1f383) from\nDEVCORE Research Team working with Trend Micro Zero Day Initiative\nreport that a RTM_GETNEIGH will return uninitalised data in the pad\nbytes of the ndmsg data.\n\nEnsure we\u0027re initialising the netlink data to zero, in the link, addr\nand neigh response messages."
}
],
"providerMetadata": {
"dateUpdated": "2026-06-19T11:58:46.478Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/b37da3ac099e145bcd3be82c745a8d335772e3af"
},
{
"url": "https://git.kernel.org/stable/c/c4f840437e7641764de15f2de951ac8335d641f1"
},
{
"url": "https://git.kernel.org/stable/c/963537a26fd892f7e414a091f807b44aeee97a7d"
},
{
"url": "https://git.kernel.org/stable/c/976612471a9e6ead6ceffc241e4d0a1aac90b36a"
},
{
"url": "https://git.kernel.org/stable/c/54ed418de62a148a655262da682a050fa05f7924"
},
{
"url": "https://git.kernel.org/stable/c/6fb6a97c86abb8592158088afaea0eb464cf9de1"
},
{
"url": "https://git.kernel.org/stable/c/a6a9bc544b675d8b5180f2718ec985ad267b5cbf"
}
],
"title": "net: mctp: ensure our nlmsg responses are initialised",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-45930",
"datePublished": "2026-05-27T12:17:48.689Z",
"dateReserved": "2026-05-13T15:03:33.086Z",
"dateUpdated": "2026-06-19T11:58:46.478Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2023-54180 (GCVE-0-2023-54180)
Vulnerability from cvelistv5
Published
2025-12-30 12:08
Modified
2026-05-11 19:56
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
btrfs: handle case when repair happens with dev-replace
[BUG]
There is a bug report that a BUG_ON() in btrfs_repair_io_failure()
(originally repair_io_failure() in v6.0 kernel) got triggered when
replacing a unreliable disk:
BTRFS warning (device sda1): csum failed root 257 ino 2397453 off 39624704 csum 0xb0d18c75 expected csum 0x4dae9c5e mirror 3
kernel BUG at fs/btrfs/extent_io.c:2380!
invalid opcode: 0000 [#1] PREEMPT SMP NOPTI
CPU: 9 PID: 3614331 Comm: kworker/u257:2 Tainted: G OE 6.0.0-5-amd64 #1 Debian 6.0.10-2
Hardware name: Micro-Star International Co., Ltd. MS-7C60/TRX40 PRO WIFI (MS-7C60), BIOS 2.70 07/01/2021
Workqueue: btrfs-endio btrfs_end_bio_work [btrfs]
RIP: 0010:repair_io_failure+0x24a/0x260 [btrfs]
Call Trace:
<TASK>
clean_io_failure+0x14d/0x180 [btrfs]
end_bio_extent_readpage+0x412/0x6e0 [btrfs]
? __switch_to+0x106/0x420
process_one_work+0x1c7/0x380
worker_thread+0x4d/0x380
? rescuer_thread+0x3a0/0x3a0
kthread+0xe9/0x110
? kthread_complete_and_exit+0x20/0x20
ret_from_fork+0x22/0x30
[CAUSE]
Before the BUG_ON(), we got some read errors from the replace target
first, note the mirror number (3, which is beyond RAID1 duplication,
thus it's read from the replace target device).
Then at the BUG_ON() location, we are trying to writeback the repaired
sectors back the failed device.
The check looks like this:
ret = btrfs_map_block(fs_info, BTRFS_MAP_WRITE, logical,
&map_length, &bioc, mirror_num);
if (ret)
goto out_counter_dec;
BUG_ON(mirror_num != bioc->mirror_num);
But inside btrfs_map_block(), we can modify bioc->mirror_num especially
for dev-replace:
if (dev_replace_is_ongoing && mirror_num == map->num_stripes + 1 &&
!need_full_stripe(op) && dev_replace->tgtdev != NULL) {
ret = get_extra_mirror_from_replace(fs_info, logical, *length,
dev_replace->srcdev->devid,
&mirror_num,
&physical_to_patch_in_first_stripe);
patch_the_first_stripe_for_dev_replace = 1;
}
Thus if we're repairing the replace target device, we're going to
trigger that BUG_ON().
But in reality, the read failure from the replace target device may be
that, our replace hasn't reached the range we're reading, thus we're
reading garbage, but with replace running, the range would be properly
filled later.
Thus in that case, we don't need to do anything but let the replace
routine to handle it.
[FIX]
Instead of a BUG_ON(), just skip the repair if we're repairing the
device replace target device.
References
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"fs/btrfs/bio.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "a7018b40b49c37fb55736499f790ec0d2b381ae4",
"status": "affected",
"version": "ad6d620e2a5704f6bf3a39c92a75aad962c51cb3",
"versionType": "git"
},
{
"lessThan": "53e9d6851b56626885476a2966194ba994f8bb4b",
"status": "affected",
"version": "ad6d620e2a5704f6bf3a39c92a75aad962c51cb3",
"versionType": "git"
},
{
"lessThan": "d73a27b86fc722c28a26ec64002e3a7dc86d1c07",
"status": "affected",
"version": "ad6d620e2a5704f6bf3a39c92a75aad962c51cb3",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"fs/btrfs/bio.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.0.*",
"status": "unaffected",
"version": "6.0.19",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.5",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "6.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.0.19",
"versionStartIncluding": "3.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.5",
"versionStartIncluding": "3.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.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\nbtrfs: handle case when repair happens with dev-replace\n\n[BUG]\nThere is a bug report that a BUG_ON() in btrfs_repair_io_failure()\n(originally repair_io_failure() in v6.0 kernel) got triggered when\nreplacing a unreliable disk:\n\n BTRFS warning (device sda1): csum failed root 257 ino 2397453 off 39624704 csum 0xb0d18c75 expected csum 0x4dae9c5e mirror 3\n kernel BUG at fs/btrfs/extent_io.c:2380!\n invalid opcode: 0000 [#1] PREEMPT SMP NOPTI\n CPU: 9 PID: 3614331 Comm: kworker/u257:2 Tainted: G OE 6.0.0-5-amd64 #1 Debian 6.0.10-2\n Hardware name: Micro-Star International Co., Ltd. MS-7C60/TRX40 PRO WIFI (MS-7C60), BIOS 2.70 07/01/2021\n Workqueue: btrfs-endio btrfs_end_bio_work [btrfs]\n RIP: 0010:repair_io_failure+0x24a/0x260 [btrfs]\n Call Trace:\n \u003cTASK\u003e\n clean_io_failure+0x14d/0x180 [btrfs]\n end_bio_extent_readpage+0x412/0x6e0 [btrfs]\n ? __switch_to+0x106/0x420\n process_one_work+0x1c7/0x380\n worker_thread+0x4d/0x380\n ? rescuer_thread+0x3a0/0x3a0\n kthread+0xe9/0x110\n ? kthread_complete_and_exit+0x20/0x20\n ret_from_fork+0x22/0x30\n\n[CAUSE]\n\nBefore the BUG_ON(), we got some read errors from the replace target\nfirst, note the mirror number (3, which is beyond RAID1 duplication,\nthus it\u0027s read from the replace target device).\n\nThen at the BUG_ON() location, we are trying to writeback the repaired\nsectors back the failed device.\n\nThe check looks like this:\n\n\t\tret = btrfs_map_block(fs_info, BTRFS_MAP_WRITE, logical,\n\t\t\t\t \u0026map_length, \u0026bioc, mirror_num);\n\t\tif (ret)\n\t\t\tgoto out_counter_dec;\n\t\tBUG_ON(mirror_num != bioc-\u003emirror_num);\n\nBut inside btrfs_map_block(), we can modify bioc-\u003emirror_num especially\nfor dev-replace:\n\n\tif (dev_replace_is_ongoing \u0026\u0026 mirror_num == map-\u003enum_stripes + 1 \u0026\u0026\n\t !need_full_stripe(op) \u0026\u0026 dev_replace-\u003etgtdev != NULL) {\n\t\tret = get_extra_mirror_from_replace(fs_info, logical, *length,\n\t\t\t\t\t\t dev_replace-\u003esrcdev-\u003edevid,\n\t\t\t\t\t\t \u0026mirror_num,\n\t\t\t\t\t \u0026physical_to_patch_in_first_stripe);\n\t\tpatch_the_first_stripe_for_dev_replace = 1;\n\t}\n\nThus if we\u0027re repairing the replace target device, we\u0027re going to\ntrigger that BUG_ON().\n\nBut in reality, the read failure from the replace target device may be\nthat, our replace hasn\u0027t reached the range we\u0027re reading, thus we\u0027re\nreading garbage, but with replace running, the range would be properly\nfilled later.\n\nThus in that case, we don\u0027t need to do anything but let the replace\nroutine to handle it.\n\n[FIX]\nInstead of a BUG_ON(), just skip the repair if we\u0027re repairing the\ndevice replace target device."
}
],
"providerMetadata": {
"dateUpdated": "2026-05-11T19:56:59.896Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/a7018b40b49c37fb55736499f790ec0d2b381ae4"
},
{
"url": "https://git.kernel.org/stable/c/53e9d6851b56626885476a2966194ba994f8bb4b"
},
{
"url": "https://git.kernel.org/stable/c/d73a27b86fc722c28a26ec64002e3a7dc86d1c07"
}
],
"title": "btrfs: handle case when repair happens with dev-replace",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2023-54180",
"datePublished": "2025-12-30T12:08:51.727Z",
"dateReserved": "2025-12-30T12:06:44.497Z",
"dateUpdated": "2026-05-11T19:56:59.896Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-98253 (GCVE-0-2026-98253)
Vulnerability from cvelistv5
Published
2026-10-06 08:45
Modified
2026-10-19 09:16
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
RDMA/ucma: Serialize join and leave on copy_to_user failure
rdma_join_multicast() queues RoCE work that later reads the ucma_multicast
through event->param.ud.private_data, then list_add()s the CMA multicast
at the head of id_priv->mc_list. rdma_leave_multicast() matches only by
sockaddr and destroys the first hit.
ucma_process_join() used to drop ctx->mutex after a successful join and
retake it only if copy_to_user() failed. Two concurrent JOIN_MCAST calls
with the same address can therefore insert a second CMA entry before the
first thread's leave. leave then cancels the newer work and the older
worker still dereferences the ucma_multicast that the first thread frees.
Keep ctx->mutex held from rdma_join_multicast() through copy_to_user() and,
on -EFAULT, through rdma_leave_multicast() so leave cannot miss this join.
Do not leave if join itself failed: that path never published this address
on mc_list, and a leave-by-addr would destroy an earlier successful join.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 60d613b39e8d0c9f3b526e9c96445422b4562d76 Version: fe454dc31e84f8c14cb8942fcb61666c9f40745b Version: fe454dc31e84f8c14cb8942fcb61666c9f40745b Version: fe454dc31e84f8c14cb8942fcb61666c9f40745b Version: fe454dc31e84f8c14cb8942fcb61666c9f40745b Version: fe454dc31e84f8c14cb8942fcb61666c9f40745b Version: fe454dc31e84f8c14cb8942fcb61666c9f40745b Version: fe454dc31e84f8c14cb8942fcb61666c9f40745b Version: a3262b3884dd67b4c5632ce7cdf9cff9d1a575d4 Version: 5.10.20 ≤ Version: 5.11.3 ≤ |
||
{
"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": "29b9ed83d8bfab5c6e11fcbf1aa836aa4ae26cb9",
"status": "affected",
"version": "60d613b39e8d0c9f3b526e9c96445422b4562d76",
"versionType": "git"
},
{
"lessThan": "52172e11bd074ccaded21740ffeb67123f01dd00",
"status": "affected",
"version": "fe454dc31e84f8c14cb8942fcb61666c9f40745b",
"versionType": "git"
},
{
"lessThan": "01e29d0d78a8f66f221625720a04939eef5ec1f6",
"status": "affected",
"version": "fe454dc31e84f8c14cb8942fcb61666c9f40745b",
"versionType": "git"
},
{
"lessThan": "ae805d204cf1f15b87d1bf3529b4c649f3519420",
"status": "affected",
"version": "fe454dc31e84f8c14cb8942fcb61666c9f40745b",
"versionType": "git"
},
{
"lessThan": "43c4e24bd10370fc976f6220518049ce71419399",
"status": "affected",
"version": "fe454dc31e84f8c14cb8942fcb61666c9f40745b",
"versionType": "git"
},
{
"lessThan": "01cbdb724c584d7772fd25af2e4dfdf8527ce0d5",
"status": "affected",
"version": "fe454dc31e84f8c14cb8942fcb61666c9f40745b",
"versionType": "git"
},
{
"lessThan": "83610ee5e498fa5bfcb80031d2b959baea276bf6",
"status": "affected",
"version": "fe454dc31e84f8c14cb8942fcb61666c9f40745b",
"versionType": "git"
},
{
"lessThan": "662ade4de9ff5eceb0820a9f8e9fac70ba6a815b",
"status": "affected",
"version": "fe454dc31e84f8c14cb8942fcb61666c9f40745b",
"versionType": "git"
},
{
"status": "affected",
"version": "a3262b3884dd67b4c5632ce7cdf9cff9d1a575d4",
"versionType": "git"
},
{
"lessThan": "5.10.271",
"status": "affected",
"version": "5.10.20",
"versionType": "semver"
},
{
"lessThan": "5.12",
"status": "affected",
"version": "5.11.3",
"versionType": "semver"
}
]
},
{
"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.12"
},
{
"lessThan": "5.12",
"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.112",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.54",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.8",
"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.20",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.222",
"versionStartIncluding": "5.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.189",
"versionStartIncluding": "5.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.158",
"versionStartIncluding": "5.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.112",
"versionStartIncluding": "5.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.54",
"versionStartIncluding": "5.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.8",
"versionStartIncluding": "5.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "5.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "5.11.3",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nRDMA/ucma: Serialize join and leave on copy_to_user failure\n\nrdma_join_multicast() queues RoCE work that later reads the ucma_multicast\nthrough event-\u003eparam.ud.private_data, then list_add()s the CMA multicast\nat the head of id_priv-\u003emc_list. rdma_leave_multicast() matches only by\nsockaddr and destroys the first hit.\n\nucma_process_join() used to drop ctx-\u003emutex after a successful join and\nretake it only if copy_to_user() failed. Two concurrent JOIN_MCAST calls\nwith the same address can therefore insert a second CMA entry before the\nfirst thread\u0027s leave. leave then cancels the newer work and the older\nworker still dereferences the ucma_multicast that the first thread frees.\n\nKeep ctx-\u003emutex held from rdma_join_multicast() through copy_to_user() and,\non -EFAULT, through rdma_leave_multicast() so leave cannot miss this join.\nDo not leave if join itself failed: that path never published this address\non mc_list, and a leave-by-addr would destroy an earlier successful join."
}
],
"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 write() of RDMA_USER_CM_CMD_JOIN_MCAST/JOIN_IP_MCAST on the local char device /dev/infiniband/rdma_cm into ucma_process_join(). The trigger is local: two racing joins and a bad response pointer. No remote peer supplies the data that causes it, so AV:L.\nAC:L - The attacker drives every part of the race. They make copy_to_user() fail with a bad cmd-\u003eresponse pointer, and a second thread issues JOIN_MCAST for the same address while ctx-\u003emutex is dropped. rdma_leave_multicast() then destroys the newer mc_list head and cancels the wrong iboe_join work. The attempt can be repeated until it wins.\nPR:L - rdma_cm is created with mode 0666 and ucma_write() does no capability check. Any local user on a host with a RoCE port can create a UD cm_id, bind it and join multicast. An unprivileged user cannot create a soft-RoCE device, because nldev NEWLINK needs CAP_NET_ADMIN in the initial namespace, so the RoCE port must already exist.\nUI:N - The attacker triggers the bug entirely through their own writes on an rdma_cm file descriptor they opened. No other user or administrator has to act.\nS:U - The freed ucma_multicast and the corrupted kernel heap are in the same kernel security authority. This is local kernel memory corruption, not a VM or IOMMU boundary crossing.\nC:H - cma_iboe_join_work_handler() calls ucma_create_uevent() on the freed ucma_multicast, reading mc-\u003euid and mc-\u003eid into the event that GET_EVENT copies to userspace. If the freed slot is reclaimed with sprayed objects, this use-after-free gives a read primitive.\nI:H - uevent-\u003emc keeps a pointer to the freed ucma_multicast, and ucma_get_event() then runs uevent-\u003emc-\u003eevents_reported++. That is an attacker-timed write into freed and reclaimable slab memory, usable to corrupt an object sprayed into the slot.\nA:H - The use-after-free of ucma_multicast in the RoCE join worker and in ucma_get_event() can corrupt the slab or oops the kernel, crashing the host. Syzbot reported this bug (extid a6ffe86390c8a6afc818)."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T09:16:24.567Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/29b9ed83d8bfab5c6e11fcbf1aa836aa4ae26cb9"
},
{
"url": "https://git.kernel.org/stable/c/52172e11bd074ccaded21740ffeb67123f01dd00"
},
{
"url": "https://git.kernel.org/stable/c/01e29d0d78a8f66f221625720a04939eef5ec1f6"
},
{
"url": "https://git.kernel.org/stable/c/ae805d204cf1f15b87d1bf3529b4c649f3519420"
},
{
"url": "https://git.kernel.org/stable/c/43c4e24bd10370fc976f6220518049ce71419399"
},
{
"url": "https://git.kernel.org/stable/c/01cbdb724c584d7772fd25af2e4dfdf8527ce0d5"
},
{
"url": "https://git.kernel.org/stable/c/83610ee5e498fa5bfcb80031d2b959baea276bf6"
},
{
"url": "https://git.kernel.org/stable/c/662ade4de9ff5eceb0820a9f8e9fac70ba6a815b"
}
],
"title": "RDMA/ucma: Serialize join and leave on copy_to_user failure",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-98253",
"datePublished": "2026-10-06T08:45:20.077Z",
"dateReserved": "2026-09-25T10:25:14.331Z",
"dateUpdated": "2026-10-19T09:16:24.567Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-64280 (GCVE-0-2026-64280)
Vulnerability from cvelistv5
Published
2026-07-25 08:49
Modified
2026-08-23 12:45
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
fpga: dfl-afu: validate DMA mapping length in afu_dma_map_region()
afu_ioctl_dma_map() accepts a 64-bit length from userspace via
DFL_FPGA_PORT_DMA_MAP ioctl without an upper bound check. The value
is passed to afu_dma_pin_pages() where npages is derived as
length >> PAGE_SHIFT and passed to pin_user_pages_fast() which takes
int nr_pages, causing implicit truncation if length is very large.
Validate map.length at the ioctl entry point before calling
afu_dma_map_region(), rejecting values whose page count exceeds
INT_MAX.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: fa8dda1edef9ebc3af467c644c5533ac97171e12 Version: fa8dda1edef9ebc3af467c644c5533ac97171e12 Version: fa8dda1edef9ebc3af467c644c5533ac97171e12 Version: fa8dda1edef9ebc3af467c644c5533ac97171e12 Version: fa8dda1edef9ebc3af467c644c5533ac97171e12 Version: fa8dda1edef9ebc3af467c644c5533ac97171e12 Version: fa8dda1edef9ebc3af467c644c5533ac97171e12 Version: fa8dda1edef9ebc3af467c644c5533ac97171e12 |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/fpga/dfl-afu-main.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "5352d488ce4ae5e8c68c080ad4c3a5f084ad5fbc",
"status": "affected",
"version": "fa8dda1edef9ebc3af467c644c5533ac97171e12",
"versionType": "git"
},
{
"lessThan": "d7e787eee2ea619b6dbb98890472ee73daf2e7fd",
"status": "affected",
"version": "fa8dda1edef9ebc3af467c644c5533ac97171e12",
"versionType": "git"
},
{
"lessThan": "a6a3884ff500f04f3088d6d09eec803cd35331a2",
"status": "affected",
"version": "fa8dda1edef9ebc3af467c644c5533ac97171e12",
"versionType": "git"
},
{
"lessThan": "16381bda90b261a656ded0568630c1b857b2ebc8",
"status": "affected",
"version": "fa8dda1edef9ebc3af467c644c5533ac97171e12",
"versionType": "git"
},
{
"lessThan": "b50e6cd2395cde615f59b624819998d28c0668d6",
"status": "affected",
"version": "fa8dda1edef9ebc3af467c644c5533ac97171e12",
"versionType": "git"
},
{
"lessThan": "59070040fd12e0b78d7b4d341d9f9a183237c5ff",
"status": "affected",
"version": "fa8dda1edef9ebc3af467c644c5533ac97171e12",
"versionType": "git"
},
{
"lessThan": "fb2c0eab51ae5b02d2bae7d67c2cfbec39b57231",
"status": "affected",
"version": "fa8dda1edef9ebc3af467c644c5533ac97171e12",
"versionType": "git"
},
{
"lessThan": "fc3b071a7c8dc0f5d56defddf6e6fd5aaa3e1e27",
"status": "affected",
"version": "fa8dda1edef9ebc3af467c644c5533ac97171e12",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/fpga/dfl-afu-main.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.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.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.266",
"versionStartIncluding": "4.19",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.217",
"versionStartIncluding": "4.19",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.184",
"versionStartIncluding": "4.19",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.148",
"versionStartIncluding": "4.19",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.101",
"versionStartIncluding": "4.19",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.39",
"versionStartIncluding": "4.19",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.4",
"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\nfpga: dfl-afu: validate DMA mapping length in afu_dma_map_region()\n\nafu_ioctl_dma_map() accepts a 64-bit length from userspace via\nDFL_FPGA_PORT_DMA_MAP ioctl without an upper bound check. The value\nis passed to afu_dma_pin_pages() where npages is derived as\nlength \u003e\u003e PAGE_SHIFT and passed to pin_user_pages_fast() which takes\nint nr_pages, causing implicit truncation if length is very large.\n\nValidate map.length at the ioctl entry point before calling\nafu_dma_map_region(), rejecting values whose page count exceeds\nINT_MAX."
}
],
"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 path is reached locally through DFL_FPGA_PORT_DMA_MAP on a /dev/dfl-port.* character device.\nAC:L - A page-aligned length whose page count wraps to zero or a small positive integer deterministically triggers the mismatch; no race or condition outside the attacker\u2019s control is required.\nPR:L - The ioctl contains no capability or namespace privilege check, so any unprivileged user granted access to the port device can trigger it.\nUI:N - The attacker independently opens the device and submits the malicious ioctl without any victim action.\nS:C - The oversized DMA mapping can cross the IOMMU-enforced boundary between the assigned user buffer and host physical memory, affecting kernel and other-user resources.\nC:H - A small positive page-count wrap can create an enormous DMA-readable mapping after pinning only a few pages, exposing host memory beyond the authorized buffer; teardown also performs unbounded out-of-bounds pointer reads.\nI:H - The mapping is DMA_BIDIRECTIONAL, permitting writes beyond the pinned buffer, while the oversized unpin operation can corrupt unrelated page reference counts through out-of-bounds page pointers.\nA:H - A zero page-count wrap causes a deterministic pages[0] dereference from a zero-sized allocation, while other wrapped counts can produce an unbounded unpin traversal and kernel crash."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-23T12:45:39.157Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/5352d488ce4ae5e8c68c080ad4c3a5f084ad5fbc"
},
{
"url": "https://git.kernel.org/stable/c/d7e787eee2ea619b6dbb98890472ee73daf2e7fd"
},
{
"url": "https://git.kernel.org/stable/c/a6a3884ff500f04f3088d6d09eec803cd35331a2"
},
{
"url": "https://git.kernel.org/stable/c/16381bda90b261a656ded0568630c1b857b2ebc8"
},
{
"url": "https://git.kernel.org/stable/c/b50e6cd2395cde615f59b624819998d28c0668d6"
},
{
"url": "https://git.kernel.org/stable/c/59070040fd12e0b78d7b4d341d9f9a183237c5ff"
},
{
"url": "https://git.kernel.org/stable/c/fb2c0eab51ae5b02d2bae7d67c2cfbec39b57231"
},
{
"url": "https://git.kernel.org/stable/c/fc3b071a7c8dc0f5d56defddf6e6fd5aaa3e1e27"
}
],
"title": "fpga: dfl-afu: validate DMA mapping length in afu_dma_map_region()",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-64280",
"datePublished": "2026-07-25T08:49:23.753Z",
"dateReserved": "2026-07-19T15:36:31.777Z",
"dateUpdated": "2026-08-23T12:45:39.157Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-74675 (GCVE-0-2026-74675)
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:
vt: stabilize tty reference in kbd_keycode with tty_port_tty_get
kbd_keycode() reads vc->port.tty without acquiring a tty reference,
racing against con_shutdown() which clears port.tty under a different
lock. Use tty_port_tty_get()/tty_kref_put() to hold a proper reference
for the duration the tty pointer is 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": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-74675",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T19:14:25.197026Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T19:16:08.728Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/tty/vt/keyboard.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "b84fd400f80adf4d1c88fbce50ae1cf2f8119e65",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "38400673c9bfb39cfc87539e1a072087e98f4e4f",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "cab5a342f0589334046741006d8a280514f94235",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "38a0aa593ebc275aea6f79534d07f44e43768ce6",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "3f6b1d3fcfc26dc3fc85262f753439df93b055b4",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "b664592e9ba8c47c9e23408db7ba52eb9f946c8a",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "cc4a1a2ce0c58eafd477effb055863935260ddc1",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "e25d47a526939ad44b75f778b8a7500562b84fc1",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/tty/vt/keyboard.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\nvt: stabilize tty reference in kbd_keycode with tty_port_tty_get\n\nkbd_keycode() reads vc-\u003eport.tty without acquiring a tty reference,\nracing against con_shutdown() which clears port.tty under a different\nlock. Use tty_port_tty_get()/tty_kref_put() to hold a proper reference\nfor the duration the tty pointer is needed."
}
],
"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 code is reached only through local virtual-console and input paths: kbd_keycode runs from the VT keyboard input handler on key/key-repeat events while con_shutdown runs during final close(2) on /dev/ttyN; there is no network, Bluetooth-only, or remote-protocol reachability to both sides of the race.\nAC:L - The attacker controls both race participants: one thread can loop open/close a console tty to drive release_tty/con_shutdown while another holds a key for repeat events (down==2) or injects EV_KEY via uinput, retrying until kbd_keycode uses a freed tty_struct.\nPR:L - No real-root capability is required; a console-logged-in user with normal DAC access to /dev/ttyN (typical tty-group membership) can close their VT tty and generate foreground key events, and vt_ioctl grants perm to the controlling-tty owner without CAP_SYS_TTY_CONFIG.\nUI:N - The attacker performs every step from its own console session\u2014opening/closing the VT tty and generating key or key-repeat input\u2014so no separate victim or administrator action is required.\nS:U - The slab use-after-free corrupts kernel heap memory within the same kernel security authority; it does not cross a VM, IOMMU, or sandbox boundary.\nC:H - After the tty is freed, kbd_keycode reads freed tty_struct fields (termios for L_ECHO and optionally tty-\u003eops via tty_chars_in_buffer), giving a use-after-free read primitive and enabling disclosure of kernel memory once the slab object is reclaimed.\nI:H - The path writes tty-\u003edriver_data on a freed tty_struct and may indirect-call through tty-\u003eops in tty_chars_in_buffer, enabling heap spray and control-flow hijack for arbitrary kernel modification or privilege escalation.\nA:H - Use-after-free on tty_struct reliably produces kernel oops or panic on illegal dereference through freed memory, and the open/close versus key-repeat race can be retriggered at will for repeatable denial of service."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-25T05:41:27.811Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/b84fd400f80adf4d1c88fbce50ae1cf2f8119e65"
},
{
"url": "https://git.kernel.org/stable/c/38400673c9bfb39cfc87539e1a072087e98f4e4f"
},
{
"url": "https://git.kernel.org/stable/c/cab5a342f0589334046741006d8a280514f94235"
},
{
"url": "https://git.kernel.org/stable/c/38a0aa593ebc275aea6f79534d07f44e43768ce6"
},
{
"url": "https://git.kernel.org/stable/c/3f6b1d3fcfc26dc3fc85262f753439df93b055b4"
},
{
"url": "https://git.kernel.org/stable/c/b664592e9ba8c47c9e23408db7ba52eb9f946c8a"
},
{
"url": "https://git.kernel.org/stable/c/cc4a1a2ce0c58eafd477effb055863935260ddc1"
},
{
"url": "https://git.kernel.org/stable/c/e25d47a526939ad44b75f778b8a7500562b84fc1"
}
],
"title": "vt: stabilize tty reference in kbd_keycode with tty_port_tty_get",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-74675",
"datePublished": "2026-08-22T15:32:44.493Z",
"dateReserved": "2026-08-15T05:44:03.925Z",
"dateUpdated": "2026-10-16T19:16:08.728Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-98170 (GCVE-0-2026-98170)
Vulnerability from cvelistv5
Published
2026-10-06 08:44
Modified
2026-10-30 12:37
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
smb: client: fix OOB struct field reads in move_smb2_ea_to_cifs()
In move_smb2_ea_to_cifs(), the while (src_size > 0) loop condition is
insufficient. It allows iteration to continue even if the remaining
src_size is too small to contain a complete smb2_ea_info structure.
Consequently, reads of ea_name_length and ea_value_length can occur
out-of-bounds.
Fix this by ensuring src_size >= sizeof(*src) before attempting to read
any structure fields. Additionally, reject any next_entry_offset that is
smaller than sizeof(*src) or that would advance the pointer beyond the
available buffer.
Note that for calls where the server returns a malformed EA list, the
error returned to userspace changes from -ENODATA (getxattr) or
-ERANGE (listxattr) to -EIO. This correctly signals a server protocol
error rather than misleadingly indicating "attribute not present" or
"output buffer too small".
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 95907fea4fd8ccc736e0a428e52159b4d42b9958 Version: 95907fea4fd8ccc736e0a428e52159b4d42b9958 Version: 95907fea4fd8ccc736e0a428e52159b4d42b9958 Version: 95907fea4fd8ccc736e0a428e52159b4d42b9958 Version: 95907fea4fd8ccc736e0a428e52159b4d42b9958 Version: 95907fea4fd8ccc736e0a428e52159b4d42b9958 Version: 95907fea4fd8ccc736e0a428e52159b4d42b9958 Version: 95907fea4fd8ccc736e0a428e52159b4d42b9958 |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"fs/smb/client/smb2ops.c",
"fs/smb/client/trace.h"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "22886b1b7464613373c9a7d0af2ace029c50cd97",
"status": "affected",
"version": "95907fea4fd8ccc736e0a428e52159b4d42b9958",
"versionType": "git"
},
{
"lessThan": "9d707a278c100c26d10fbbbd03988778ffc992ce",
"status": "affected",
"version": "95907fea4fd8ccc736e0a428e52159b4d42b9958",
"versionType": "git"
},
{
"lessThan": "90a13af4c9b1369327395bababfe87c75599cc19",
"status": "affected",
"version": "95907fea4fd8ccc736e0a428e52159b4d42b9958",
"versionType": "git"
},
{
"lessThan": "61812323c037a94e2e7f0db7ee740c34b126bffe",
"status": "affected",
"version": "95907fea4fd8ccc736e0a428e52159b4d42b9958",
"versionType": "git"
},
{
"lessThan": "d3546cecbf81d98bf3b472d341f981eb48c04f47",
"status": "affected",
"version": "95907fea4fd8ccc736e0a428e52159b4d42b9958",
"versionType": "git"
},
{
"lessThan": "34a3942e787b9c59758115bd65fe1ec89d68c7a4",
"status": "affected",
"version": "95907fea4fd8ccc736e0a428e52159b4d42b9958",
"versionType": "git"
},
{
"lessThan": "13efcd37a9b3d6ffa1579c3dda3e29c893ed9bca",
"status": "affected",
"version": "95907fea4fd8ccc736e0a428e52159b4d42b9958",
"versionType": "git"
},
{
"lessThan": "eeb5ef6083e1cefa2ef75041b5597ff228b8d7bb",
"status": "affected",
"version": "95907fea4fd8ccc736e0a428e52159b4d42b9958",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"fs/smb/client/smb2ops.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": "4.14"
},
{
"lessThan": "4.14",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.273",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.224",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.191",
"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.54",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.8",
"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.273",
"versionStartIncluding": "4.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.224",
"versionStartIncluding": "4.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.191",
"versionStartIncluding": "4.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.160",
"versionStartIncluding": "4.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.112",
"versionStartIncluding": "4.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.54",
"versionStartIncluding": "4.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.8",
"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\nsmb: client: fix OOB struct field reads in move_smb2_ea_to_cifs()\n\nIn move_smb2_ea_to_cifs(), the while (src_size \u003e 0) loop condition is\ninsufficient. It allows iteration to continue even if the remaining\nsrc_size is too small to contain a complete smb2_ea_info structure.\nConsequently, reads of ea_name_length and ea_value_length can occur\nout-of-bounds.\n\nFix this by ensuring src_size \u003e= sizeof(*src) before attempting to read\nany structure fields. Additionally, reject any next_entry_offset that is\nsmaller than sizeof(*src) or that would advance the pointer beyond the\navailable buffer.\n\nNote that for calls where the server returns a malformed EA list, the\nerror returned to userspace changes from -ENODATA (getxattr) or\n-ERANGE (listxattr) to -EIO. This correctly signals a server protocol\nerror rather than misleadingly indicating \"attribute not present\" or\n\"output buffer too small\"."
}
],
"providerMetadata": {
"dateUpdated": "2026-10-30T12:37:48.952Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/22886b1b7464613373c9a7d0af2ace029c50cd97"
},
{
"url": "https://git.kernel.org/stable/c/9d707a278c100c26d10fbbbd03988778ffc992ce"
},
{
"url": "https://git.kernel.org/stable/c/90a13af4c9b1369327395bababfe87c75599cc19"
},
{
"url": "https://git.kernel.org/stable/c/61812323c037a94e2e7f0db7ee740c34b126bffe"
},
{
"url": "https://git.kernel.org/stable/c/d3546cecbf81d98bf3b472d341f981eb48c04f47"
},
{
"url": "https://git.kernel.org/stable/c/34a3942e787b9c59758115bd65fe1ec89d68c7a4"
},
{
"url": "https://git.kernel.org/stable/c/13efcd37a9b3d6ffa1579c3dda3e29c893ed9bca"
},
{
"url": "https://git.kernel.org/stable/c/eeb5ef6083e1cefa2ef75041b5597ff228b8d7bb"
}
],
"title": "smb: client: fix OOB struct field reads in move_smb2_ea_to_cifs()",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-98170",
"datePublished": "2026-10-06T08:44:15.138Z",
"dateReserved": "2026-09-25T10:25:14.322Z",
"dateUpdated": "2026-10-30T12:37:48.952Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-72236 (GCVE-0-2026-72236)
Vulnerability from cvelistv5
Published
2026-08-15 05:54
Modified
2026-08-23 12:47
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
s390/perf_cpum_cf: Add missing array_index_nospec() to __hw_perf_event_init()
ev variable is userspace controlled via event->attr.config and used
as an array index after bounds checking, but without speculation
barriers.
Add the missing array_index_nospec() call to prevent speculative
execution.
References
| URL | Tags | |||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 212188a596d17d519842ef2173150315735b54e1 Version: 212188a596d17d519842ef2173150315735b54e1 Version: 212188a596d17d519842ef2173150315735b54e1 Version: 212188a596d17d519842ef2173150315735b54e1 Version: 212188a596d17d519842ef2173150315735b54e1 Version: 212188a596d17d519842ef2173150315735b54e1 |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"arch/s390/kernel/perf_cpum_cf.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "4c249b214c686f9a1c4cf4f32893b59b189e897a",
"status": "affected",
"version": "212188a596d17d519842ef2173150315735b54e1",
"versionType": "git"
},
{
"lessThan": "27206bb57c47bdbe33bccc78fa7f7e2a719a06b9",
"status": "affected",
"version": "212188a596d17d519842ef2173150315735b54e1",
"versionType": "git"
},
{
"lessThan": "a21f3615c88421df81060b6ff89220fd34094c4d",
"status": "affected",
"version": "212188a596d17d519842ef2173150315735b54e1",
"versionType": "git"
},
{
"lessThan": "fa1ebae4206e6afc8caa642e9eb1bbe39a9a724f",
"status": "affected",
"version": "212188a596d17d519842ef2173150315735b54e1",
"versionType": "git"
},
{
"lessThan": "f79dff8c721bbb1f3fc312ea55e0551c2cc28801",
"status": "affected",
"version": "212188a596d17d519842ef2173150315735b54e1",
"versionType": "git"
},
{
"lessThan": "49145bce539117db4b6e9e83c0e5ef528e361050",
"status": "affected",
"version": "212188a596d17d519842ef2173150315735b54e1",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"arch/s390/kernel/perf_cpum_cf.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": "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": "3.4",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.145",
"versionStartIncluding": "3.4",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.97",
"versionStartIncluding": "3.4",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.40",
"versionStartIncluding": "3.4",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.5",
"versionStartIncluding": "3.4",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "3.4",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\ns390/perf_cpum_cf: Add missing array_index_nospec() to __hw_perf_event_init()\n\nev variable is userspace controlled via event-\u003eattr.config and used\nas an array index after bounds checking, but without speculation\nbarriers.\n\nAdd the missing array_index_nospec() call to prevent speculative\nexecution."
}
],
"providerMetadata": {
"dateUpdated": "2026-08-23T12:47:04.750Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/4c249b214c686f9a1c4cf4f32893b59b189e897a"
},
{
"url": "https://git.kernel.org/stable/c/27206bb57c47bdbe33bccc78fa7f7e2a719a06b9"
},
{
"url": "https://git.kernel.org/stable/c/a21f3615c88421df81060b6ff89220fd34094c4d"
},
{
"url": "https://git.kernel.org/stable/c/fa1ebae4206e6afc8caa642e9eb1bbe39a9a724f"
},
{
"url": "https://git.kernel.org/stable/c/f79dff8c721bbb1f3fc312ea55e0551c2cc28801"
},
{
"url": "https://git.kernel.org/stable/c/49145bce539117db4b6e9e83c0e5ef528e361050"
}
],
"title": "s390/perf_cpum_cf: Add missing array_index_nospec() to __hw_perf_event_init()",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-72236",
"datePublished": "2026-08-15T05:54:25.891Z",
"dateReserved": "2026-08-09T03:40:39.914Z",
"dateUpdated": "2026-08-23T12:47:04.750Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-68303 (GCVE-0-2026-68303)
Vulnerability from cvelistv5
Published
2026-08-10 12:02
Modified
2026-10-30 12:28
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
drm/vc4: hvs/v3d: Fix null dereference in unbind
The hvs and v3d drivers use dev_get_drvdata(master) in their unbind
functions. Since the vc4-drm gets removed before its dependent drivers
(vc4_hvs/vc4_v3d) the vc4_hvs_unbind/vc4_v3d_unbind functions try to
get drvdata of its master and fails with a null dereference error.
Use the data pointer passed to the unbind functions directly instead of
dev_get_drvdata(master). This avoids using potentially freed memory.
References
| URL | Tags | |||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: c8b75bca92cbf064b9fa125fc74a85994452e935 Version: c8b75bca92cbf064b9fa125fc74a85994452e935 Version: c8b75bca92cbf064b9fa125fc74a85994452e935 Version: c8b75bca92cbf064b9fa125fc74a85994452e935 Version: c8b75bca92cbf064b9fa125fc74a85994452e935 Version: c8b75bca92cbf064b9fa125fc74a85994452e935 |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/gpu/drm/vc4/vc4_hvs.c",
"drivers/gpu/drm/vc4/vc4_v3d.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "3ed3d0b31500b11c8fd9ef96b7703edbccb32e2e",
"status": "affected",
"version": "c8b75bca92cbf064b9fa125fc74a85994452e935",
"versionType": "git"
},
{
"lessThan": "3be8dcc1a5854cf24cc332e0d6fc865c47ff49a1",
"status": "affected",
"version": "c8b75bca92cbf064b9fa125fc74a85994452e935",
"versionType": "git"
},
{
"lessThan": "8f62aae059e06746a18a00af27179c3c0f17f4c7",
"status": "affected",
"version": "c8b75bca92cbf064b9fa125fc74a85994452e935",
"versionType": "git"
},
{
"lessThan": "708688ec31ac6b35103ba364dc300a09930079d4",
"status": "affected",
"version": "c8b75bca92cbf064b9fa125fc74a85994452e935",
"versionType": "git"
},
{
"lessThan": "261f0a3f0ac03248284f5116d3258f89c9642215",
"status": "affected",
"version": "c8b75bca92cbf064b9fa125fc74a85994452e935",
"versionType": "git"
},
{
"lessThan": "7dc3680b7ffe01add3e9299fde8471d2dd53a8ae",
"status": "affected",
"version": "c8b75bca92cbf064b9fa125fc74a85994452e935",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/gpu/drm/vc4/vc4_hvs.c",
"drivers/gpu/drm/vc4/vc4_v3d.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.1.*",
"status": "unaffected",
"version": "6.1.191",
"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.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.191",
"versionStartIncluding": "4.4",
"vulnerable": true
},
{
"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.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.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\ndrm/vc4: hvs/v3d: Fix null dereference in unbind\n\nThe hvs and v3d drivers use dev_get_drvdata(master) in their unbind\nfunctions. Since the vc4-drm gets removed before its dependent drivers\n(vc4_hvs/vc4_v3d) the vc4_hvs_unbind/vc4_v3d_unbind functions try to\nget drvdata of its master and fails with a null dereference error.\n\nUse the data pointer passed to the unbind functions directly instead of\ndev_get_drvdata(master). This avoids using potentially freed memory."
}
],
"providerMetadata": {
"dateUpdated": "2026-10-30T12:28:21.255Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/3ed3d0b31500b11c8fd9ef96b7703edbccb32e2e"
},
{
"url": "https://git.kernel.org/stable/c/3be8dcc1a5854cf24cc332e0d6fc865c47ff49a1"
},
{
"url": "https://git.kernel.org/stable/c/8f62aae059e06746a18a00af27179c3c0f17f4c7"
},
{
"url": "https://git.kernel.org/stable/c/708688ec31ac6b35103ba364dc300a09930079d4"
},
{
"url": "https://git.kernel.org/stable/c/261f0a3f0ac03248284f5116d3258f89c9642215"
},
{
"url": "https://git.kernel.org/stable/c/7dc3680b7ffe01add3e9299fde8471d2dd53a8ae"
}
],
"title": "drm/vc4: hvs/v3d: Fix null dereference in unbind",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-68303",
"datePublished": "2026-08-10T12:02:37.512Z",
"dateReserved": "2026-07-30T09:28:09.381Z",
"dateUpdated": "2026-10-30T12:28:21.255Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-93822 (GCVE-0-2026-93822)
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:
PCI: iproc: Protect root bus removal with rescan lock
Hold the pci_rescan_remove_lock lock while stopping and removing a root bus
to avoid racing with concurrent rescan or hotplug operations triggered via
sysfs. Such races may lead to use-after-free issues or system crashes.
[bhelgaas: commit log]
References
| URL | Tags | ||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 1fb37a8178da007cad75f48e2355b9dcb0711e06 Version: 1fb37a8178da007cad75f48e2355b9dcb0711e06 Version: 1fb37a8178da007cad75f48e2355b9dcb0711e06 Version: 1fb37a8178da007cad75f48e2355b9dcb0711e06 Version: 1fb37a8178da007cad75f48e2355b9dcb0711e06 Version: 1fb37a8178da007cad75f48e2355b9dcb0711e06 Version: 1fb37a8178da007cad75f48e2355b9dcb0711e06 |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/pci/controller/pcie-iproc.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "e7d9d7be2c1f8d434032983bc86a05805178c9c9",
"status": "affected",
"version": "1fb37a8178da007cad75f48e2355b9dcb0711e06",
"versionType": "git"
},
{
"lessThan": "1618e374ba4c7117c04662422ef985e9d64e2466",
"status": "affected",
"version": "1fb37a8178da007cad75f48e2355b9dcb0711e06",
"versionType": "git"
},
{
"lessThan": "4e1d34d824050a4e700ca442f815a95d9f214b83",
"status": "affected",
"version": "1fb37a8178da007cad75f48e2355b9dcb0711e06",
"versionType": "git"
},
{
"lessThan": "aaf4153caed9f1760b9f266612b0599bfd97150c",
"status": "affected",
"version": "1fb37a8178da007cad75f48e2355b9dcb0711e06",
"versionType": "git"
},
{
"lessThan": "bd2bf1e0d973c93fc1637b90cbb9a5a5f6884bd3",
"status": "affected",
"version": "1fb37a8178da007cad75f48e2355b9dcb0711e06",
"versionType": "git"
},
{
"lessThan": "ee06aafc2d760a4ee023e0b2e95ce1ec71bddc6c",
"status": "affected",
"version": "1fb37a8178da007cad75f48e2355b9dcb0711e06",
"versionType": "git"
},
{
"lessThan": "a6a64e150f12ad5391e0a0d60f6a3d119b06ce50",
"status": "affected",
"version": "1fb37a8178da007cad75f48e2355b9dcb0711e06",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/pci/controller/pcie-iproc.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "4.1"
},
{
"lessThan": "4.1",
"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": "4.1",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.222",
"versionStartIncluding": "4.1",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.189",
"versionStartIncluding": "4.1",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.158",
"versionStartIncluding": "4.1",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.111",
"versionStartIncluding": "4.1",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.53",
"versionStartIncluding": "4.1",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "4.1",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nPCI: iproc: Protect root bus removal with rescan lock\n\nHold the pci_rescan_remove_lock lock while stopping and removing a root bus\nto avoid racing with concurrent rescan or hotplug operations triggered via\nsysfs. Such races may lead to use-after-free issues or system crashes.\n\n[bhelgaas: commit log]"
}
],
"providerMetadata": {
"dateUpdated": "2026-10-03T10:57:53.564Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/e7d9d7be2c1f8d434032983bc86a05805178c9c9"
},
{
"url": "https://git.kernel.org/stable/c/1618e374ba4c7117c04662422ef985e9d64e2466"
},
{
"url": "https://git.kernel.org/stable/c/4e1d34d824050a4e700ca442f815a95d9f214b83"
},
{
"url": "https://git.kernel.org/stable/c/aaf4153caed9f1760b9f266612b0599bfd97150c"
},
{
"url": "https://git.kernel.org/stable/c/bd2bf1e0d973c93fc1637b90cbb9a5a5f6884bd3"
},
{
"url": "https://git.kernel.org/stable/c/ee06aafc2d760a4ee023e0b2e95ce1ec71bddc6c"
},
{
"url": "https://git.kernel.org/stable/c/a6a64e150f12ad5391e0a0d60f6a3d119b06ce50"
}
],
"title": "PCI: iproc: Protect root bus removal with rescan lock",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-93822",
"datePublished": "2026-09-24T16:03:00.701Z",
"dateReserved": "2026-09-18T17:59:28.792Z",
"dateUpdated": "2026-10-03T10:57:53.564Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-64062 (GCVE-0-2026-64062)
Vulnerability from cvelistv5
Published
2026-07-19 15:39
Modified
2026-07-19 15:39
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
netfs: Fix potential deadlock in write-through mode
Fix netfs_advance_writethrough() to always unlock the supplied folio and to
mark it dirty if it isn't yet written to the end. Unfortunately, it can't
be marked for writeback until the folio is done with as that may cause a
deadlock against mmapped reads and writes.
Even though it has been marked dirty, premature writeback can't occur as
the caller is holding both inode->i_rwsem (which will prevent concurrent
truncation, fallocation, DIO and other writes) and ictx->wb_lock (which
will cause flushing to wait and writeback to skip or wait).
Note that this may be easier to deal with once the queuing of folios is
split from the generation of subrequests.
References
| URL | Tags | |
|---|---|---|
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"fs/netfs/write_issue.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "1468f39243ccb155b6d97f9a9932f610d1205d75",
"status": "affected",
"version": "288ace2f57c9d06dd2e42bd80d03747d879a4068",
"versionType": "git"
},
{
"lessThan": "003aa0dd26c964025acd6d1213bcdbd674db2ca9",
"status": "affected",
"version": "288ace2f57c9d06dd2e42bd80d03747d879a4068",
"versionType": "git"
},
{
"lessThan": "e40e9cbf3ee4d30ee9a97bd128c85500b6ad0da1",
"status": "affected",
"version": "288ace2f57c9d06dd2e42bd80d03747d879a4068",
"versionType": "git"
},
{
"lessThan": "b6a4ae1634b3ad2aaa05222e53d36da532852faf",
"status": "affected",
"version": "288ace2f57c9d06dd2e42bd80d03747d879a4068",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"fs/netfs/write_issue.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.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.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.34",
"versionStartIncluding": "6.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.0.11",
"versionStartIncluding": "6.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1",
"versionStartIncluding": "6.10",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnetfs: Fix potential deadlock in write-through mode\n\nFix netfs_advance_writethrough() to always unlock the supplied folio and to\nmark it dirty if it isn\u0027t yet written to the end. Unfortunately, it can\u0027t\nbe marked for writeback until the folio is done with as that may cause a\ndeadlock against mmapped reads and writes.\n\nEven though it has been marked dirty, premature writeback can\u0027t occur as\nthe caller is holding both inode-\u003ei_rwsem (which will prevent concurrent\ntruncation, fallocation, DIO and other writes) and ictx-\u003ewb_lock (which\nwill cause flushing to wait and writeback to skip or wait).\n\nNote that this may be easier to deal with once the queuing of folios is\nsplit from the generation of subrequests."
}
],
"providerMetadata": {
"dateUpdated": "2026-07-19T15:39:41.523Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/1468f39243ccb155b6d97f9a9932f610d1205d75"
},
{
"url": "https://git.kernel.org/stable/c/003aa0dd26c964025acd6d1213bcdbd674db2ca9"
},
{
"url": "https://git.kernel.org/stable/c/e40e9cbf3ee4d30ee9a97bd128c85500b6ad0da1"
},
{
"url": "https://git.kernel.org/stable/c/b6a4ae1634b3ad2aaa05222e53d36da532852faf"
}
],
"title": "netfs: Fix potential deadlock in write-through mode",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-64062",
"datePublished": "2026-07-19T15:39:41.523Z",
"dateReserved": "2026-07-19T07:54:57.030Z",
"dateUpdated": "2026-07-19T15:39:41.523Z",
"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-43132 (GCVE-0-2026-43132)
Vulnerability from cvelistv5
Published
2026-05-06 11:27
Modified
2026-05-11 22:18
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
dm-verity: correctly handle dm_bufio_client_create() failure
If either of the calls to dm_bufio_client_create() in verity_fec_ctr()
fails, then dm_bufio_client_destroy() is later called with an ERR_PTR()
argument. That causes a crash. Fix this.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: a739ff3f543afbb4a041c16cd0182c8e8d366e70 Version: a739ff3f543afbb4a041c16cd0182c8e8d366e70 Version: a739ff3f543afbb4a041c16cd0182c8e8d366e70 Version: a739ff3f543afbb4a041c16cd0182c8e8d366e70 Version: a739ff3f543afbb4a041c16cd0182c8e8d366e70 Version: a739ff3f543afbb4a041c16cd0182c8e8d366e70 Version: a739ff3f543afbb4a041c16cd0182c8e8d366e70 Version: a739ff3f543afbb4a041c16cd0182c8e8d366e70 |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/md/dm-verity-fec.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "6283e49af87a9c121bb01e5a64a7fe5706c210bc",
"status": "affected",
"version": "a739ff3f543afbb4a041c16cd0182c8e8d366e70",
"versionType": "git"
},
{
"lessThan": "d3e1f1adc8a0289efe2d2cdc90edb8c6ffe0b5ef",
"status": "affected",
"version": "a739ff3f543afbb4a041c16cd0182c8e8d366e70",
"versionType": "git"
},
{
"lessThan": "5c2217ddb3b7e7ac25f4ebe9061258fc8f1c9167",
"status": "affected",
"version": "a739ff3f543afbb4a041c16cd0182c8e8d366e70",
"versionType": "git"
},
{
"lessThan": "031f2adc1499b112a39ac316bbab3c80bba16cf2",
"status": "affected",
"version": "a739ff3f543afbb4a041c16cd0182c8e8d366e70",
"versionType": "git"
},
{
"lessThan": "9b8dc1d327e2928f3da59ced0595d850d31c0936",
"status": "affected",
"version": "a739ff3f543afbb4a041c16cd0182c8e8d366e70",
"versionType": "git"
},
{
"lessThan": "451cc650e40e8c3222d37877a9e4be0fcaacb9c8",
"status": "affected",
"version": "a739ff3f543afbb4a041c16cd0182c8e8d366e70",
"versionType": "git"
},
{
"lessThan": "b154a868a3856fb5216c4f82981d8a503832e095",
"status": "affected",
"version": "a739ff3f543afbb4a041c16cd0182c8e8d366e70",
"versionType": "git"
},
{
"lessThan": "119f4f04186fa4f33ee6bd39af145cdaff1ff17f",
"status": "affected",
"version": "a739ff3f543afbb4a041c16cd0182c8e8d366e70",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/md/dm-verity-fec.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.252",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.202",
"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.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": "5.10.252",
"versionStartIncluding": "4.5",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.202",
"versionStartIncluding": "4.5",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.165",
"versionStartIncluding": "4.5",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.128",
"versionStartIncluding": "4.5",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.75",
"versionStartIncluding": "4.5",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.16",
"versionStartIncluding": "4.5",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.19.6",
"versionStartIncluding": "4.5",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.0",
"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: correctly handle dm_bufio_client_create() failure\n\nIf either of the calls to dm_bufio_client_create() in verity_fec_ctr()\nfails, then dm_bufio_client_destroy() is later called with an ERR_PTR()\nargument. That causes a crash. Fix this."
}
],
"providerMetadata": {
"dateUpdated": "2026-05-11T22:18:22.593Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/6283e49af87a9c121bb01e5a64a7fe5706c210bc"
},
{
"url": "https://git.kernel.org/stable/c/d3e1f1adc8a0289efe2d2cdc90edb8c6ffe0b5ef"
},
{
"url": "https://git.kernel.org/stable/c/5c2217ddb3b7e7ac25f4ebe9061258fc8f1c9167"
},
{
"url": "https://git.kernel.org/stable/c/031f2adc1499b112a39ac316bbab3c80bba16cf2"
},
{
"url": "https://git.kernel.org/stable/c/9b8dc1d327e2928f3da59ced0595d850d31c0936"
},
{
"url": "https://git.kernel.org/stable/c/451cc650e40e8c3222d37877a9e4be0fcaacb9c8"
},
{
"url": "https://git.kernel.org/stable/c/b154a868a3856fb5216c4f82981d8a503832e095"
},
{
"url": "https://git.kernel.org/stable/c/119f4f04186fa4f33ee6bd39af145cdaff1ff17f"
}
],
"title": "dm-verity: correctly handle dm_bufio_client_create() failure",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-43132",
"datePublished": "2026-05-06T11:27:20.213Z",
"dateReserved": "2026-05-01T14:12:55.988Z",
"dateUpdated": "2026-05-11T22:18:22.593Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-74379 (GCVE-0-2026-74379)
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:
dax/kmem: account for partial discontiguous resource upon removal
When dev_dax_kmem_probe() partially succeeds (at least one range is
mapped) but a subsequent range fails request_mem_region() or
add_memory_driver_managed(), the probe silently continues, ultimately
returning success, but with the corresponding range resource NULL'ed out.
dev_dax_kmem_remove() iterates over all dax_device ranges regardless of if
the underlying resource exists. When remove_memory() is called later, it
returns 0 because the memory was never added which causes
dev_dax_kmem_remove() to incorrectly assume the (nonexistent) resource can
be removed and attempts cleanup on a NULL pointer.
Fix this by skipping these ranges altogether, noting that these cases are
considered success, such that the cleanup is still reached when all
actually-added ranges are successfully removed.
References
| URL | Tags | ||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 60e93dc097f7f13a16a7e4b75b8803eb2adbb721 Version: 60e93dc097f7f13a16a7e4b75b8803eb2adbb721 Version: 60e93dc097f7f13a16a7e4b75b8803eb2adbb721 Version: 60e93dc097f7f13a16a7e4b75b8803eb2adbb721 Version: 60e93dc097f7f13a16a7e4b75b8803eb2adbb721 Version: 60e93dc097f7f13a16a7e4b75b8803eb2adbb721 Version: 60e93dc097f7f13a16a7e4b75b8803eb2adbb721 |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/dax/kmem.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "ef4fc53898bd6c4d0119cc6d419ebef7f2560f31",
"status": "affected",
"version": "60e93dc097f7f13a16a7e4b75b8803eb2adbb721",
"versionType": "git"
},
{
"lessThan": "5d3139abb9d1671fa5e42c3d6d8cb3b05479c5bb",
"status": "affected",
"version": "60e93dc097f7f13a16a7e4b75b8803eb2adbb721",
"versionType": "git"
},
{
"lessThan": "d47b0b8a69a13e06afafa54723f3e8c99b0c788f",
"status": "affected",
"version": "60e93dc097f7f13a16a7e4b75b8803eb2adbb721",
"versionType": "git"
},
{
"lessThan": "799e54c510a03a65a57627018a817838d72f35bd",
"status": "affected",
"version": "60e93dc097f7f13a16a7e4b75b8803eb2adbb721",
"versionType": "git"
},
{
"lessThan": "598ed7393a639c7547b28ff3e14db9f1ac37c132",
"status": "affected",
"version": "60e93dc097f7f13a16a7e4b75b8803eb2adbb721",
"versionType": "git"
},
{
"lessThan": "30ea97affbcce236c57287c82dc6ef7a29c63b76",
"status": "affected",
"version": "60e93dc097f7f13a16a7e4b75b8803eb2adbb721",
"versionType": "git"
},
{
"lessThan": "8aa442cfce79e2d69e72fc8e0c0864ac2971149d",
"status": "affected",
"version": "60e93dc097f7f13a16a7e4b75b8803eb2adbb721",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/dax/kmem.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.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.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\ndax/kmem: account for partial discontiguous resource upon removal\n\nWhen dev_dax_kmem_probe() partially succeeds (at least one range is\nmapped) but a subsequent range fails request_mem_region() or\nadd_memory_driver_managed(), the probe silently continues, ultimately\nreturning success, but with the corresponding range resource NULL\u0027ed out.\n\ndev_dax_kmem_remove() iterates over all dax_device ranges regardless of if\nthe underlying resource exists. When remove_memory() is called later, it\nreturns 0 because the memory was never added which causes\ndev_dax_kmem_remove() to incorrectly assume the (nonexistent) resource can\nbe removed and attempts cleanup on a NULL pointer.\n\nFix this by skipping these ranges altogether, noting that these cases are\nconsidered success, such that the cleanup is still reached when all\nactually-added ranges are successfully removed."
}
],
"providerMetadata": {
"dateUpdated": "2026-08-17T05:18:16.387Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/ef4fc53898bd6c4d0119cc6d419ebef7f2560f31"
},
{
"url": "https://git.kernel.org/stable/c/5d3139abb9d1671fa5e42c3d6d8cb3b05479c5bb"
},
{
"url": "https://git.kernel.org/stable/c/d47b0b8a69a13e06afafa54723f3e8c99b0c788f"
},
{
"url": "https://git.kernel.org/stable/c/799e54c510a03a65a57627018a817838d72f35bd"
},
{
"url": "https://git.kernel.org/stable/c/598ed7393a639c7547b28ff3e14db9f1ac37c132"
},
{
"url": "https://git.kernel.org/stable/c/30ea97affbcce236c57287c82dc6ef7a29c63b76"
},
{
"url": "https://git.kernel.org/stable/c/8aa442cfce79e2d69e72fc8e0c0864ac2971149d"
}
],
"title": "dax/kmem: account for partial discontiguous resource upon removal",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-74379",
"datePublished": "2026-08-15T05:58:57.024Z",
"dateReserved": "2026-08-15T05:44:03.890Z",
"dateUpdated": "2026-08-17T05:18:16.387Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-89528 (GCVE-0-2026-89528)
Vulnerability from cvelistv5
Published
2026-09-11 19:44
Modified
2026-10-30 12:32
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
svcrdma: Reject Read lists that exceed the page budget
Individual Read segment lengths are validated at decode time, but
nothing prevents a requester from sending multiple segments whose
cumulative length exceeds the rq_pages array budget. When one
segment fills the page array exactly, the runtime guard in
svc_rdma_build_read_segment() is bypassed because len reaches zero.
A subsequent segment then accesses the NULL sentinel slot at
rq_pages[rq_maxpages], resulting in a NULL pointer dereference during
DMA mapping.
Accumulate pages across all Read segments and reject the message at
decode time when the total would overflow the page budget.
References
| URL | Tags | |||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 026d958b38c628a1b4ced534808945365e2747a5 Version: 026d958b38c628a1b4ced534808945365e2747a5 Version: 026d958b38c628a1b4ced534808945365e2747a5 Version: 026d958b38c628a1b4ced534808945365e2747a5 Version: 026d958b38c628a1b4ced534808945365e2747a5 Version: 026d958b38c628a1b4ced534808945365e2747a5 |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-89528",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "yes"
},
{
"Technical Impact": "partial"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T19:23:02.453234Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T19:26:41.042Z",
"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_recvfrom.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "08aa4162df91880a79be744aaa9570b04d4875c4",
"status": "affected",
"version": "026d958b38c628a1b4ced534808945365e2747a5",
"versionType": "git"
},
{
"lessThan": "beb4e9801f6362436102acc4cc5304b7324f9365",
"status": "affected",
"version": "026d958b38c628a1b4ced534808945365e2747a5",
"versionType": "git"
},
{
"lessThan": "e70fdb121171c3eb0ac34eb545721828cd737717",
"status": "affected",
"version": "026d958b38c628a1b4ced534808945365e2747a5",
"versionType": "git"
},
{
"lessThan": "1a3af2262cb384112ef38632de4690682be528b4",
"status": "affected",
"version": "026d958b38c628a1b4ced534808945365e2747a5",
"versionType": "git"
},
{
"lessThan": "465f511f59a0fa7a80d5d1073c4b24f28ea38f58",
"status": "affected",
"version": "026d958b38c628a1b4ced534808945365e2747a5",
"versionType": "git"
},
{
"lessThan": "0ca487abb3bdf581851664b5db21f364caf57682",
"status": "affected",
"version": "026d958b38c628a1b4ced534808945365e2747a5",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/sunrpc/xprtrdma/svc_rdma_recvfrom.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.191",
"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.1.191",
"versionStartIncluding": "4.13",
"vulnerable": true
},
{
"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.51",
"versionStartIncluding": "4.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.4",
"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\nsvcrdma: Reject Read lists that exceed the page budget\n\nIndividual Read segment lengths are validated at decode time, but\nnothing prevents a requester from sending multiple segments whose\ncumulative length exceeds the rq_pages array budget. When one\nsegment fills the page array exactly, the runtime guard in\nsvc_rdma_build_read_segment() is bypassed because len reaches zero.\nA subsequent segment then accesses the NULL sentinel slot at\nrq_pages[rq_maxpages], resulting in a NULL pointer dereference during\nDMA mapping.\n\nAccumulate pages across all Read segments and reject the message at\ndecode time when the total would overflow the page budget."
}
],
"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 - svcrdma is nfsd\u0027s RPC-over-RDMA server transport; a remote peer reaches svc_rdma_recvfrom() by sending a Call with a Read list on an enabled NFS/RDMA listener over routable RoCEv2 or iWARP.\nAC:L - The attacker fully controls Read-segment lengths in the transport header and can deterministically fill rq_pages exactly, then send a further segment so the len==0 overrun guard is skipped and the NULL sentinel is DMA-mapped, with no race or uncontrollable layout.\nPR:N - xdr_count_read_segments() and svc_rdma_build_read_segment() 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 an over-budget Read list is sufficient; no victim mount, click, or other user action is required.\nS:U - The NULL dereference oops stays in the host kernel that owns nfsd/svcrdma; this is not a VM, IOMMU, or sandbox escape.\nC:N - The fault is a NULL pointer dereference of the rq_pages[rq_maxpages] sentinel during DMA mapping; the access faults immediately and does not disclose kernel memory.\nI:N - The sentinel slot is a guaranteed NULL page pointer, not an out-of-bounds page used as a write destination; DMA mapping aborts on the NULL page without an arbitrary-write or control-flow hijack primitive.\nA:H - DMA mapping the NULL sentinel produces a kernel oops or panic that an unauthenticated NFS/RDMA peer can trigger repeatedly."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-30T12:32:00.323Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/08aa4162df91880a79be744aaa9570b04d4875c4"
},
{
"url": "https://git.kernel.org/stable/c/beb4e9801f6362436102acc4cc5304b7324f9365"
},
{
"url": "https://git.kernel.org/stable/c/e70fdb121171c3eb0ac34eb545721828cd737717"
},
{
"url": "https://git.kernel.org/stable/c/1a3af2262cb384112ef38632de4690682be528b4"
},
{
"url": "https://git.kernel.org/stable/c/465f511f59a0fa7a80d5d1073c4b24f28ea38f58"
},
{
"url": "https://git.kernel.org/stable/c/0ca487abb3bdf581851664b5db21f364caf57682"
}
],
"title": "svcrdma: Reject Read lists that exceed the page budget",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-89528",
"datePublished": "2026-09-11T19:44:08.514Z",
"dateReserved": "2026-09-11T19:38:34.719Z",
"dateUpdated": "2026-10-30T12:32:00.323Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-89558 (GCVE-0-2026-89558)
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:
md/raid10: fix still_degraded being inverted in raid10_sync_request()
Commit fe6a19d40ceb ("md/md-bitmap: merge md_bitmap_start_sync() into
bitmap_operations") converted still_degraded from int to bool, but
inverted the assignment in the loop that checks whether the array will
still be degraded after the current device is recovered:
"still_degraded = 1" became "still_degraded = false".
As a result, recovering a device while another mirror is still missing
calls md_bitmap_start_sync() with degraded == false, which clears bitmap
bits that the still-missing device needs. When that device is re-added,
its bitmap-based recovery finds the bits already cleared and skips every
region written while the array was degraded, so it is marked In_sync
while holding stale data: silent corruption.
Reproducer (raid10 near=2, 4 disks, internal bitmap):
- fail and remove one disk of each mirror pair
- write to the degraded array
- re-add both disks and let recovery finish
- "check" reports mismatch_cnt=262272 after 256 MiB of degraded
writes and file contents differ; the second disk's "recovery"
completes in milliseconds because everything is skipped
The same conversion in raid1 got it right (still_degraded = true).
Restore the correct value.
References
| URL | Tags | |
|---|---|---|
Impacted products
{
"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": "9bb8da6ecb330a5b1ac9b96f1e55f134a7aef1d4",
"status": "affected",
"version": "fe6a19d40ceb44281905485f56dda715e3214e0e",
"versionType": "git"
},
{
"lessThan": "0efabe6229dc683dbf6eeebd0f9fddc7971ed420",
"status": "affected",
"version": "fe6a19d40ceb44281905485f56dda715e3214e0e",
"versionType": "git"
},
{
"lessThan": "00449d752bee9c8787f42ea1bf533a9fb17f9b6b",
"status": "affected",
"version": "fe6a19d40ceb44281905485f56dda715e3214e0e",
"versionType": "git"
},
{
"lessThan": "47f1441b281decde6954a2fa82b4131637d685ac",
"status": "affected",
"version": "fe6a19d40ceb44281905485f56dda715e3214e0e",
"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": "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\nmd/raid10: fix still_degraded being inverted in raid10_sync_request()\n\nCommit fe6a19d40ceb (\"md/md-bitmap: merge md_bitmap_start_sync() into\nbitmap_operations\") converted still_degraded from int to bool, but\ninverted the assignment in the loop that checks whether the array will\nstill be degraded after the current device is recovered:\n\"still_degraded = 1\" became \"still_degraded = false\".\n\nAs a result, recovering a device while another mirror is still missing\ncalls md_bitmap_start_sync() with degraded == false, which clears bitmap\nbits that the still-missing device needs. When that device is re-added,\nits bitmap-based recovery finds the bits already cleared and skips every\nregion written while the array was degraded, so it is marked In_sync\nwhile holding stale data: silent corruption.\n\nReproducer (raid10 near=2, 4 disks, internal bitmap):\n - fail and remove one disk of each mirror pair\n - write to the degraded array\n - re-add both disks and let recovery finish\n - \"check\" reports mismatch_cnt=262272 after 256 MiB of degraded\n writes and file contents differ; the second disk\u0027s \"recovery\"\n completes in milliseconds because everything is skipped\n\nThe same conversion in raid1 got it right (still_degraded = true).\nRestore the correct value."
}
],
"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 - md RAID10 commonly backs NAS/SAN volumes exported over NFS, ksmbd, iSCSI, and NVMe-oF. Remote writes during dual-degraded operation dirty the write-intent bitmap, and after buggy recovery remote reads reach md_submit_bio()-\u003eraid10_read_request()-\u003eread_balance() and are served from the stale In_sync mirror without local shell access.\nAC:L - The inverted still_degraded assignment is deterministic in raid10_sync_request() whenever one member is recovered while another remains missing or Faulty. The documented fail/remove/write/re-add sequence needs no race or attacker-uncontrolled memory layout; write-intent bitmaps on RAID10 are a standard mdadm default, not a rare config.\nPR:N - Client I/O to an exported RAID10 LUN needs no Linux UID or host capability: unauthenticated iSCSI/NVMe-oF and guest NFS/SMB writes reach md_submit_bio() and later read stale mirrors. md ioctls/sysfs fail/re-add use capable(CAP_SYS_ADMIN), but hot-spare recovery and storage-protocol I/O do not, so Privileges Required is None rather than High.\nUI:N - No victim click, mount, or confirmation is required. The attacker or automated storage clients issue ordinary reads and writes; md_check_recovery() and md_start_sync() invoke raid10_sync_request() from hot-spare activation or disk re-add as kernel background work.\nS:U - Silent corruption, stale-data disclosure, and volume unavailability remain inside the host kernel and the md RAID10 array. The bug does not escape a VM, bypass an IOMMU, or otherwise cross a separate security authority.\nC:H - raid10_spare_active() sets In_sync on the re-added member while it still holds stale sectors. read_balance() then returns that disk\u0027s prior contents, including previously freed blocks that the current filesystem layout may assign to other users\u0027 or overwritten files, disclosing unauthorized data.\nI:H - md_bitmap_start_sync() is called with degraded=false, clearing NEEDED bits the still-missing mirror requires. That device is marked In_sync after skipping dirty regions; later read-modify-write of the stale data is mirrored to all copies, permanently corrupting filesystem and user data.\nA:H - Stale filesystem metadata served from the wrongly In_sync mirror drives remount-ro, XFS shutdown, or panic on errors=panic, and skipped bitmap recovery leaves dirty regions unrestored, denying availability of the RAID10 volume and any boot or data filesystems on it."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T08:48:51.700Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/9bb8da6ecb330a5b1ac9b96f1e55f134a7aef1d4"
},
{
"url": "https://git.kernel.org/stable/c/0efabe6229dc683dbf6eeebd0f9fddc7971ed420"
},
{
"url": "https://git.kernel.org/stable/c/00449d752bee9c8787f42ea1bf533a9fb17f9b6b"
},
{
"url": "https://git.kernel.org/stable/c/47f1441b281decde6954a2fa82b4131637d685ac"
}
],
"title": "md/raid10: fix still_degraded being inverted in raid10_sync_request()",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-89558",
"datePublished": "2026-09-11T19:44:30.588Z",
"dateReserved": "2026-09-11T19:38:34.724Z",
"dateUpdated": "2026-10-19T08:48:51.700Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-45865 (GCVE-0-2026-45865)
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:
mctp i2c: initialise event handler read bytes
Set a 0xff value for i2c reads of an mctp-i2c device. Otherwise reads
will return "val" from the i2c bus driver. For i2c-aspeed and
i2c-npcm7xx that is a stack uninitialised u8.
Tested with "i2ctransfer -y 1 r10@0x34" where 0x34 is a mctp-i2c
instance, now it returns all 0xff.
References
| URL | Tags | |||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: f5b8abf9fc3dacd7529d363e26fe8230935d65f8 Version: f5b8abf9fc3dacd7529d363e26fe8230935d65f8 Version: f5b8abf9fc3dacd7529d363e26fe8230935d65f8 Version: f5b8abf9fc3dacd7529d363e26fe8230935d65f8 Version: f5b8abf9fc3dacd7529d363e26fe8230935d65f8 Version: f5b8abf9fc3dacd7529d363e26fe8230935d65f8 |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/net/mctp/mctp-i2c.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "93e01e837e105299f1c259ef71f6e1ec4fe806e3",
"status": "affected",
"version": "f5b8abf9fc3dacd7529d363e26fe8230935d65f8",
"versionType": "git"
},
{
"lessThan": "11f83253244060b5de5eac787f61ae3f3e559d01",
"status": "affected",
"version": "f5b8abf9fc3dacd7529d363e26fe8230935d65f8",
"versionType": "git"
},
{
"lessThan": "fa9861e5c8af7651dddfa8d490aaada17ae33b6c",
"status": "affected",
"version": "f5b8abf9fc3dacd7529d363e26fe8230935d65f8",
"versionType": "git"
},
{
"lessThan": "6ff2ebfef75fbc57d937d8fbe738b967edf2d331",
"status": "affected",
"version": "f5b8abf9fc3dacd7529d363e26fe8230935d65f8",
"versionType": "git"
},
{
"lessThan": "1eeedb310229bfee9dd4d992e5bba33fe1378a8f",
"status": "affected",
"version": "f5b8abf9fc3dacd7529d363e26fe8230935d65f8",
"versionType": "git"
},
{
"lessThan": "2a14e91b6d76639dac70ea170f4384c1ee3cb48d",
"status": "affected",
"version": "f5b8abf9fc3dacd7529d363e26fe8230935d65f8",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/net/mctp/mctp-i2c.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.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.18",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.128",
"versionStartIncluding": "5.18",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.75",
"versionStartIncluding": "5.18",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.14",
"versionStartIncluding": "5.18",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.19.4",
"versionStartIncluding": "5.18",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.0",
"versionStartIncluding": "5.18",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nmctp i2c: initialise event handler read bytes\n\nSet a 0xff value for i2c reads of an mctp-i2c device. Otherwise reads\nwill return \"val\" from the i2c bus driver. For i2c-aspeed and\ni2c-npcm7xx that is a stack uninitialised u8.\n\nTested with \"i2ctransfer -y 1 r10@0x34\" where 0x34 is a mctp-i2c\ninstance, now it returns all 0xff."
}
],
"providerMetadata": {
"dateUpdated": "2026-05-27T12:15:45.082Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/93e01e837e105299f1c259ef71f6e1ec4fe806e3"
},
{
"url": "https://git.kernel.org/stable/c/11f83253244060b5de5eac787f61ae3f3e559d01"
},
{
"url": "https://git.kernel.org/stable/c/fa9861e5c8af7651dddfa8d490aaada17ae33b6c"
},
{
"url": "https://git.kernel.org/stable/c/6ff2ebfef75fbc57d937d8fbe738b967edf2d331"
},
{
"url": "https://git.kernel.org/stable/c/1eeedb310229bfee9dd4d992e5bba33fe1378a8f"
},
{
"url": "https://git.kernel.org/stable/c/2a14e91b6d76639dac70ea170f4384c1ee3cb48d"
}
],
"title": "mctp i2c: initialise event handler read bytes",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-45865",
"datePublished": "2026-05-27T12:15:45.082Z",
"dateReserved": "2026-05-13T15:03:33.080Z",
"dateUpdated": "2026-05-27T12:15:45.082Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-74715 (GCVE-0-2026-74715)
Vulnerability from cvelistv5
Published
2026-08-22 15:33
Modified
2026-10-30 12:30
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
bpf: Fix netns reference imbalance in conntrack kfuncs
The opts argument of the BPF conntrack kfuncs can point to a shared
map value. __bpf_nf_ct_lookup() and __bpf_nf_ct_alloc_entry() read
opts->netns_id separately when acquiring and releasing the network
namespace reference.
The reference imbalance can occur as follows:
CPU 0 CPU 1
read opts->netns_id (-1)
skip get_net_ns_by_id()
write opts->netns_id (id)
read opts->netns_id (id)
put_net(net) /* no matching get */
The reverse transition leaks the reference. Repeating the unmatched put
can destroy a live namespace and crash later users.
The kernel reported:
Oops: general protection fault, probably for non-canonical address
KASAN: null-ptr-deref in range [0x00000000000000e8-0x00000000000000ef]
RIP: 0010:bpf_prog_test_run_xdp+0x52c/0x1700
Call Trace:
__sys_bpf+0x1662/0x50c0
__x64_sys_bpf+0x73/0xb0
do_syscall_64+0xf9/0x540
entry_SYSCALL_64_after_hwframe+0x77/0x7f
Kernel panic - not syncing: Fatal exception
Snapshot every input field of opts with READ_ONCE() before validating or
using it. The netns_id snapshot keeps the namespace get/put pair
balanced, while the other snapshots keep the remaining options from
changing partway through an invocation. The individual reads can still
observe an inconsistent combination during a concurrent update, but each
selected field value remains stable for that invocation.
References
| URL | Tags | |||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: aed8ee7feb44b6537af1e0b4f03365d42928be38 Version: aed8ee7feb44b6537af1e0b4f03365d42928be38 Version: aed8ee7feb44b6537af1e0b4f03365d42928be38 Version: aed8ee7feb44b6537af1e0b4f03365d42928be38 Version: aed8ee7feb44b6537af1e0b4f03365d42928be38 Version: aed8ee7feb44b6537af1e0b4f03365d42928be38 |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-74715",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T19:15:29.946901Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T19:16:11.506Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/netfilter/nf_conntrack_bpf.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "cfde990193135a35637e55f69e83e4ab441e60ab",
"status": "affected",
"version": "aed8ee7feb44b6537af1e0b4f03365d42928be38",
"versionType": "git"
},
{
"lessThan": "fb22bedf0c4f4f05bfa6e4a7ec0fd97bbdff9ce8",
"status": "affected",
"version": "aed8ee7feb44b6537af1e0b4f03365d42928be38",
"versionType": "git"
},
{
"lessThan": "41731d4290400cb898f15f049ae4018d45415e69",
"status": "affected",
"version": "aed8ee7feb44b6537af1e0b4f03365d42928be38",
"versionType": "git"
},
{
"lessThan": "4af94462c0ca2187a02a1a6641020ae888c74d5c",
"status": "affected",
"version": "aed8ee7feb44b6537af1e0b4f03365d42928be38",
"versionType": "git"
},
{
"lessThan": "e5e060eb63d10b41ab60fd955649479d99b38210",
"status": "affected",
"version": "aed8ee7feb44b6537af1e0b4f03365d42928be38",
"versionType": "git"
},
{
"lessThan": "fdeba03fea78407a8c52faa99177c9f7f29f90eb",
"status": "affected",
"version": "aed8ee7feb44b6537af1e0b4f03365d42928be38",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/netfilter/nf_conntrack_bpf.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.191",
"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.1.191",
"versionStartIncluding": "6.0",
"vulnerable": true
},
{
"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.57",
"versionStartIncluding": "6.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.9",
"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\nbpf: Fix netns reference imbalance in conntrack kfuncs\n\nThe opts argument of the BPF conntrack kfuncs can point to a shared\nmap value. __bpf_nf_ct_lookup() and __bpf_nf_ct_alloc_entry() read\nopts-\u003enetns_id separately when acquiring and releasing the network\nnamespace reference.\n\nThe reference imbalance can occur as follows:\n\n CPU 0 CPU 1\n read opts-\u003enetns_id (-1)\n skip get_net_ns_by_id()\n write opts-\u003enetns_id (id)\n read opts-\u003enetns_id (id)\n put_net(net) /* no matching get */\n\nThe reverse transition leaks the reference. Repeating the unmatched put\ncan destroy a live namespace and crash later users.\n\nThe kernel reported:\n\n Oops: general protection fault, probably for non-canonical address\n KASAN: null-ptr-deref in range [0x00000000000000e8-0x00000000000000ef]\n RIP: 0010:bpf_prog_test_run_xdp+0x52c/0x1700\n Call Trace:\n __sys_bpf+0x1662/0x50c0\n __x64_sys_bpf+0x73/0xb0\n do_syscall_64+0xf9/0x540\n entry_SYSCALL_64_after_hwframe+0x77/0x7f\n Kernel panic - not syncing: Fatal exception\n\nSnapshot every input field of opts with READ_ONCE() before validating or\nusing it. The netns_id snapshot keeps the namespace get/put pair\nbalanced, while the other snapshots keep the remaining options from\nchanging partway through an invocation. The individual reads can still\nobserve an inconsistent combination during a concurrent update, but each\nselected field value remains stable for that invocation."
}
],
"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 conntrack kfuncs reached only via the bpf() syscall (load, BPF_PROG_TEST_RUN, or attached XDP/TC programs), not from remote packet handling alone; kernel guidance classifies BPF as Local.\nAC:L - Exploitation needs a race on opts-\u003enetns_id in a shared BPF map value, but the attacker authors the program, drives concurrent bpf_map_update_elem and kfunc calls, and can pin threads to different CPUs to win the race reliably.\nPR:L - Triggering bpf_xdp_ct_lookup/bpf_skb_ct_lookup requires loading XDP or TC-BPF programs, which needs CAP_BPF and CAP_NET_ADMIN; both are obtainable by an unprivileged user inside a user/network namespace via unshare.\nUI:N - No victim interaction is required; the attacker loads their own BPF program, supplies map-backed opts, and runs concurrent test-run or traffic to trigger the refcount imbalance themselves.\nS:U - Impact is premature destruction of a live network namespace and kernel crashes within the same kernel security domain; it does not cross a VM, container-to-host, or IOMMU boundary.\nC:H - Repeated unmatched put_net() can drop a live namespace refcount to zero and free it while still in use, creating a net-namespace use-after-free that can expose freed kernel memory and enable information disclosure.\nI:H - The refcount corruption can destroy active network namespaces and corrupt kernel networking state; such lifetime bugs are memory corruption primitives that can be leveraged for arbitrary kernel modification or control-flow hijacking.\nA:H - The fix commit documents a reproduced general protection fault and kernel panic in bpf_prog_test_run_xdp from a null-ptr-deref after the namespace is destroyed, confirming complete system availability loss."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-30T12:30:22.773Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/cfde990193135a35637e55f69e83e4ab441e60ab"
},
{
"url": "https://git.kernel.org/stable/c/fb22bedf0c4f4f05bfa6e4a7ec0fd97bbdff9ce8"
},
{
"url": "https://git.kernel.org/stable/c/41731d4290400cb898f15f049ae4018d45415e69"
},
{
"url": "https://git.kernel.org/stable/c/4af94462c0ca2187a02a1a6641020ae888c74d5c"
},
{
"url": "https://git.kernel.org/stable/c/e5e060eb63d10b41ab60fd955649479d99b38210"
},
{
"url": "https://git.kernel.org/stable/c/fdeba03fea78407a8c52faa99177c9f7f29f90eb"
}
],
"title": "bpf: Fix netns reference imbalance in conntrack kfuncs",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-74715",
"datePublished": "2026-08-22T15:33:10.262Z",
"dateReserved": "2026-08-15T05:44:03.928Z",
"dateUpdated": "2026-10-30T12:30:22.773Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-98352 (GCVE-0-2026-98352)
Vulnerability from cvelistv5
Published
2026-10-06 08:46
Modified
2026-10-19 09:18
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
RDMA/rtrs-clt: Fix CQ pool leak when connect is interrupted
The client borrows shared CQ credits in the ADDR_RESOLVED handler via
ib_cq_pool_get(), before the peer is connected. create_cm() can return
-ERESTARTSYS from wait_event_interruptible_timeout() without destroying
the CM ID. The init_conns() and stop-and-destroy paths then call
destroy_con_cq_qp() while cq is still NULL (no PUT) and only afterwards
rdma_destroy_id().
CMA serializes the handler against rdma_destroy_id() with handler_mutex,
but that does not order the GET against destroy_con_cq_qp(). If
ADDR_RESOLVED has already passed the DESTROYING check, it can take
con_mutex, GET credits, and then lose the con to kfree. Device
unregister later hits WARN_ON(cq->cqe_used) in ib_cq_pool_cleanup().
Set a per-connection flag under con_mutex before CQ/QP teardown so a
racing ADDR_RESOLVED cannot borrow credits after teardown has begun.
References
| URL | Tags | ||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 3b89e92c2a95a39c38a3808f4528e502a39bd94d Version: 3b89e92c2a95a39c38a3808f4528e502a39bd94d Version: 3b89e92c2a95a39c38a3808f4528e502a39bd94d Version: 3b89e92c2a95a39c38a3808f4528e502a39bd94d Version: 3b89e92c2a95a39c38a3808f4528e502a39bd94d Version: 3b89e92c2a95a39c38a3808f4528e502a39bd94d Version: 3b89e92c2a95a39c38a3808f4528e502a39bd94d |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/infiniband/ulp/rtrs/rtrs-clt.c",
"drivers/infiniband/ulp/rtrs/rtrs-clt.h"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "a82cca40139d9fcae8208901856bd5bb4051f097",
"status": "affected",
"version": "3b89e92c2a95a39c38a3808f4528e502a39bd94d",
"versionType": "git"
},
{
"lessThan": "74c4ed55e61f1b65ddbebc5b635d136461a1c3da",
"status": "affected",
"version": "3b89e92c2a95a39c38a3808f4528e502a39bd94d",
"versionType": "git"
},
{
"lessThan": "6f8020fe7465f49e234a576c04e415e9d08c7878",
"status": "affected",
"version": "3b89e92c2a95a39c38a3808f4528e502a39bd94d",
"versionType": "git"
},
{
"lessThan": "31024e158b45358370a0a14ed96589e6aa62d6cb",
"status": "affected",
"version": "3b89e92c2a95a39c38a3808f4528e502a39bd94d",
"versionType": "git"
},
{
"lessThan": "8f253d5893f991742464b9e7203c43fc08d0aa11",
"status": "affected",
"version": "3b89e92c2a95a39c38a3808f4528e502a39bd94d",
"versionType": "git"
},
{
"lessThan": "bf88ac4867050112a6c819c8d1a7209bf48ef427",
"status": "affected",
"version": "3b89e92c2a95a39c38a3808f4528e502a39bd94d",
"versionType": "git"
},
{
"lessThan": "2ae16aaa78b5edc6e6d0904c84fd9cdfb762bcda",
"status": "affected",
"version": "3b89e92c2a95a39c38a3808f4528e502a39bd94d",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/infiniband/ulp/rtrs/rtrs-clt.c",
"drivers/infiniband/ulp/rtrs/rtrs-clt.h"
],
"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.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.112",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.54",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.8",
"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.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.112",
"versionStartIncluding": "5.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.54",
"versionStartIncluding": "5.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.8",
"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/rtrs-clt: Fix CQ pool leak when connect is interrupted\n\nThe client borrows shared CQ credits in the ADDR_RESOLVED handler via\nib_cq_pool_get(), before the peer is connected. create_cm() can return\n-ERESTARTSYS from wait_event_interruptible_timeout() without destroying\nthe CM ID. The init_conns() and stop-and-destroy paths then call\ndestroy_con_cq_qp() while cq is still NULL (no PUT) and only afterwards\nrdma_destroy_id().\n\nCMA serializes the handler against rdma_destroy_id() with handler_mutex,\nbut that does not order the GET against destroy_con_cq_qp(). If\nADDR_RESOLVED has already passed the DESTROYING check, it can take\ncon_mutex, GET credits, and then lose the con to kfree. Device\nunregister later hits WARN_ON(cq-\u003ecqe_used) in ib_cq_pool_cleanup().\n\nSet a per-connection flag under con_mutex before CQ/QP teardown so a\nracing ADDR_RESOLVED cannot borrow credits after teardown has begun."
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T09:18:03.073Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/a82cca40139d9fcae8208901856bd5bb4051f097"
},
{
"url": "https://git.kernel.org/stable/c/74c4ed55e61f1b65ddbebc5b635d136461a1c3da"
},
{
"url": "https://git.kernel.org/stable/c/6f8020fe7465f49e234a576c04e415e9d08c7878"
},
{
"url": "https://git.kernel.org/stable/c/31024e158b45358370a0a14ed96589e6aa62d6cb"
},
{
"url": "https://git.kernel.org/stable/c/8f253d5893f991742464b9e7203c43fc08d0aa11"
},
{
"url": "https://git.kernel.org/stable/c/bf88ac4867050112a6c819c8d1a7209bf48ef427"
},
{
"url": "https://git.kernel.org/stable/c/2ae16aaa78b5edc6e6d0904c84fd9cdfb762bcda"
}
],
"title": "RDMA/rtrs-clt: Fix CQ pool leak when connect is interrupted",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-98352",
"datePublished": "2026-10-06T08:46:40.151Z",
"dateReserved": "2026-09-25T10:25:14.343Z",
"dateUpdated": "2026-10-19T09:18:03.073Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-90283 (GCVE-0-2026-90283)
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:
hugetlbfs: release subpool on fill_super failure
hugetlbfs_fill_super() allocates a hugepage subpool when size or min_size
mount options are specified. hugepage_new_subpool() may also reserve huge
pages for min_size.
If root dentry creation fails after the subpool is created, the failure
path frees the subpool with kfree(). This bypasses hugepage_put_subpool()
and can leave min_size reservations charged.
Use hugepage_put_subpool() on the failure path, matching the normal
put_super path.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 7ca02d0ae586fe7df59632966a64f3f1a756ef05 Version: 7ca02d0ae586fe7df59632966a64f3f1a756ef05 Version: 7ca02d0ae586fe7df59632966a64f3f1a756ef05 Version: 7ca02d0ae586fe7df59632966a64f3f1a756ef05 Version: 7ca02d0ae586fe7df59632966a64f3f1a756ef05 Version: 7ca02d0ae586fe7df59632966a64f3f1a756ef05 Version: 7ca02d0ae586fe7df59632966a64f3f1a756ef05 Version: 7ca02d0ae586fe7df59632966a64f3f1a756ef05 |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"fs/hugetlbfs/inode.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "f2d6cea221d777fab3ba18f805ba4c17c90e0b8b",
"status": "affected",
"version": "7ca02d0ae586fe7df59632966a64f3f1a756ef05",
"versionType": "git"
},
{
"lessThan": "91c4f3a87862fd86594d5945512decbfa0b1d13d",
"status": "affected",
"version": "7ca02d0ae586fe7df59632966a64f3f1a756ef05",
"versionType": "git"
},
{
"lessThan": "04f0354a4abf6793aa5b3f32e2b019ab206f344d",
"status": "affected",
"version": "7ca02d0ae586fe7df59632966a64f3f1a756ef05",
"versionType": "git"
},
{
"lessThan": "5b7fc7a1ce2a5f2cd8ed80a883157c7108074e0b",
"status": "affected",
"version": "7ca02d0ae586fe7df59632966a64f3f1a756ef05",
"versionType": "git"
},
{
"lessThan": "1d8be4ee81e73fcc52e58f47842d9a2277cfeaaa",
"status": "affected",
"version": "7ca02d0ae586fe7df59632966a64f3f1a756ef05",
"versionType": "git"
},
{
"lessThan": "dfe848cadfde4179a0691da34f4bed36ff7185b5",
"status": "affected",
"version": "7ca02d0ae586fe7df59632966a64f3f1a756ef05",
"versionType": "git"
},
{
"lessThan": "dc2bd517ac0bce4ec7498644bd16b6db502df8e2",
"status": "affected",
"version": "7ca02d0ae586fe7df59632966a64f3f1a756ef05",
"versionType": "git"
},
{
"lessThan": "308ab73e97c87bd0e142b11758faab7f88d82854",
"status": "affected",
"version": "7ca02d0ae586fe7df59632966a64f3f1a756ef05",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"fs/hugetlbfs/inode.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "4.1"
},
{
"lessThan": "4.1",
"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.1",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.221",
"versionStartIncluding": "4.1",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.188",
"versionStartIncluding": "4.1",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.157",
"versionStartIncluding": "4.1",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.110",
"versionStartIncluding": "4.1",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.52",
"versionStartIncluding": "4.1",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.6",
"versionStartIncluding": "4.1",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "4.1",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nhugetlbfs: release subpool on fill_super failure\n\nhugetlbfs_fill_super() allocates a hugepage subpool when size or min_size\nmount options are specified. hugepage_new_subpool() may also reserve huge\npages for min_size.\n\nIf root dentry creation fails after the subpool is created, the failure\npath frees the subpool with kfree(). This bypasses hugepage_put_subpool()\nand can leave min_size reservations charged.\n\nUse hugepage_put_subpool() on the failure path, matching the normal\nput_super path."
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T09:01:01.727Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/f2d6cea221d777fab3ba18f805ba4c17c90e0b8b"
},
{
"url": "https://git.kernel.org/stable/c/91c4f3a87862fd86594d5945512decbfa0b1d13d"
},
{
"url": "https://git.kernel.org/stable/c/04f0354a4abf6793aa5b3f32e2b019ab206f344d"
},
{
"url": "https://git.kernel.org/stable/c/5b7fc7a1ce2a5f2cd8ed80a883157c7108074e0b"
},
{
"url": "https://git.kernel.org/stable/c/1d8be4ee81e73fcc52e58f47842d9a2277cfeaaa"
},
{
"url": "https://git.kernel.org/stable/c/dfe848cadfde4179a0691da34f4bed36ff7185b5"
},
{
"url": "https://git.kernel.org/stable/c/dc2bd517ac0bce4ec7498644bd16b6db502df8e2"
},
{
"url": "https://git.kernel.org/stable/c/308ab73e97c87bd0e142b11758faab7f88d82854"
}
],
"title": "hugetlbfs: release subpool on fill_super failure",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-90283",
"datePublished": "2026-09-17T16:08:13.356Z",
"dateReserved": "2026-09-11T19:38:34.797Z",
"dateUpdated": "2026-10-19T09:01:01.727Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-46028 (GCVE-0-2026-46028)
Vulnerability from cvelistv5
Published
2026-05-27 12:56
Modified
2026-06-14 17:49
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
crypto: algif_aead - snapshot IV for async AEAD requests
AF_ALG AEAD AIO requests currently use the socket-wide IV buffer during
request processing. For async requests, later socket activity can
update that shared state before the original request has fully
completed, which can lead to inconsistent IV handling.
Snapshot the IV into per-request storage when preparing the AEAD
request, so in-flight operations no longer depend on mutable socket
state.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: d887c52d6ae43aeebd249b5f2f1333e60236aa60 Version: d887c52d6ae43aeebd249b5f2f1333e60236aa60 Version: d887c52d6ae43aeebd249b5f2f1333e60236aa60 Version: d887c52d6ae43aeebd249b5f2f1333e60236aa60 Version: d887c52d6ae43aeebd249b5f2f1333e60236aa60 Version: d887c52d6ae43aeebd249b5f2f1333e60236aa60 Version: d887c52d6ae43aeebd249b5f2f1333e60236aa60 Version: d887c52d6ae43aeebd249b5f2f1333e60236aa60 |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"crypto/algif_aead.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "08ea39a556ecd39b33c2b4888861001c6706a62e",
"status": "affected",
"version": "d887c52d6ae43aeebd249b5f2f1333e60236aa60",
"versionType": "git"
},
{
"lessThan": "a920cabdb0b7cf1f4e11a20524253ae5bd09092b",
"status": "affected",
"version": "d887c52d6ae43aeebd249b5f2f1333e60236aa60",
"versionType": "git"
},
{
"lessThan": "fa0fcec9b49d58e71df7ede91ecd86855f608e85",
"status": "affected",
"version": "d887c52d6ae43aeebd249b5f2f1333e60236aa60",
"versionType": "git"
},
{
"lessThan": "c2138c9bd02af19e0b407376140cd5435b0d81da",
"status": "affected",
"version": "d887c52d6ae43aeebd249b5f2f1333e60236aa60",
"versionType": "git"
},
{
"lessThan": "46fdb39e83227b5d39f7c934a0947ea913f13c18",
"status": "affected",
"version": "d887c52d6ae43aeebd249b5f2f1333e60236aa60",
"versionType": "git"
},
{
"lessThan": "ebc235675f24b0e3f8bc92b8419471d42f837d8f",
"status": "affected",
"version": "d887c52d6ae43aeebd249b5f2f1333e60236aa60",
"versionType": "git"
},
{
"lessThan": "3d72f8c6490dc79210b64270740cb2a8619361a4",
"status": "affected",
"version": "d887c52d6ae43aeebd249b5f2f1333e60236aa60",
"versionType": "git"
},
{
"lessThan": "5aa58c3a572b3e3b6c786953339f7978b845cc52",
"status": "affected",
"version": "d887c52d6ae43aeebd249b5f2f1333e60236aa60",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"crypto/algif_aead.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.254",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.204",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.170",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.137",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.85",
"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.254",
"versionStartIncluding": "4.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.204",
"versionStartIncluding": "4.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.170",
"versionStartIncluding": "4.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.137",
"versionStartIncluding": "4.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.85",
"versionStartIncluding": "4.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.27",
"versionStartIncluding": "4.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.0.4",
"versionStartIncluding": "4.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1",
"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: algif_aead - snapshot IV for async AEAD requests\n\nAF_ALG AEAD AIO requests currently use the socket-wide IV buffer during\nrequest processing. For async requests, later socket activity can\nupdate that shared state before the original request has fully\ncompleted, which can lead to inconsistent IV handling.\n\nSnapshot the IV into per-request storage when preparing the AEAD\nrequest, so in-flight operations no longer depend on mutable socket\nstate."
}
],
"providerMetadata": {
"dateUpdated": "2026-06-14T17:49:01.589Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/08ea39a556ecd39b33c2b4888861001c6706a62e"
},
{
"url": "https://git.kernel.org/stable/c/a920cabdb0b7cf1f4e11a20524253ae5bd09092b"
},
{
"url": "https://git.kernel.org/stable/c/fa0fcec9b49d58e71df7ede91ecd86855f608e85"
},
{
"url": "https://git.kernel.org/stable/c/c2138c9bd02af19e0b407376140cd5435b0d81da"
},
{
"url": "https://git.kernel.org/stable/c/46fdb39e83227b5d39f7c934a0947ea913f13c18"
},
{
"url": "https://git.kernel.org/stable/c/ebc235675f24b0e3f8bc92b8419471d42f837d8f"
},
{
"url": "https://git.kernel.org/stable/c/3d72f8c6490dc79210b64270740cb2a8619361a4"
},
{
"url": "https://git.kernel.org/stable/c/5aa58c3a572b3e3b6c786953339f7978b845cc52"
}
],
"title": "crypto: algif_aead - snapshot IV for async AEAD requests",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-46028",
"datePublished": "2026-05-27T12:56:36.847Z",
"dateReserved": "2026-05-13T15:03:33.093Z",
"dateUpdated": "2026-06-14T17:49:01.589Z",
"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-64012 (GCVE-0-2026-64012)
Vulnerability from cvelistv5
Published
2026-07-19 14:56
Modified
2026-07-19 14:56
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
net/sched: sch_sfb: Replace direct dequeue call with peek and qdisc_dequeue_peeked
When sfb has children (eg qfq qdisc) whose peek() callback is
qdisc_peek_dequeued(), we could get a kernel panic. When the parent of such
qdiscs (eg illustrated in patch #3 as tbf) wants to retrieve an skb from
its child (sfb in this case), it will do the following:
1a. do a peek() - and when sensing there's an skb the child can offer, then
- the child in this case(sfb) calls its child's (qfq) peek.
qfq does the right thing and will return the gso_skb queue packet.
Note: if there wasnt a gso_skb entry then qfq will store it there.
1b. invoke a dequeue() on the child (sfb). And herein lies the problem.
- sfb will call the child's dequeue() which will essentially just
try to grab something of qfq's queue.
[ 127.594489][ T453] KASAN: null-ptr-deref in range [0x0000000000000048-0x000000000000004f]
[ 127.594741][ T453] CPU: 2 UID: 0 PID: 453 Comm: ping Not tainted 7.1.0-rc1-00035-gac961974495b-dirty #793 PREEMPT(full)
[ 127.595059][ T453] Hardware name: Bochs Bochs, BIOS Bochs 01/01/2011
[ 127.595254][ T453] RIP: 0010:qfq_dequeue+0x35c/0x1650 [sch_qfq]
[ 127.595461][ T453] Code: 00 fc ff df 80 3c 02 00 0f 85 17 0e 00 00 4c 8d 73 48 48 89 9d b8 02 00 00 48 b8 00 00 00 00 00 fc ff df 4c 89 f2 48 c1 ea 03 <80> 3c 02 00 0f 85 76 0c 00 00 48 b8 00 00 00 00 00 fc ff df 4c 8b
[ 127.596081][ T453] RSP: 0018:ffff88810e5af440 EFLAGS: 00010216
[ 127.596337][ T453] RAX: dffffc0000000000 RBX: 0000000000000000 RCX: dffffc0000000000
[ 127.596623][ T453] RDX: 0000000000000009 RSI: 0000001880000000 RDI: ffff888104fd82b0
[ 127.596917][ T453] RBP: ffff888104fd8000 R08: ffff888104fd8280 R09: 1ffff110211893a3
[ 127.597165][ T453] R10: 1ffff110211893a6 R11: 1ffff110211893a7 R12: 0000001880000000
[ 127.597404][ T453] R13: ffff888104fd82b8 R14: 0000000000000048 R15: 0000000040000000
[ 127.597644][ T453] FS: 00007fc380cbfc40(0000) GS:ffff88816f2a8000(0000) knlGS:0000000000000000
[ 127.597956][ T453] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[ 127.598160][ T453] CR2: 00005610aa9890a8 CR3: 000000010369e000 CR4: 0000000000750ef0
[ 127.598390][ T453] PKRU: 55555554
[ 127.598509][ T453] Call Trace:
[ 127.598629][ T453] <TASK>
[ 127.598718][ T453] ? mark_held_locks+0x40/0x70
[ 127.598890][ T453] ? srso_alias_return_thunk+0x5/0xfbef5
[ 127.599053][ T453] sfb_dequeue+0x88/0x4d0
[ 127.599174][ T453] ? ktime_get+0x137/0x230
[ 127.599328][ T453] ? srso_alias_return_thunk+0x5/0xfbef5
[ 127.599480][ T453] ? qdisc_peek_dequeued+0x7b/0x350 [sch_qfq]
[ 127.599670][ T453] ? srso_alias_return_thunk+0x5/0xfbef5
[ 127.599831][ T453] tbf_dequeue+0x6b1/0x1098 [sch_tbf]
[ 127.599988][ T453] __qdisc_run+0x169/0x1900
The right thing to do in #1b is to grab the skb off gso_skb queue.
This patchset fixes that issue by changing #1b to use qdisc_dequeue_peeked()
method instead.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: e13e02a3c68d899169c78d9a18689bd73491d59a Version: e13e02a3c68d899169c78d9a18689bd73491d59a Version: e13e02a3c68d899169c78d9a18689bd73491d59a Version: e13e02a3c68d899169c78d9a18689bd73491d59a Version: e13e02a3c68d899169c78d9a18689bd73491d59a Version: e13e02a3c68d899169c78d9a18689bd73491d59a Version: e13e02a3c68d899169c78d9a18689bd73491d59a Version: e13e02a3c68d899169c78d9a18689bd73491d59a |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/sched/sch_sfb.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "e5ea51e5f3fbba41d50cd84a530f33bc1c8f4d57",
"status": "affected",
"version": "e13e02a3c68d899169c78d9a18689bd73491d59a",
"versionType": "git"
},
{
"lessThan": "1e70274d3b81de28973bcdbce40a512bcb181ff9",
"status": "affected",
"version": "e13e02a3c68d899169c78d9a18689bd73491d59a",
"versionType": "git"
},
{
"lessThan": "e125f5980b730c67c92a30cf150ec8c3d6777318",
"status": "affected",
"version": "e13e02a3c68d899169c78d9a18689bd73491d59a",
"versionType": "git"
},
{
"lessThan": "6c153d97c100f5b282c424101d8ff63122306997",
"status": "affected",
"version": "e13e02a3c68d899169c78d9a18689bd73491d59a",
"versionType": "git"
},
{
"lessThan": "84bfbfc0c48731bcce74cdf4f9c497547ec525e0",
"status": "affected",
"version": "e13e02a3c68d899169c78d9a18689bd73491d59a",
"versionType": "git"
},
{
"lessThan": "dbc560858da8b77dd9e4ef0cd93d421e0e4d7e0e",
"status": "affected",
"version": "e13e02a3c68d899169c78d9a18689bd73491d59a",
"versionType": "git"
},
{
"lessThan": "9ad3288632c859cf84183199832d822e7a70bdae",
"status": "affected",
"version": "e13e02a3c68d899169c78d9a18689bd73491d59a",
"versionType": "git"
},
{
"lessThan": "1b9bc71153b01dbde8045b9edede4240f4f5520e",
"status": "affected",
"version": "e13e02a3c68d899169c78d9a18689bd73491d59a",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/sched/sch_sfb.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.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.39",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.210",
"versionStartIncluding": "2.6.39",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.176",
"versionStartIncluding": "2.6.39",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.143",
"versionStartIncluding": "2.6.39",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.93",
"versionStartIncluding": "2.6.39",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.35",
"versionStartIncluding": "2.6.39",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.0.12",
"versionStartIncluding": "2.6.39",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1",
"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\nnet/sched: sch_sfb: Replace direct dequeue call with peek and qdisc_dequeue_peeked\n\nWhen sfb has children (eg qfq qdisc) whose peek() callback is\nqdisc_peek_dequeued(), we could get a kernel panic. When the parent of such\nqdiscs (eg illustrated in patch #3 as tbf) wants to retrieve an skb from\nits child (sfb in this case), it will do the following:\n 1a. do a peek() - and when sensing there\u0027s an skb the child can offer, then\n - the child in this case(sfb) calls its child\u0027s (qfq) peek.\n qfq does the right thing and will return the gso_skb queue packet.\n Note: if there wasnt a gso_skb entry then qfq will store it there.\n 1b. invoke a dequeue() on the child (sfb). And herein lies the problem.\n - sfb will call the child\u0027s dequeue() which will essentially just\n try to grab something of qfq\u0027s queue.\n\n[ 127.594489][ T453] KASAN: null-ptr-deref in range [0x0000000000000048-0x000000000000004f]\n[ 127.594741][ T453] CPU: 2 UID: 0 PID: 453 Comm: ping Not tainted 7.1.0-rc1-00035-gac961974495b-dirty #793 PREEMPT(full)\n[ 127.595059][ T453] Hardware name: Bochs Bochs, BIOS Bochs 01/01/2011\n[ 127.595254][ T453] RIP: 0010:qfq_dequeue+0x35c/0x1650 [sch_qfq]\n[ 127.595461][ T453] Code: 00 fc ff df 80 3c 02 00 0f 85 17 0e 00 00 4c 8d 73 48 48 89 9d b8 02 00 00 48 b8 00 00 00 00 00 fc ff df 4c 89 f2 48 c1 ea 03 \u003c80\u003e 3c 02 00 0f 85 76 0c 00 00 48 b8 00 00 00 00 00 fc ff df 4c 8b\n[ 127.596081][ T453] RSP: 0018:ffff88810e5af440 EFLAGS: 00010216\n[ 127.596337][ T453] RAX: dffffc0000000000 RBX: 0000000000000000 RCX: dffffc0000000000\n[ 127.596623][ T453] RDX: 0000000000000009 RSI: 0000001880000000 RDI: ffff888104fd82b0\n[ 127.596917][ T453] RBP: ffff888104fd8000 R08: ffff888104fd8280 R09: 1ffff110211893a3\n[ 127.597165][ T453] R10: 1ffff110211893a6 R11: 1ffff110211893a7 R12: 0000001880000000\n[ 127.597404][ T453] R13: ffff888104fd82b8 R14: 0000000000000048 R15: 0000000040000000\n[ 127.597644][ T453] FS: 00007fc380cbfc40(0000) GS:ffff88816f2a8000(0000) knlGS:0000000000000000\n[ 127.597956][ T453] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033\n[ 127.598160][ T453] CR2: 00005610aa9890a8 CR3: 000000010369e000 CR4: 0000000000750ef0\n[ 127.598390][ T453] PKRU: 55555554\n[ 127.598509][ T453] Call Trace:\n[ 127.598629][ T453] \u003cTASK\u003e\n[ 127.598718][ T453] ? mark_held_locks+0x40/0x70\n[ 127.598890][ T453] ? srso_alias_return_thunk+0x5/0xfbef5\n[ 127.599053][ T453] sfb_dequeue+0x88/0x4d0\n[ 127.599174][ T453] ? ktime_get+0x137/0x230\n[ 127.599328][ T453] ? srso_alias_return_thunk+0x5/0xfbef5\n[ 127.599480][ T453] ? qdisc_peek_dequeued+0x7b/0x350 [sch_qfq]\n[ 127.599670][ T453] ? srso_alias_return_thunk+0x5/0xfbef5\n[ 127.599831][ T453] tbf_dequeue+0x6b1/0x1098 [sch_tbf]\n[ 127.599988][ T453] __qdisc_run+0x169/0x1900\n\nThe right thing to do in #1b is to grab the skb off gso_skb queue.\nThis patchset fixes that issue by changing #1b to use qdisc_dequeue_peeked()\nmethod instead."
}
],
"providerMetadata": {
"dateUpdated": "2026-07-19T14:56:26.608Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/e5ea51e5f3fbba41d50cd84a530f33bc1c8f4d57"
},
{
"url": "https://git.kernel.org/stable/c/1e70274d3b81de28973bcdbce40a512bcb181ff9"
},
{
"url": "https://git.kernel.org/stable/c/e125f5980b730c67c92a30cf150ec8c3d6777318"
},
{
"url": "https://git.kernel.org/stable/c/6c153d97c100f5b282c424101d8ff63122306997"
},
{
"url": "https://git.kernel.org/stable/c/84bfbfc0c48731bcce74cdf4f9c497547ec525e0"
},
{
"url": "https://git.kernel.org/stable/c/dbc560858da8b77dd9e4ef0cd93d421e0e4d7e0e"
},
{
"url": "https://git.kernel.org/stable/c/9ad3288632c859cf84183199832d822e7a70bdae"
},
{
"url": "https://git.kernel.org/stable/c/1b9bc71153b01dbde8045b9edede4240f4f5520e"
}
],
"title": "net/sched: sch_sfb: Replace direct dequeue call with peek and qdisc_dequeue_peeked",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-64012",
"datePublished": "2026-07-19T14:56:26.608Z",
"dateReserved": "2026-07-19T07:54:57.027Z",
"dateUpdated": "2026-07-19T14:56:26.608Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-97415 (GCVE-0-2026-97415)
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:
btrfs: tree-checker: validate names in ROOT_REF and ROOT_BACKREF
ROOT_REF and ROOT_BACKREF items contain a struct btrfs_root_ref followed
by the subvolume name. Several readers assume that this layout is already
valid and then use the on-disk name length directly. A corrupted item can
therefore make those readers address bytes outside the item, and
BTRFS_IOC_GET_SUBVOL_INFO can copy too many bytes into its fixed-size UAPI
name buffer.
Validate ROOT_REF and ROOT_BACKREF items in tree-checker before any reader
uses them. Reject records that do not contain a non-empty name, whose
name_len does not exactly describe the remaining item payload, or whose
name exceeds BTRFS_NAME_LEN.
For BTRFS_IOC_GET_SUBVOL_INFO, copy only the validated on-disk name_len
instead of deriving the copy length from the item size. The ioctl result is
zeroed when allocated. That leaves the existing trailing zero byte
untouched.
References
| URL | Tags | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"fs/btrfs/ioctl.c",
"fs/btrfs/tree-checker.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "1370badf6b823ce3cde39a65f46f9e5dc7b4bf43",
"status": "affected",
"version": "b64ec075bded2b30bcd90af5aa5256d2237c885d",
"versionType": "git"
},
{
"lessThan": "ba6c4fc662853f6662e4db060cf88ee994053e21",
"status": "affected",
"version": "b64ec075bded2b30bcd90af5aa5256d2237c885d",
"versionType": "git"
},
{
"lessThan": "9154542070ca7eadb3c764a882f39a127677854b",
"status": "affected",
"version": "b64ec075bded2b30bcd90af5aa5256d2237c885d",
"versionType": "git"
},
{
"lessThan": "74f577c722c99248d804eca18e7de7c5e47549d7",
"status": "affected",
"version": "b64ec075bded2b30bcd90af5aa5256d2237c885d",
"versionType": "git"
},
{
"lessThan": "0af37c217edf15fa21dac1c40822086df356c6bb",
"status": "affected",
"version": "b64ec075bded2b30bcd90af5aa5256d2237c885d",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"fs/btrfs/ioctl.c",
"fs/btrfs/tree-checker.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.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.18",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.158",
"versionStartIncluding": "4.18",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.111",
"versionStartIncluding": "4.18",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.53",
"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\nbtrfs: tree-checker: validate names in ROOT_REF and ROOT_BACKREF\n\nROOT_REF and ROOT_BACKREF items contain a struct btrfs_root_ref followed\nby the subvolume name. Several readers assume that this layout is already\nvalid and then use the on-disk name length directly. A corrupted item can\ntherefore make those readers address bytes outside the item, and\nBTRFS_IOC_GET_SUBVOL_INFO can copy too many bytes into its fixed-size UAPI\nname buffer.\n\nValidate ROOT_REF and ROOT_BACKREF items in tree-checker before any reader\nuses them. Reject records that do not contain a non-empty name, whose\nname_len does not exactly describe the remaining item payload, or whose\nname exceeds BTRFS_NAME_LEN.\n\nFor BTRFS_IOC_GET_SUBVOL_INFO, copy only the validated on-disk name_len\ninstead of deriving the copy length from the item size. The ioctl result is\nzeroed when allocated. That leaves the existing trailing zero byte\nuntouched."
}
],
"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 on-disk BTRFS_ROOT_BACKREF_KEY item (struct btrfs_root_ref plus the following name) in the tree of tree roots. After that image is mounted, ioctl(BTRFS_IOC_GET_SUBVOL_INFO) reaches _btrfs_ioctl_get_subvol_info() via btrfs_ioctl() and read_extent_buffer()s the item; no SMB/NFS/packet field carries that payload.\nAC:L - check_leaf_item() had no BTRFS_ROOT_REF_KEY/BTRFS_ROOT_BACKREF_KEY case, so btrfs_check_leaf() accepted a ROOT_BACKREF whose item_size filled the leaf (~BTRFS_LEAF_DATA_SIZE). _btrfs_ioctl_get_subvol_info() then copied item_size-sizeof(struct btrfs_root_ref) into name[256] on every ioctl; the attacker fully controls that image.\nPR:L - btrfs_ioctl() dispatches BTRFS_IOC_GET_SUBVOL_INFO and BTRFS_IOC_INO_LOOKUP_USER with no capable() check. btrfs_fs_type has no FS_USERNS_MOUNT, so the severe case is an unprivileged session user whose USB/loop btrfs image is mounted by udisks2/polkit, then opens any fd in that subvolume and issues the ioctl.\nUI:N - The attacker crafts the ROOT_BACKREF, has that local image mounted, and themselves calls BTRFS_IOC_GET_SUBVOL_INFO (or BTRFS_IOC_INO_LOOKUP_USER, which copies the same item via btrfs_search_path_in_tree_user()) on their own fd. Automount of that local/removable image is not a separate victim action once AV is Local.\nS:U - The overflow is in the host kernel\u0027s kzalloc\u0027d btrfs_ioctl_get_subvol_info_args (and ino_lookup_user args) while parsing tree_root ROOT_BACKREF/ROOT_REF items. No KVM/Xen guest-to-host, IOMMU, or sandbox boundary is crossed.\nC:H - _btrfs_ioctl_get_subvol_info() and btrfs_search_path_in_tree_user() call read_extent_buffer() with a length taken from the on-disk item_size into name[BTRFS_VOL_NAME_MAX+1] (256 bytes). That out-of-bounds write of attacker-chosen leaf bytes into adjacent slab is a kernel-memory disclosure primitive.\nI:H - The same unbounded read_extent_buffer() into the 256-byte name[] of the kzalloc\u0027d ioctl args overwrites neighboring heap objects with attacker-controlled ROOT_BACKREF payload, which is sufficient for an arbitrary kernel write and control-flow hijacking.\nA:H - Copying a leaf-sized ROOT_BACKREF past btrfs_ioctl_get_subvol_info_args.name[256], or writing args-\u003ename[item_len]=\u0027\\0\u0027 in btrfs_search_path_in_tree_user() with that huge item_len, oopses or panics the kernel on the slab out-of-bounds access."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-03T10:58:06.771Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/1370badf6b823ce3cde39a65f46f9e5dc7b4bf43"
},
{
"url": "https://git.kernel.org/stable/c/ba6c4fc662853f6662e4db060cf88ee994053e21"
},
{
"url": "https://git.kernel.org/stable/c/9154542070ca7eadb3c764a882f39a127677854b"
},
{
"url": "https://git.kernel.org/stable/c/74f577c722c99248d804eca18e7de7c5e47549d7"
},
{
"url": "https://git.kernel.org/stable/c/0af37c217edf15fa21dac1c40822086df356c6bb"
}
],
"title": "btrfs: tree-checker: validate names in ROOT_REF and ROOT_BACKREF",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-97415",
"datePublished": "2026-09-24T16:03:22.780Z",
"dateReserved": "2026-09-24T14:53:16.867Z",
"dateUpdated": "2026-10-03T10:58:06.771Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-97556 (GCVE-0-2026-97556)
Vulnerability from cvelistv5
Published
2026-09-25 10:21
Modified
2026-10-30 12:37
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
smb: client: avoid leaking refcount when cifs_sb_tlink() fails
cifs_oplock_break() takes over the reference that
cifs_queue_oplock_break() acquired when it queued the work, and drops it
with _cifsFileInfo_put() once the break has been processed.
Only in setups with "-o multiuser", cifs_sb_tlink() may fail, at which
point cifs_oplock_break() returns without putting the file reference,
mirroring the reference leak we already fixed in the companion patch to
cifs_queue_oplock_break().
This would trigger a crash due to busy inodes on the next unmount:
BUG: Dentry ... still in use (1) [unmount of cifs cifs]
VFS: Busy inodes after unmount of cifs (cifs)
Drop the reference on that path as well. Doing so before the out label
mirrors the normal path, which also puts the reference before
cifs_done_oplock_break().
Found by Sashiko code review. The failure path was not exercised at
runtime.
References
| URL | Tags | ||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: b99f490ea87ebcca3a429fd8837067feb56a4c7c Version: 5ee28bcfbaacf289eb25c662a2862542ea6ce6a7 Version: e8f5f849ffce24490eb9449e98312b66c0dba76f Version: e8f5f849ffce24490eb9449e98312b66c0dba76f Version: e8f5f849ffce24490eb9449e98312b66c0dba76f Version: e8f5f849ffce24490eb9449e98312b66c0dba76f Version: e8f5f849ffce24490eb9449e98312b66c0dba76f Version: 6b67a6d2e50634fe127e656147c81915955e9f5e Version: 5.15.128 ≤ Version: 6.1.47 ≤ Version: 6.4.12 ≤ |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"fs/smb/client/file.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "f1fd8a84181b3af03c508e0b02b4877945dd070a",
"status": "affected",
"version": "b99f490ea87ebcca3a429fd8837067feb56a4c7c",
"versionType": "git"
},
{
"lessThan": "55c5f095d4df14271b238f826e1392fda7b6e60e",
"status": "affected",
"version": "5ee28bcfbaacf289eb25c662a2862542ea6ce6a7",
"versionType": "git"
},
{
"lessThan": "e9c5bcc88b8337157e480c85a6d2f326bc265012",
"status": "affected",
"version": "e8f5f849ffce24490eb9449e98312b66c0dba76f",
"versionType": "git"
},
{
"lessThan": "9ec991e148368e3207e98134c509a625097f7693",
"status": "affected",
"version": "e8f5f849ffce24490eb9449e98312b66c0dba76f",
"versionType": "git"
},
{
"lessThan": "dd03fd658ea59821505e0e643b6b7cbdf51c4e1d",
"status": "affected",
"version": "e8f5f849ffce24490eb9449e98312b66c0dba76f",
"versionType": "git"
},
{
"lessThan": "1d1b0f1d812a4011a57bc6c70492c34a2e46c6dd",
"status": "affected",
"version": "e8f5f849ffce24490eb9449e98312b66c0dba76f",
"versionType": "git"
},
{
"lessThan": "23b26f4408ac3f35a482d2e5cf6fc865d4201b71",
"status": "affected",
"version": "e8f5f849ffce24490eb9449e98312b66c0dba76f",
"versionType": "git"
},
{
"status": "affected",
"version": "6b67a6d2e50634fe127e656147c81915955e9f5e",
"versionType": "git"
},
{
"lessThan": "5.15.224",
"status": "affected",
"version": "5.15.128",
"versionType": "semver"
},
{
"lessThan": "6.1.189",
"status": "affected",
"version": "6.1.47",
"versionType": "semver"
},
{
"lessThan": "6.5",
"status": "affected",
"version": "6.4.12",
"versionType": "semver"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"fs/smb/client/file.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": "5.15.*",
"status": "unaffected",
"version": "5.15.224",
"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.15.224",
"versionStartIncluding": "5.15.128",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.189",
"versionStartIncluding": "6.1.47",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.158",
"versionStartIncluding": "6.5",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.111",
"versionStartIncluding": "6.5",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.53",
"versionStartIncluding": "6.5",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.7",
"versionStartIncluding": "6.5",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "6.5",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "6.4.12",
"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 when cifs_sb_tlink() fails\n\ncifs_oplock_break() takes over the reference that\ncifs_queue_oplock_break() acquired when it queued the work, and drops it\nwith _cifsFileInfo_put() once the break has been processed.\n\nOnly in setups with \"-o multiuser\", cifs_sb_tlink() may fail, at which\npoint cifs_oplock_break() returns without putting the file reference,\nmirroring the reference leak we already fixed in the companion patch to\ncifs_queue_oplock_break().\n\nThis would trigger a crash due to busy inodes on the next unmount:\n\n BUG: Dentry ... still in use (1) [unmount of cifs cifs]\n VFS: Busy inodes after unmount of cifs (cifs)\n\nDrop the reference on that path as well. Doing so before the out label\nmirrors the normal path, which also puts the reference before\ncifs_done_oplock_break().\n\nFound by Sashiko code review. The failure path was not exercised at\nruntime."
}
],
"providerMetadata": {
"dateUpdated": "2026-10-30T12:37:21.053Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/f1fd8a84181b3af03c508e0b02b4877945dd070a"
},
{
"url": "https://git.kernel.org/stable/c/55c5f095d4df14271b238f826e1392fda7b6e60e"
},
{
"url": "https://git.kernel.org/stable/c/e9c5bcc88b8337157e480c85a6d2f326bc265012"
},
{
"url": "https://git.kernel.org/stable/c/9ec991e148368e3207e98134c509a625097f7693"
},
{
"url": "https://git.kernel.org/stable/c/dd03fd658ea59821505e0e643b6b7cbdf51c4e1d"
},
{
"url": "https://git.kernel.org/stable/c/1d1b0f1d812a4011a57bc6c70492c34a2e46c6dd"
},
{
"url": "https://git.kernel.org/stable/c/23b26f4408ac3f35a482d2e5cf6fc865d4201b71"
}
],
"title": "smb: client: avoid leaking refcount when cifs_sb_tlink() fails",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-97556",
"datePublished": "2026-09-25T10:21:47.078Z",
"dateReserved": "2026-09-24T16:01:01.154Z",
"dateUpdated": "2026-10-30T12:37:21.053Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-98089 (GCVE-0-2026-98089)
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:
bonding: alb: fix uninitialized transport header access in alb_determine_nd()
alb_determine_nd() uses icmp6_hdr(skb) to inspect ICMPv6 headers.
However, in xmit paths (e.g. packets sent via AF_PACKET / raw sockets
or forwarded packets), skb->transport_header is not guaranteed to be
initialized. While pskb_network_may_pull() ensures the packet data is
linear starting from the network header, it does not set or adjust the
transport header offset.
Dereferencing icmp6_hdr(skb) can therefore access out-of-bounds memory.
Fetch the icmp6hdr directly after ipv6hdr following pskb_network_may_pull(),
and reload ipv6hdr in case pskb_may_pull() reallocated skb->head.
Also remove the unused bond argument from alb_determine_nd().
References
| URL | Tags | |||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 0da8aa00bfcfeb3f4e6537dd8e2001e0727ba549 Version: 0da8aa00bfcfeb3f4e6537dd8e2001e0727ba549 Version: 0da8aa00bfcfeb3f4e6537dd8e2001e0727ba549 Version: 0da8aa00bfcfeb3f4e6537dd8e2001e0727ba549 Version: 0da8aa00bfcfeb3f4e6537dd8e2001e0727ba549 Version: 0da8aa00bfcfeb3f4e6537dd8e2001e0727ba549 |
||
{
"containers": {
"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": "862c8eb6947689c44fe11353755576a3672563a5",
"status": "affected",
"version": "0da8aa00bfcfeb3f4e6537dd8e2001e0727ba549",
"versionType": "git"
},
{
"lessThan": "7adb1bf25b0c5cedfb49b6e82844394d4f3c0d99",
"status": "affected",
"version": "0da8aa00bfcfeb3f4e6537dd8e2001e0727ba549",
"versionType": "git"
},
{
"lessThan": "e39cf90bd856443542b97933289749fca07476bf",
"status": "affected",
"version": "0da8aa00bfcfeb3f4e6537dd8e2001e0727ba549",
"versionType": "git"
},
{
"lessThan": "27314f96d29b54e815e7a9b84c3273f1895e68e2",
"status": "affected",
"version": "0da8aa00bfcfeb3f4e6537dd8e2001e0727ba549",
"versionType": "git"
},
{
"lessThan": "3b178894931a268c09126a5b53630f343e10e296",
"status": "affected",
"version": "0da8aa00bfcfeb3f4e6537dd8e2001e0727ba549",
"versionType": "git"
},
{
"lessThan": "70f3995830d3f1e79faa14eb0605914f778feca9",
"status": "affected",
"version": "0da8aa00bfcfeb3f4e6537dd8e2001e0727ba549",
"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": "5.18"
},
{
"lessThan": "5.18",
"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.18",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.158",
"versionStartIncluding": "5.18",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.111",
"versionStartIncluding": "5.18",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.53",
"versionStartIncluding": "5.18",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.7",
"versionStartIncluding": "5.18",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "5.18",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nbonding: alb: fix uninitialized transport header access in alb_determine_nd()\n\nalb_determine_nd() uses icmp6_hdr(skb) to inspect ICMPv6 headers.\nHowever, in xmit paths (e.g. packets sent via AF_PACKET / raw sockets\nor forwarded packets), skb-\u003etransport_header is not guaranteed to be\ninitialized. While pskb_network_may_pull() ensures the packet data is\nlinear starting from the network header, it does not set or adjust the\ntransport header offset.\n\nDereferencing icmp6_hdr(skb) can therefore access out-of-bounds memory.\n\nFetch the icmp6hdr directly after ipv6hdr following pskb_network_may_pull(),\nand reload ipv6hdr in case pskb_may_pull() reallocated skb-\u003ehead.\nAlso remove the unused bond argument from alb_determine_nd()."
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T09:13:41.394Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/862c8eb6947689c44fe11353755576a3672563a5"
},
{
"url": "https://git.kernel.org/stable/c/7adb1bf25b0c5cedfb49b6e82844394d4f3c0d99"
},
{
"url": "https://git.kernel.org/stable/c/e39cf90bd856443542b97933289749fca07476bf"
},
{
"url": "https://git.kernel.org/stable/c/27314f96d29b54e815e7a9b84c3273f1895e68e2"
},
{
"url": "https://git.kernel.org/stable/c/3b178894931a268c09126a5b53630f343e10e296"
},
{
"url": "https://git.kernel.org/stable/c/70f3995830d3f1e79faa14eb0605914f778feca9"
}
],
"title": "bonding: alb: fix uninitialized transport header access in alb_determine_nd()",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-98089",
"datePublished": "2026-09-25T10:24:22.877Z",
"dateReserved": "2026-09-25T10:19:56.075Z",
"dateUpdated": "2026-10-19T09:13:41.394Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-98367 (GCVE-0-2026-98367)
Vulnerability from cvelistv5
Published
2026-10-06 08:46
Modified
2026-10-19 09:18
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
RDMA/siw: Clear association under lock if siw_qp_modify fails in siw_accept
We need to clear cep before release state_lock as siw_qp_llp_close and
siw_qp_modify->siw_qp_llp_close did.
Otherwise if siw_qp_modify() fails in siw_accept(), the QP's state_lock
is released before the error path cleanup. A concurrent ibv_modify_qp()
transitioning the QP to ERROR can race in this window:
siw_accept() ibv_modify_qp(ERROR)
---------------------- ----------------------
siw_qp_modify() fails
up_write(&qp->state_lock)
down_write(&qp->state_lock)
nextstate_from_idle():
if (qp->cep)
siw_cep_put(qp->cep) <- frees cep
qp->cep = NULL
goto error
cep->qp = NULL <- UAF
Clear qp->cep and drop the association reference taken by siw_cep_get(),
all under the write lock held from the initial down_write(&qp->state_lock).
Thread B therefore sees qp->cep == NULL, skips its own put, and cannot free
the cep before siw_accept() is done with it.
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": "f11e09fe2fc3a11ccdf8f932b68181b0bb1d2078",
"status": "affected",
"version": "6c52fdc244b5ccc468006fd65a504d4ee33743c7",
"versionType": "git"
},
{
"lessThan": "e3f039082856adab7e195dea1af45d93dd6a3f1c",
"status": "affected",
"version": "6c52fdc244b5ccc468006fd65a504d4ee33743c7",
"versionType": "git"
},
{
"lessThan": "ad50d19f3d1ce052b3a146143581e930a1efb33e",
"status": "affected",
"version": "6c52fdc244b5ccc468006fd65a504d4ee33743c7",
"versionType": "git"
},
{
"lessThan": "030306bbb9273af80f14d7af20129661964cd9a7",
"status": "affected",
"version": "6c52fdc244b5ccc468006fd65a504d4ee33743c7",
"versionType": "git"
},
{
"lessThan": "df2584750314336edcbcc21fb388e04b260f35b7",
"status": "affected",
"version": "6c52fdc244b5ccc468006fd65a504d4ee33743c7",
"versionType": "git"
},
{
"lessThan": "9dcc0f4e488b70cff81e0e5717a498c929cf5de3",
"status": "affected",
"version": "6c52fdc244b5ccc468006fd65a504d4ee33743c7",
"versionType": "git"
},
{
"lessThan": "bfdc744bf20ae4c3ef2e470298de5237c5c9a13c",
"status": "affected",
"version": "6c52fdc244b5ccc468006fd65a504d4ee33743c7",
"versionType": "git"
},
{
"lessThan": "32cd87f54dd1070020e664ccb0312a9f0fea79b4",
"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.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.112",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.54",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.8",
"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.3",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.222",
"versionStartIncluding": "5.3",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.189",
"versionStartIncluding": "5.3",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.158",
"versionStartIncluding": "5.3",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.112",
"versionStartIncluding": "5.3",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.54",
"versionStartIncluding": "5.3",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.8",
"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: Clear association under lock if siw_qp_modify fails in siw_accept\n\nWe need to clear cep before release state_lock as siw_qp_llp_close and\nsiw_qp_modify-\u003esiw_qp_llp_close did.\n\nOtherwise if siw_qp_modify() fails in siw_accept(), the QP\u0027s state_lock\nis released before the error path cleanup. A concurrent ibv_modify_qp()\ntransitioning the QP to ERROR can race in this window:\n\n siw_accept() ibv_modify_qp(ERROR)\n ---------------------- ----------------------\n siw_qp_modify() fails\n up_write(\u0026qp-\u003estate_lock)\n down_write(\u0026qp-\u003estate_lock)\n nextstate_from_idle():\n\t\t\t\t if (qp-\u003ecep)\n siw_cep_put(qp-\u003ecep) \u003c- frees cep\n qp-\u003ecep = NULL\n goto error\n cep-\u003eqp = NULL \u003c- UAF\n\nClear qp-\u003ecep and drop the association reference taken by siw_cep_get(),\nall under the write lock held from the initial down_write(\u0026qp-\u003estate_lock).\nThread B therefore sees qp-\u003ecep == NULL, skips its own put, and cannot free\nthe cep before siw_accept() is done with 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 - siw_accept() is called through the ops.iw_accept hook from iw_cm_accept(), which a local process reaches with the RDMA_USER_CM_CMD_ACCEPT command on /dev/infiniband/rdma_cm. The racing side is the uverbs MODIFY_QP command (ibv_modify_qp to ERROR), also local. No wire message carries data that causes the siw_qp_modify() failure, so the attack is local.\nAC:L - The attacker does control both racing threads, since it owns the QP and issues the accept and modify_qp calls itself. Even so, AC is High: in siw_accept the only way siw_qp_modify() can fail is siw_qp_readq_init() hitting a vcalloc() ENOMEM, and IRD/ORD are capped at 128, so the allocations are small. That failure depends on system-wide memory exhaustion, which the attacker cannot produce on demand.\nPR:L - Running rdma_accept and ibv_modify_qp on a QP the user created on an existing siw device needs only ordinary access to the rdma_cm and uverbs device nodes. Creating the siw link through RDMA_NLDEV_CMD_NEWLINK is admin-only, but no privilege is needed to use a device that already exists.\nUI:N - The attacker drives both siw_accept() and the concurrent ibv_modify_qp(ERROR) through their own rdma_cm and verbs calls, and the connecting peer can be the attacker over loopback. No other user has to do anything.\nS:U - The freed siw_cep and the writes into it both stay inside the kernel\u0027s own security authority. No VM, IOMMU or sandbox boundary is crossed.\nC:H - siw_qp_nextstate_from_idle() frees the siw_cep by calling siw_cep_put(qp-\u003ecep). The error path in siw_accept() then keeps using that freed object: it writes cep-\u003eqp = NULL, runs siw_free_cm_id, and calls siw_cep_set_free_and_put. A reclaimed object in that slot gives the attacker a use-after-free primitive that can be built into a kernel memory leak.\nI:H - After the free, the error path writes cep-\u003eqp = NULL and does kref and lock operations on the dead siw_cep. That corrupts whatever object has taken over the slot, and this kind of UAF write can be used to corrupt kernel data or hijack control flow.\nA:H - A kref_put or lock operation on the freed siw_cep in siw_cep_set_free_and_put can corrupt the slab or oops the kernel, and that crashes the host."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T09:18:19.262Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/f11e09fe2fc3a11ccdf8f932b68181b0bb1d2078"
},
{
"url": "https://git.kernel.org/stable/c/e3f039082856adab7e195dea1af45d93dd6a3f1c"
},
{
"url": "https://git.kernel.org/stable/c/ad50d19f3d1ce052b3a146143581e930a1efb33e"
},
{
"url": "https://git.kernel.org/stable/c/030306bbb9273af80f14d7af20129661964cd9a7"
},
{
"url": "https://git.kernel.org/stable/c/df2584750314336edcbcc21fb388e04b260f35b7"
},
{
"url": "https://git.kernel.org/stable/c/9dcc0f4e488b70cff81e0e5717a498c929cf5de3"
},
{
"url": "https://git.kernel.org/stable/c/bfdc744bf20ae4c3ef2e470298de5237c5c9a13c"
},
{
"url": "https://git.kernel.org/stable/c/32cd87f54dd1070020e664ccb0312a9f0fea79b4"
}
],
"title": "RDMA/siw: Clear association under lock if siw_qp_modify fails in siw_accept",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-98367",
"datePublished": "2026-10-06T08:46:52.452Z",
"dateReserved": "2026-09-25T10:25:14.344Z",
"dateUpdated": "2026-10-19T09:18:19.262Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-68241 (GCVE-0-2026-68241)
Vulnerability from cvelistv5
Published
2026-08-10 12:01
Modified
2026-10-30 12:28
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
drm/i915/mst: limit DP MST ESI service loop
The loop in intel_dp_check_mst_status() keeps servicing interrupts
originating from the sink without bound. Add an upper bound to the new
interrupts occurring during interrupt processing to not get stuck on
potentially stuck sink devices. Use arbitrary 32 tries to clear incoming
interrupts in one go.
Discovered using AI-assisted static analysis confirmed by Intel Product
Security.
Note: The condition likely pre-dates the commit in the Fixes: tag, but
this is about as far back as a backport has any chance of
succeeding. Before that, the retry had a goto.
(cherry picked from commit b4ea5272133059acb493cc36599071a9e852ec2e)
References
| URL | Tags | |||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 3c0ec2c2d5948356a22c8f1c08a8087b12a303e7 Version: 3c0ec2c2d5948356a22c8f1c08a8087b12a303e7 Version: 3c0ec2c2d5948356a22c8f1c08a8087b12a303e7 Version: 3c0ec2c2d5948356a22c8f1c08a8087b12a303e7 Version: 3c0ec2c2d5948356a22c8f1c08a8087b12a303e7 Version: 3c0ec2c2d5948356a22c8f1c08a8087b12a303e7 |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/gpu/drm/i915/display/intel_dp.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "76a1817d31f1a01fc5d9de63cb219e2c10d40400",
"status": "affected",
"version": "3c0ec2c2d5948356a22c8f1c08a8087b12a303e7",
"versionType": "git"
},
{
"lessThan": "fae63319ad397666a9c56a17ea1047d2bf9a1e25",
"status": "affected",
"version": "3c0ec2c2d5948356a22c8f1c08a8087b12a303e7",
"versionType": "git"
},
{
"lessThan": "02ceba559412751106c0cfa5cbdb80db50303083",
"status": "affected",
"version": "3c0ec2c2d5948356a22c8f1c08a8087b12a303e7",
"versionType": "git"
},
{
"lessThan": "e3bcd3bf7eeca9570b9fa0b2f8a602c7bcc6b0d0",
"status": "affected",
"version": "3c0ec2c2d5948356a22c8f1c08a8087b12a303e7",
"versionType": "git"
},
{
"lessThan": "9061fbf2230b6fcef042a6f637beae57c2fc93a5",
"status": "affected",
"version": "3c0ec2c2d5948356a22c8f1c08a8087b12a303e7",
"versionType": "git"
},
{
"lessThan": "005771c18c5b2c98cb4e7517661aea460990fd3f",
"status": "affected",
"version": "3c0ec2c2d5948356a22c8f1c08a8087b12a303e7",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/gpu/drm/i915/display/intel_dp.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": "6.1.*",
"status": "unaffected",
"version": "6.1.191",
"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.1.191",
"versionStartIncluding": "5.8",
"vulnerable": true
},
{
"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.114",
"versionStartIncluding": "5.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.42",
"versionStartIncluding": "5.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.6",
"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\ndrm/i915/mst: limit DP MST ESI service loop\n\nThe loop in intel_dp_check_mst_status() keeps servicing interrupts\noriginating from the sink without bound. Add an upper bound to the new\ninterrupts occurring during interrupt processing to not get stuck on\npotentially stuck sink devices. Use arbitrary 32 tries to clear incoming\ninterrupts in one go.\n\nDiscovered using AI-assisted static analysis confirmed by Intel Product\nSecurity.\n\nNote: The condition likely pre-dates the commit in the Fixes: tag, but\nthis is about as far back as a backport has any chance of\nsucceeding. Before that, the retry had a goto.\n\n(cherry picked from commit b4ea5272133059acb493cc36599071a9e852ec2e)"
}
],
"providerMetadata": {
"dateUpdated": "2026-10-30T12:28:12.656Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/76a1817d31f1a01fc5d9de63cb219e2c10d40400"
},
{
"url": "https://git.kernel.org/stable/c/fae63319ad397666a9c56a17ea1047d2bf9a1e25"
},
{
"url": "https://git.kernel.org/stable/c/02ceba559412751106c0cfa5cbdb80db50303083"
},
{
"url": "https://git.kernel.org/stable/c/e3bcd3bf7eeca9570b9fa0b2f8a602c7bcc6b0d0"
},
{
"url": "https://git.kernel.org/stable/c/9061fbf2230b6fcef042a6f637beae57c2fc93a5"
},
{
"url": "https://git.kernel.org/stable/c/005771c18c5b2c98cb4e7517661aea460990fd3f"
}
],
"title": "drm/i915/mst: limit DP MST ESI service loop",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-68241",
"datePublished": "2026-08-10T12:01:07.103Z",
"dateReserved": "2026-07-30T09:28:09.377Z",
"dateUpdated": "2026-10-30T12:28:12.656Z",
"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-89755 (GCVE-0-2026-89755)
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:
mm/migrate_device: clear stale mapping after freeing swapcache
__migrate_device_pages() reads the folio mapping before calling
folio_free_swap(). When folio_free_swap() succeeds, the folio is removed
from the swap cache, but the saved mapping still points to swap_space.
Passing the stale mapping to folio_migrate_mapping() makes it use the
mapped-folio path for a folio that is no longer in swapcache. It can then
operate on swap_space.i_pages with invalid reference accounting,
eventually triggering a folio reference count BUG.
After a successful split, nr still contains the number of pages in the
original large folio, although each resulting page is now a separate
order-0 folio. Reset nr to 1 so each split folio is processed separately,
including its own swapcache removal and mapping lookup.
Refresh the saved mapping after folio_free_swap() so the current folio
state is used during migration.
References
| URL | Tags | |
|---|---|---|
Impacted products
{
"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": "92db780dd644590c751246187e1229d5ac2e5544",
"status": "affected",
"version": "df263d9a7dffee94ca5391120ee3b0587efa07f1",
"versionType": "git"
},
{
"lessThan": "4fa91f7bbc4135240b67daac03fc17d9e180a331",
"status": "affected",
"version": "df263d9a7dffee94ca5391120ee3b0587efa07f1",
"versionType": "git"
},
{
"lessThan": "8ffedc6573a665cdc31ebe47eae7b32b78d0df83",
"status": "affected",
"version": "df263d9a7dffee94ca5391120ee3b0587efa07f1",
"versionType": "git"
},
{
"lessThan": "34a00895d032a414830d41106a09329ae6c251b6",
"status": "affected",
"version": "df263d9a7dffee94ca5391120ee3b0587efa07f1",
"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": "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.111",
"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",
"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": "7.2.4",
"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\nmm/migrate_device: clear stale mapping after freeing swapcache\n\n__migrate_device_pages() reads the folio mapping before calling\nfolio_free_swap(). When folio_free_swap() succeeds, the folio is removed\nfrom the swap cache, but the saved mapping still points to swap_space.\n\nPassing the stale mapping to folio_migrate_mapping() makes it use the\nmapped-folio path for a folio that is no longer in swapcache. It can then\noperate on swap_space.i_pages with invalid reference accounting,\neventually triggering a folio reference count BUG.\n\nAfter a successful split, nr still contains the number of pages in the\noriginal large folio, although each resulting page is now a separate\norder-0 folio. Reset nr to 1 so each split folio is processed separately,\nincluding its own swapcache removal and mapping lookup.\n\nRefresh the saved mapping after folio_free_swap() so the current folio\nstate is used during migration."
}
],
"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 __migrate_device_pages() on the migrate-to-device path (migrate_vma_pages), reached from local GPU HMM/SVM ioctls such as AMDKFD_IOC_SVM, DRM_NOUVEAU_SVM_BIND (DRM_RENDER_ALLOW), and Intel Xe drm_pagemap_migrate_to_devmem, not from network packets.\nAC:L - The attacker controls both preconditions: anonymous pages in their VMA, optionally kept in swapcache via pageout/swapin, then a migrate-to-VRAM ioctl. folio_free_swap() succeeds on locked mapped swapcache folios with swap count 0, which the attacker can arrange; no victim timing or uncontrollable layout is required.\nPR:L - Nouveau SVM bind is DRM_RENDER_ALLOW and KFD SVM/Xe pagemap paths have no capable() or DRM-master check. An unprivileged local user with typical render/video-group access to /dev/dri/renderD* or /dev/kfd on GPU systems can trigger the migration.\nUI:N - The attacker drives the whole sequence in their own process (anonymous mmap, optional madvise pageout, and GPU SVM migrate-to-device ioctls). No action by another user or administrator is required.\nS:U - Impact is host-kernel swap-cache and folio-refcount corruption, i.e. standard local privilege escalation in the same security authority, not a KVM/Xen guest-to-host escape or IOMMU/DMA boundary bypass.\nC:H - After folio_free_swap() the stale mapping still points at swap_space, so folio_migrate_mapping() xas_store()s a device-private folio into the global swap cache and underflows the source refcount; that UAF/type confusion of swap_space.i_pages yields an arbitrary kernel read primitive.\nI:H - The same xarray insertion and refcount underflow corrupt shared MM metadata (swap cache and folio references), which is exploitable for heap reuse and arbitrary kernel writes or control-flow hijack, not a bounded integrity change.\nA:H - Invalid reference accounting on swap_space.i_pages is documented to hit a folio reference-count BUG, and the resulting underflow/UAF also causes kernel oops or panic even without a completed exploit."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-21T12:48:34.692Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/92db780dd644590c751246187e1229d5ac2e5544"
},
{
"url": "https://git.kernel.org/stable/c/4fa91f7bbc4135240b67daac03fc17d9e180a331"
},
{
"url": "https://git.kernel.org/stable/c/8ffedc6573a665cdc31ebe47eae7b32b78d0df83"
},
{
"url": "https://git.kernel.org/stable/c/34a00895d032a414830d41106a09329ae6c251b6"
}
],
"title": "mm/migrate_device: clear stale mapping after freeing swapcache",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-89755",
"datePublished": "2026-09-11T19:46:58.295Z",
"dateReserved": "2026-09-11T19:38:34.763Z",
"dateUpdated": "2026-10-21T12:48:34.692Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-98357 (GCVE-0-2026-98357)
Vulnerability from cvelistv5
Published
2026-10-06 08:46
Modified
2026-10-19 09:18
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
IB/isert: wait for deferred control PDU completions before releasing the connection
isert_send_done() hands ISTATE_SEND_TASKMGTRSP, ISTATE_SEND_REJECT and
ISTATE_SEND_TEXTRSP completions off to isert_comp_wq and returns. The work
item then runs isert_completion_put() -> isert_put_cmd(), which reads
isert_conn->conn and takes conn->cmd_lock.
Nothing orders that work item against teardown. isert_wait_conn() queues
isert_release_work, which frees isert_conn, and iscsit_close_connection()
frees the iscsit_conn right after it returns, so the queued work can run
against freed memory.
Count the deferred control PDU completions per connection and let
isert_wait_conn() wait for them before the release work is queued.
ISTATE_SEND_LOGOUTRSP is deliberately not counted: that branch runs
iscsit_logout_post_handler(), which ends up waiting for
conn->conn_wait_comp, and that completion is only sent by
iscsit_close_connection() after it has called iscsit_wait_conn().
Waiting for it here would deadlock. Its wait stays the existing
isert_wait4logout().
The splat below is from a kernel with tracing printk()s and an msleep(200)
injected into isert_do_control_comp() to widen the window:
BUG: KASAN: slab-use-after-free in isert_put_cmd+0x53d/0x620
Read of size 8 at addr ffff8881054f1038 by task kworker/u17:1/182
CPU: 0 UID: 0 PID: 182 Comm: kworker/u17:1 Tainted: G B 7.2.0-rc5-TWIDE-gb8babf08acc7 #1 PREEMPT(lazy)
Tainted: [B]=BAD_PAGE
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: isert_comp_wq isert_do_control_comp
Call Trace:
<TASK>
dump_stack_lvl+0x53/0x70
print_report+0xd0/0x630
? __pfx__raw_spin_lock_irqsave+0x10/0x10
? _raw_spin_unlock_irqrestore+0x3e/0x70
? isert_put_cmd+0x53d/0x620
kasan_report+0xce/0x100
? isert_put_cmd+0x53d/0x620
isert_put_cmd+0x53d/0x620
? isert_completion_put+0x305/0x330
? isert_do_control_comp+0x2ef/0x310
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>
Allocated by task 48:
kasan_save_stack+0x33/0x60
kasan_save_track+0x14/0x30
__kasan_kmalloc+0x8f/0xa0
__kmalloc_cache_noprof+0x158/0x370
isert_cma_handler+0x1e3/0x2ae0
cma_cm_event_handler+0x3e/0x240
cma_ib_req_handler+0x17d9/0x4490
cm_process_work+0x41/0x330
cm_work_handler+0x5727/0xc160
process_one_work+0x633/0x1030
worker_thread+0x45b/0xd10
kthread+0x2c6/0x3b0
ret_from_fork+0x36e/0x5a0
ret_from_fork_asm+0x1a/0x30
Freed by task 184:
kasan_save_stack+0x33/0x60
kasan_save_track+0x14/0x30
kasan_save_free_info+0x3b/0x60
__kasan_slab_free+0x43/0x70
kfree+0x121/0x380
iscsit_close_connection+0x7cf/0x1e60
iscsit_take_action_for_connection_exit+0x1b6/0x360
iscsi_target_tx_thread+0x472/0x690
kthread+0x2c6/0x3b0
ret_from_fork+0x36e/0x5a0
ret_from_fork_asm+0x1a/0x30
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": "f5613acbe2e346d5c466ef0bd264fca936b69f82",
"status": "affected",
"version": "b8d26b3be8b33682cf163274ed07479a70554633",
"versionType": "git"
},
{
"lessThan": "ccdb1523f12bc8a9646de65055d1aafed9e9bcc6",
"status": "affected",
"version": "b8d26b3be8b33682cf163274ed07479a70554633",
"versionType": "git"
},
{
"lessThan": "0e230917670c6e6fe3243abfa11299fcbe05b1f4",
"status": "affected",
"version": "b8d26b3be8b33682cf163274ed07479a70554633",
"versionType": "git"
},
{
"lessThan": "505b242d9351690d1385bbe508ab4666f60363ce",
"status": "affected",
"version": "b8d26b3be8b33682cf163274ed07479a70554633",
"versionType": "git"
},
{
"lessThan": "7edb8a88d6c76237c8b4435765bee1009e26a50a",
"status": "affected",
"version": "b8d26b3be8b33682cf163274ed07479a70554633",
"versionType": "git"
},
{
"lessThan": "b96b8b3e41c308f606ffd10cfef1a7b9f97414cd",
"status": "affected",
"version": "b8d26b3be8b33682cf163274ed07479a70554633",
"versionType": "git"
},
{
"lessThan": "7908fbc597a694bbd99bfb59ece73bc3daded68e",
"status": "affected",
"version": "b8d26b3be8b33682cf163274ed07479a70554633",
"versionType": "git"
},
{
"lessThan": "a8fe3dfce8c0d8a76dc3d8486a5bff5feebe156f",
"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.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.112",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.54",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.8",
"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.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.222",
"versionStartIncluding": "3.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.189",
"versionStartIncluding": "3.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.158",
"versionStartIncluding": "3.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.112",
"versionStartIncluding": "3.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.54",
"versionStartIncluding": "3.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.8",
"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: wait for deferred control PDU completions before releasing the connection\n\nisert_send_done() hands ISTATE_SEND_TASKMGTRSP, ISTATE_SEND_REJECT and\nISTATE_SEND_TEXTRSP completions off to isert_comp_wq and returns. The work\nitem then runs isert_completion_put() -\u003e isert_put_cmd(), which reads\nisert_conn-\u003econn and takes conn-\u003ecmd_lock.\n\nNothing orders that work item against teardown. isert_wait_conn() queues\nisert_release_work, which frees isert_conn, and iscsit_close_connection()\nfrees the iscsit_conn right after it returns, so the queued work can run\nagainst freed memory.\n\nCount the deferred control PDU completions per connection and let\nisert_wait_conn() wait for them before the release work is queued.\n\nISTATE_SEND_LOGOUTRSP is deliberately not counted: that branch runs\niscsit_logout_post_handler(), which ends up waiting for\nconn-\u003econn_wait_comp, and that completion is only sent by\niscsit_close_connection() after it has called iscsit_wait_conn().\nWaiting for it here would deadlock. Its wait stays the existing\nisert_wait4logout().\n\nThe splat below is from a kernel with tracing printk()s and an msleep(200)\ninjected into isert_do_control_comp() to widen the window:\n\n BUG: KASAN: slab-use-after-free in isert_put_cmd+0x53d/0x620\n Read of size 8 at addr ffff8881054f1038 by task kworker/u17:1/182\n\n CPU: 0 UID: 0 PID: 182 Comm: kworker/u17:1 Tainted: G B 7.2.0-rc5-TWIDE-gb8babf08acc7 #1 PREEMPT(lazy)\n Tainted: [B]=BAD_PAGE\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: isert_comp_wq isert_do_control_comp\n Call Trace:\n \u003cTASK\u003e\n dump_stack_lvl+0x53/0x70\n print_report+0xd0/0x630\n ? __pfx__raw_spin_lock_irqsave+0x10/0x10\n ? _raw_spin_unlock_irqrestore+0x3e/0x70\n ? isert_put_cmd+0x53d/0x620\n kasan_report+0xce/0x100\n ? isert_put_cmd+0x53d/0x620\n isert_put_cmd+0x53d/0x620\n ? isert_completion_put+0x305/0x330\n ? isert_do_control_comp+0x2ef/0x310\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\n Allocated by task 48:\n kasan_save_stack+0x33/0x60\n kasan_save_track+0x14/0x30\n __kasan_kmalloc+0x8f/0xa0\n __kmalloc_cache_noprof+0x158/0x370\n isert_cma_handler+0x1e3/0x2ae0\n cma_cm_event_handler+0x3e/0x240\n cma_ib_req_handler+0x17d9/0x4490\n cm_process_work+0x41/0x330\n cm_work_handler+0x5727/0xc160\n process_one_work+0x633/0x1030\n worker_thread+0x45b/0xd10\n kthread+0x2c6/0x3b0\n ret_from_fork+0x36e/0x5a0\n ret_from_fork_asm+0x1a/0x30\n\n Freed by task 184:\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+0x121/0x380\n iscsit_close_connection+0x7cf/0x1e60\n iscsit_take_action_for_connection_exit+0x1b6/0x360\n iscsi_target_tx_thread+0x472/0x690\n kthread+0x2c6/0x3b0\n ret_from_fork+0x36e/0x5a0\n ret_from_fork_asm+0x1a/0x30"
}
],
"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 iSER initiator triggers it remotely over RDMA (iWARP/RoCEv2 are IP-routable). Its iSCSI Text Request (or a TMF or a malformed PDU that draws a Reject) makes isert_send_done() queue isert_do_control_comp(); an RDMA CM disconnect from the same initiator then starts teardown via iscsit_close_connection().\nAC:H - The attacker sends both the request and the disconnect, but the free only wins if the already-queued isert_comp_wq work stays delayed through ib_drain_qp, isert_wait4cmds and the release work. The attacker can\u0027t control that scheduling; the reporter needed an injected msleep(200) to reproduce it.\nPR:N - The attacker only needs a full-feature iSCSI session, and LIO allows login with AuthMethod=None, where the initiator IQN is merely asserted. No credentials are checked before the Text/TMF/Reject paths that queue the deferred completion.\nUI:N - The initiator triggers the response PDU and the connection teardown entirely through its own iSCSI PDUs and RDMA CM disconnect; no action by a target administrator is needed.\nS:U - The use-after-free is in the target host\u0027s own kernel memory (isert_conn and iscsit_conn), so the impact stays within the same kernel security authority.\nC:H - isert_put_cmd() dereferences the freed isert_conn-\u003econn and reads the freed iscsit_conn and cmd structures. Reclaiming those slab objects lets attacker-shaped data steer kernel pointer reads.\nI:H - On the freed iscsit_conn, isert_put_cmd() takes spin_lock_bh(\u0026conn-\u003ecmd_lock), runs list_del_init(\u0026cmd-\u003ei_conn_node) and calls iscsit_release_cmd()/transport_generic_free_cmd(). These are writes and frees through freed memory, which can corrupt the heap.\nA:H - The isert_comp_wq worker hits a slab use-after-free in isert_put_cmd() (KASAN splat in the fix commit), which on production kernels can crash or oops the iSCSI target host."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T09:18:07.886Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/f5613acbe2e346d5c466ef0bd264fca936b69f82"
},
{
"url": "https://git.kernel.org/stable/c/ccdb1523f12bc8a9646de65055d1aafed9e9bcc6"
},
{
"url": "https://git.kernel.org/stable/c/0e230917670c6e6fe3243abfa11299fcbe05b1f4"
},
{
"url": "https://git.kernel.org/stable/c/505b242d9351690d1385bbe508ab4666f60363ce"
},
{
"url": "https://git.kernel.org/stable/c/7edb8a88d6c76237c8b4435765bee1009e26a50a"
},
{
"url": "https://git.kernel.org/stable/c/b96b8b3e41c308f606ffd10cfef1a7b9f97414cd"
},
{
"url": "https://git.kernel.org/stable/c/7908fbc597a694bbd99bfb59ece73bc3daded68e"
},
{
"url": "https://git.kernel.org/stable/c/a8fe3dfce8c0d8a76dc3d8486a5bff5feebe156f"
}
],
"title": "IB/isert: wait for deferred control PDU completions before releasing the connection",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-98357",
"datePublished": "2026-10-06T08:46:44.216Z",
"dateReserved": "2026-09-25T10:25:14.344Z",
"dateUpdated": "2026-10-19T09:18:07.886Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-97559 (GCVE-0-2026-97559)
Vulnerability from cvelistv5
Published
2026-09-25 10:21
Modified
2026-10-30 12:37
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
smb: client: fail DACL rewrite when the new DACL exceeds 64K
replace_sids_and_copy_aces() and set_chmod_dacl() accumulate the size of
the DACL they build in a u16. That accumulator can wrap.
validate_dacl() caps num_aces at (dacl_size - sizeof(struct smb_acl)) /
20, i.e. 3276 for a maximally sized DACL, while each rewritten ACE can
grow to sizeof(struct smb_ace) (76 bytes) once its SID is replaced with
one carrying SID_MAX_SUB_AUTHORITIES sub-authorities. The worst case is
therefore sizeof(struct smb_acl) + 3276 * 76 = 248984 bytes, far beyond
what a u16 can hold. A wraparound is reached with 863 ACEs.
After the wraparound, ndacl_ptr->size becomes meaningless and the offset
will point anywhere in the ACE array. As a result, we will see
corruption of the DACL, which then gets sent to the server. This is not
an out-of-bounds write as the allocation now covers the worst-case
expansion, so writes will always go into the buffer.
Adjust the code to use a u32 internally and return -EOVERFLOW in the
overflow case. The operation must be refused, because a DACL can only
hold 2^16-1 bytes on the wire and larger DACLs cannot be represented.
set_chmod_dacl() carries the same pattern and is fixed the same way. It
only wraps once the source DACL comes within roughly 380 bytes of the
64K ceiling, but the failure mode is identical.
References
| URL | Tags | |||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: f5065508897a922327f32223082325d10b069ebc Version: f5065508897a922327f32223082325d10b069ebc Version: f5065508897a922327f32223082325d10b069ebc Version: f5065508897a922327f32223082325d10b069ebc Version: f5065508897a922327f32223082325d10b069ebc Version: f5065508897a922327f32223082325d10b069ebc |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"fs/smb/client/cifsacl.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "f033d6e5aadf3e8c6a12873110557ed40cd71388",
"status": "affected",
"version": "f5065508897a922327f32223082325d10b069ebc",
"versionType": "git"
},
{
"lessThan": "284877c6189fda1ac3d81771dd8482660a0c7dc1",
"status": "affected",
"version": "f5065508897a922327f32223082325d10b069ebc",
"versionType": "git"
},
{
"lessThan": "d433376abc47e10870ae732f89c7c1a60b199a0c",
"status": "affected",
"version": "f5065508897a922327f32223082325d10b069ebc",
"versionType": "git"
},
{
"lessThan": "2ef532a01f44687f5b95001e88247cf05bff9892",
"status": "affected",
"version": "f5065508897a922327f32223082325d10b069ebc",
"versionType": "git"
},
{
"lessThan": "ee13d687d06a6fbb2008625dd560c654231b28e0",
"status": "affected",
"version": "f5065508897a922327f32223082325d10b069ebc",
"versionType": "git"
},
{
"lessThan": "d05045177a855386bca5e1909e08d06290e6e3b3",
"status": "affected",
"version": "f5065508897a922327f32223082325d10b069ebc",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"fs/smb/client/cifsacl.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.1.*",
"status": "unaffected",
"version": "6.1.191",
"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.1.191",
"versionStartIncluding": "5.12",
"vulnerable": true
},
{
"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.112",
"versionStartIncluding": "5.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.53",
"versionStartIncluding": "5.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.7",
"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\nsmb: client: fail DACL rewrite when the new DACL exceeds 64K\n\nreplace_sids_and_copy_aces() and set_chmod_dacl() accumulate the size of\nthe DACL they build in a u16. That accumulator can wrap.\n\nvalidate_dacl() caps num_aces at (dacl_size - sizeof(struct smb_acl)) /\n20, i.e. 3276 for a maximally sized DACL, while each rewritten ACE can\ngrow to sizeof(struct smb_ace) (76 bytes) once its SID is replaced with\none carrying SID_MAX_SUB_AUTHORITIES sub-authorities. The worst case is\ntherefore sizeof(struct smb_acl) + 3276 * 76 = 248984 bytes, far beyond\nwhat a u16 can hold. A wraparound is reached with 863 ACEs.\n\nAfter the wraparound, ndacl_ptr-\u003esize becomes meaningless and the offset\nwill point anywhere in the ACE array. As a result, we will see\ncorruption of the DACL, which then gets sent to the server. This is not\nan out-of-bounds write as the allocation now covers the worst-case\nexpansion, so writes will always go into the buffer.\n\nAdjust the code to use a u32 internally and return -EOVERFLOW in the\noverflow case. The operation must be refused, because a DACL can only\nhold 2^16-1 bytes on the wire and larger DACLs cannot be represented.\n\nset_chmod_dacl() carries the same pattern and is fixed the same way. It\nonly wraps once the source DACL comes within roughly 380 bytes of the\n64K ceiling, but the failure mode is identical."
}
],
"providerMetadata": {
"dateUpdated": "2026-10-30T12:37:24.247Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/f033d6e5aadf3e8c6a12873110557ed40cd71388"
},
{
"url": "https://git.kernel.org/stable/c/284877c6189fda1ac3d81771dd8482660a0c7dc1"
},
{
"url": "https://git.kernel.org/stable/c/d433376abc47e10870ae732f89c7c1a60b199a0c"
},
{
"url": "https://git.kernel.org/stable/c/2ef532a01f44687f5b95001e88247cf05bff9892"
},
{
"url": "https://git.kernel.org/stable/c/ee13d687d06a6fbb2008625dd560c654231b28e0"
},
{
"url": "https://git.kernel.org/stable/c/d05045177a855386bca5e1909e08d06290e6e3b3"
}
],
"title": "smb: client: fail DACL rewrite when the new DACL exceeds 64K",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-97559",
"datePublished": "2026-09-25T10:21:48.866Z",
"dateReserved": "2026-09-24T16:01:01.155Z",
"dateUpdated": "2026-10-30T12:37:24.247Z",
"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-74583 (GCVE-0-2026-74583)
Vulnerability from cvelistv5
Published
2026-08-21 16:31
Modified
2026-10-16 19:05
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
net/sched: cls_route: fix fastmap use-after-free on filter
The route4 classifier maintains a 16-slot fastmap cache that stores raw
struct route4_filter pointers indexed by (id, iif). The reader
(route4_classify) populates this cache via route4_set_fastmap() for every
classified packet that hits a filter. The writer (route4_delete,
route4_change) clears the cache via route4_reset_fastmap() before
RCU-deferred kfree of the filter.
This creates a UAF race:
1. Reader walks the RCU-protected bucket chain, finds filter f
2. Writer unlinks f, calls route4_reset_fastmap(), then tcf_queue_work()
3. Reader calls route4_set_fastmap() and writes f into the cache
*after* the writer's reset, caching a pointer about to be freed
4. After the RCU grace period, kfree(f) executes
5. Next classified packet on the same (id, iif) tuple hits the stale
fastmap entry and reads f->res from freed memory
Reproduced with an mdelay(100) accelerator in route4_set_fastmap() and a
concurrent add/delete stress test (provided by both zdi and Santosh).
Both triggered KASAN slab-use-after-free reports in the route4 fastmap
paths.
Fix:
Introduce a per-filter boolean dying flag to suppress stale fastmap
republishing by in-flight readers.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 1109c00547fc66df45b9ff923544be4c1e1bec13 Version: 1109c00547fc66df45b9ff923544be4c1e1bec13 Version: 1109c00547fc66df45b9ff923544be4c1e1bec13 Version: 1109c00547fc66df45b9ff923544be4c1e1bec13 Version: 1109c00547fc66df45b9ff923544be4c1e1bec13 Version: 1109c00547fc66df45b9ff923544be4c1e1bec13 Version: 1109c00547fc66df45b9ff923544be4c1e1bec13 Version: 1109c00547fc66df45b9ff923544be4c1e1bec13 |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-74583",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T19:01:17.964713Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T19:05:58.388Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/sched/cls_route.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "7897198b26445b4009a057bda1986b94a99e5d5f",
"status": "affected",
"version": "1109c00547fc66df45b9ff923544be4c1e1bec13",
"versionType": "git"
},
{
"lessThan": "820f083c294ad6d319c02a7d43294f2ed2565139",
"status": "affected",
"version": "1109c00547fc66df45b9ff923544be4c1e1bec13",
"versionType": "git"
},
{
"lessThan": "5ec9001be6d0eb527251125632ec8fe88278897f",
"status": "affected",
"version": "1109c00547fc66df45b9ff923544be4c1e1bec13",
"versionType": "git"
},
{
"lessThan": "b969984b2bdc85d721ce4047cd270cd37ec705a2",
"status": "affected",
"version": "1109c00547fc66df45b9ff923544be4c1e1bec13",
"versionType": "git"
},
{
"lessThan": "a17f636c9330eac879822ce29f998e5abd1b72c1",
"status": "affected",
"version": "1109c00547fc66df45b9ff923544be4c1e1bec13",
"versionType": "git"
},
{
"lessThan": "0e7a8cf8895b06d07c7311f028eba16ad742b9bc",
"status": "affected",
"version": "1109c00547fc66df45b9ff923544be4c1e1bec13",
"versionType": "git"
},
{
"lessThan": "ae9aff87025219005a2d16b4fe83d6f24643e50d",
"status": "affected",
"version": "1109c00547fc66df45b9ff923544be4c1e1bec13",
"versionType": "git"
},
{
"lessThan": "47d7f7051253bdc02b1d245d87e38f16d31a74df",
"status": "affected",
"version": "1109c00547fc66df45b9ff923544be4c1e1bec13",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/sched/cls_route.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": "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.18",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.216",
"versionStartIncluding": "3.18",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.183",
"versionStartIncluding": "3.18",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.152",
"versionStartIncluding": "3.18",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.104",
"versionStartIncluding": "3.18",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.45",
"versionStartIncluding": "3.18",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.9",
"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\nnet/sched: cls_route: fix fastmap use-after-free on filter\n\nThe route4 classifier maintains a 16-slot fastmap cache that stores raw\nstruct route4_filter pointers indexed by (id, iif). The reader\n(route4_classify) populates this cache via route4_set_fastmap() for every\nclassified packet that hits a filter. The writer (route4_delete,\nroute4_change) clears the cache via route4_reset_fastmap() before\nRCU-deferred kfree of the filter.\n\nThis creates a UAF race:\n 1. Reader walks the RCU-protected bucket chain, finds filter f\n 2. Writer unlinks f, calls route4_reset_fastmap(), then tcf_queue_work()\n 3. Reader calls route4_set_fastmap() and writes f into the cache\n *after* the writer\u0027s reset, caching a pointer about to be freed\n 4. After the RCU grace period, kfree(f) executes\n 5. Next classified packet on the same (id, iif) tuple hits the stale\n fastmap entry and reads f-\u003eres from freed memory\n\nReproduced with an mdelay(100) accelerator in route4_set_fastmap() and a\nconcurrent add/delete stress test (provided by both zdi and Santosh).\nBoth triggered KASAN slab-use-after-free reports in the route4 fastmap\npaths.\n\nFix:\nIntroduce a per-filter boolean dying flag to suppress stale fastmap\nrepublishing by in-flight readers."
}
],
"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 rtnetlink RTM_NEWTFILTER/RTM_DELTFILTER (tc filter add/change/del route) through sendmsg\u2192rtnetlink_rcv_msg\u2192tc_new_tfilter/tc_del_tfilter\u2192route4_change/route4_delete; remote packets alone cannot trigger the filter-deletion side of the race.\nAC:L - The attacker controls both race sides\u2014concurrent route filter add/change/delete via netlink plus traffic through route4_classify on clsact/ingress/egress qdiscs; ZDI and independent reporter stress tests reproduced KASAN slab-use-after-free without uncontrollable prerequisites.\nPR:L - Non-GET rtnetlink handlers require netlink_net_capable(CAP_NET_ADMIN), evaluated against the target network namespace user_ns; an unprivileged local user obtains CAP_NET_ADMIN via user+network namespaces (unshare -Urn) and configures clsact with route filters.\nUI:N - No victim interaction is needed; the attacker configures the route classifier, drives concurrent filter churn, and generates matching traffic from their own processes.\nS:U - Impact is kernel memory corruption within the same kernel security boundary (local privilege escalation/DoS); it does not cross VM, hypervisor, or IOMMU boundaries.\nC:H - Slab use-after-free: a stale fastmap entry retains a freed route4_filter pointer and route4_classify dereferences f-\u003eres from freed kmalloc memory; KASAN confirmed slab-use-after-free, enabling arbitrary kernel read via heap reclaim/spray.\nI:H - UAF of the kmalloc route4_filter object allows attacker-controlled heap spraying to reclaim the freed slot and obtain write/control-flow hijacking primitives; memory corruption is exploitable beyond a simple crash.\nA:H - UAF on the fastmap hot path causes kernel oops/panic under concurrent filter churn; KASAN slab-use-after-free was confirmed during add/delete stress testing, providing reliable denial of service even without full exploitation."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-25T05:40:10.077Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/7897198b26445b4009a057bda1986b94a99e5d5f"
},
{
"url": "https://git.kernel.org/stable/c/820f083c294ad6d319c02a7d43294f2ed2565139"
},
{
"url": "https://git.kernel.org/stable/c/5ec9001be6d0eb527251125632ec8fe88278897f"
},
{
"url": "https://git.kernel.org/stable/c/b969984b2bdc85d721ce4047cd270cd37ec705a2"
},
{
"url": "https://git.kernel.org/stable/c/a17f636c9330eac879822ce29f998e5abd1b72c1"
},
{
"url": "https://git.kernel.org/stable/c/0e7a8cf8895b06d07c7311f028eba16ad742b9bc"
},
{
"url": "https://git.kernel.org/stable/c/ae9aff87025219005a2d16b4fe83d6f24643e50d"
},
{
"url": "https://git.kernel.org/stable/c/47d7f7051253bdc02b1d245d87e38f16d31a74df"
}
],
"title": "net/sched: cls_route: fix fastmap use-after-free on filter",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-74583",
"datePublished": "2026-08-21T16:31:55.886Z",
"dateReserved": "2026-08-15T05:44:03.918Z",
"dateUpdated": "2026-10-16T19:05:58.388Z",
"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-89685 (GCVE-0-2026-89685)
Vulnerability from cvelistv5
Published
2026-09-11 19:46
Modified
2026-10-30 12:32
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
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 20b7d86f29d39e8ae19bb29c24ffee70dc385ddf Version: 20b7d86f29d39e8ae19bb29c24ffee70dc385ddf Version: 20b7d86f29d39e8ae19bb29c24ffee70dc385ddf Version: 20b7d86f29d39e8ae19bb29c24ffee70dc385ddf Version: 20b7d86f29d39e8ae19bb29c24ffee70dc385ddf Version: 20b7d86f29d39e8ae19bb29c24ffee70dc385ddf Version: 20b7d86f29d39e8ae19bb29c24ffee70dc385ddf Version: 20b7d86f29d39e8ae19bb29c24ffee70dc385ddf |
||
{
"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": "7ca44a63d9a554ba7ad05b06d88746eab08b760e",
"status": "affected",
"version": "20b7d86f29d39e8ae19bb29c24ffee70dc385ddf",
"versionType": "git"
},
{
"lessThan": "2c9efc6b692a153643d0f204b3c3632cb6b5761e",
"status": "affected",
"version": "20b7d86f29d39e8ae19bb29c24ffee70dc385ddf",
"versionType": "git"
},
{
"lessThan": "a22ee3a2cadef44f2edeb909ae36bd72450a3a35",
"status": "affected",
"version": "20b7d86f29d39e8ae19bb29c24ffee70dc385ddf",
"versionType": "git"
},
{
"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": "5.10.*",
"status": "unaffected",
"version": "5.10.273",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.224",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.191",
"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": "5.10.273",
"versionStartIncluding": "5.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.224",
"versionStartIncluding": "5.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.191",
"versionStartIncluding": "5.6",
"vulnerable": true
},
{
"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-30T12:32:41.984Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/7ca44a63d9a554ba7ad05b06d88746eab08b760e"
},
{
"url": "https://git.kernel.org/stable/c/2c9efc6b692a153643d0f204b3c3632cb6b5761e"
},
{
"url": "https://git.kernel.org/stable/c/a22ee3a2cadef44f2edeb909ae36bd72450a3a35"
},
{
"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-30T12:32:41.984Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-72172 (GCVE-0-2026-72172)
Vulnerability from cvelistv5
Published
2026-08-15 05:53
Modified
2026-10-16 18:45
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
mm/mm_init: fix uninitialized struct pages for ZONE_DEVICE
If DAX memory is hotplugged into an unoccupied subsection of an early
section, section_activate() reuses the unoptimized boot memmap. However,
compound_nr_pages() still assumes that vmemmap optimization is in effect
and initializes only the reduced number of struct pages. As a result, the
remaining tail struct pages are left uninitialized, which can later lead
to unexpected behavior or crashes.
Fix this by treating early sections as unoptimized when calculating how
many struct pages to initialize.
References
| URL | Tags | |||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 6fd3620b342861de9547ea01d28f664892ef51a1 Version: 6fd3620b342861de9547ea01d28f664892ef51a1 Version: 6fd3620b342861de9547ea01d28f664892ef51a1 Version: 6fd3620b342861de9547ea01d28f664892ef51a1 Version: 6fd3620b342861de9547ea01d28f664892ef51a1 Version: 6fd3620b342861de9547ea01d28f664892ef51a1 |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-72172",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T18:43:19.574652Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T18:45:00.307Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"mm/mm_init.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "c5ef574d57e4a701485c13f26822328c91f05413",
"status": "affected",
"version": "6fd3620b342861de9547ea01d28f664892ef51a1",
"versionType": "git"
},
{
"lessThan": "511a60e71aec308b24722cffc1912bf6befb87bf",
"status": "affected",
"version": "6fd3620b342861de9547ea01d28f664892ef51a1",
"versionType": "git"
},
{
"lessThan": "11f2826e9ee6f24aaa774e3dcd75abbe4b3091b6",
"status": "affected",
"version": "6fd3620b342861de9547ea01d28f664892ef51a1",
"versionType": "git"
},
{
"lessThan": "da5234df0941665f3a3f5b80f3dab94046537be0",
"status": "affected",
"version": "6fd3620b342861de9547ea01d28f664892ef51a1",
"versionType": "git"
},
{
"lessThan": "b91e27bce37cab9f35de0059278ebe457ca9878b",
"status": "affected",
"version": "6fd3620b342861de9547ea01d28f664892ef51a1",
"versionType": "git"
},
{
"lessThan": "cd681403a87085562499d60325b7b45d3be11217",
"status": "affected",
"version": "6fd3620b342861de9547ea01d28f664892ef51a1",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"mm/mm_init.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.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.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\nmm/mm_init: fix uninitialized struct pages for ZONE_DEVICE\n\nIf DAX memory is hotplugged into an unoccupied subsection of an early\nsection, section_activate() reuses the unoptimized boot memmap. However,\ncompound_nr_pages() still assumes that vmemmap optimization is in effect\nand initializes only the reduced number of struct pages. As a result, the\nremaining tail struct pages are left uninitialized, which can later lead\nto unexpected behavior or crashes.\n\nFix this by treating early sections as unoptimized when calculating how\nmany struct pages to initialize."
}
],
"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 memmap_init_zone_device() reached via memremap_pages()/devm_memremap_pages() during device-DAX driver probe or ZONE_DEVICE hotplug (e.g., dev_dax_probe, Hyper-V VTL), not via network protocols; subsequent impact is triggered by local mmap/page-fault/get_user_pages activity on the DAX device.\nAC:L - After device-DAX with compound vmemmap (vmemmap_shift\u003e0) is hotplugged into an unoccupied early-section subsection, uninitialized tail struct pages remain indefinitely; an attacker only needs to access that memory (e.g., mmap /dev/dax) to invoke kernel page-metadata operations, without races or uncontrollable victim state.\nPR:L - While initial ZONE_DEVICE hotplug requires administrator device-DAX configuration (daxctl/ndctl, driver bind), on a configured persistent-memory or cloud server unprivileged local users with /dev/dax access can trigger kernel use of the corrupt struct pages via mmap and page faults without CAP_SYS_ADMIN in the init namespace.\nUI:N - Exploitation requires no victim interaction beyond the attacker (or any local user) running programs that mmap or access the already-provisioned DAX device; no mount, click, or plug/unplug action by another user is needed at exploit time.\nS:U - Impact is kernel memory corruption, information disclosure, and denial of service within the host kernel security boundary; it does not inherently cross VM/host, IOMMU, or sandbox isolation even though cloud persistent-memory deployments are a plausible high-impact scenario.\nC:H - Uninitialized tail struct page metadata (flags, refcount, pgmap/lru fields) is later interpreted as valid by the MM subsystem; garbage contents can be read through page-table walks, refcount checks, and folio lookups, yielding kernel memory disclosure comparable to other uninitialized-page corruption bugs.\nI:H - Corrupt struct page fields can drive incorrect refcounting, compound-head/tail linkage, and ZONE_DEVICE pgmap handling, enabling heap-style memory corruption and potential arbitrary kernel write or control-flow hijack, not merely bounded data modification.\nA:H - The fix commit and call path explicitly warn of unexpected behavior and crashes; operations on uninitialized struct pages can provoke kernel oops, BUG_ON, use-after-free, or panic during page allocation, migration, or DAX fault handling, giving reliable denial of service."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-23T12:47:00.343Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/c5ef574d57e4a701485c13f26822328c91f05413"
},
{
"url": "https://git.kernel.org/stable/c/511a60e71aec308b24722cffc1912bf6befb87bf"
},
{
"url": "https://git.kernel.org/stable/c/11f2826e9ee6f24aaa774e3dcd75abbe4b3091b6"
},
{
"url": "https://git.kernel.org/stable/c/da5234df0941665f3a3f5b80f3dab94046537be0"
},
{
"url": "https://git.kernel.org/stable/c/b91e27bce37cab9f35de0059278ebe457ca9878b"
},
{
"url": "https://git.kernel.org/stable/c/cd681403a87085562499d60325b7b45d3be11217"
}
],
"title": "mm/mm_init: fix uninitialized struct pages for ZONE_DEVICE",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-72172",
"datePublished": "2026-08-15T05:53:37.795Z",
"dateReserved": "2026-08-09T03:40:39.910Z",
"dateUpdated": "2026-10-16T18:45:00.307Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-97491 (GCVE-0-2026-97491)
Vulnerability from cvelistv5
Published
2026-09-24 16:04
Modified
2026-10-03 10:58
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
net/rds: Don't sleep inside rds_ib_conn_path_shutdown
New rds rdma self tests exposed a hang when tearing down
the ib network configs. This is caused by the shutdown worker
thread sleeping on the wait_event call, which blocks other work
items in the queue. Fix this by changing wait_event to
wait_event timeout, and looping until the wait check succeeds.
References
| URL | Tags | ||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: ec16227e14141e4fd7ae76354c09dadfe2449d9e Version: ec16227e14141e4fd7ae76354c09dadfe2449d9e Version: ec16227e14141e4fd7ae76354c09dadfe2449d9e Version: ec16227e14141e4fd7ae76354c09dadfe2449d9e Version: ec16227e14141e4fd7ae76354c09dadfe2449d9e Version: ec16227e14141e4fd7ae76354c09dadfe2449d9e Version: ec16227e14141e4fd7ae76354c09dadfe2449d9e |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/rds/ib_cm.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "b3621acf640e32dcb986d9b3767f2387f29dad05",
"status": "affected",
"version": "ec16227e14141e4fd7ae76354c09dadfe2449d9e",
"versionType": "git"
},
{
"lessThan": "ac0bc28da5150c4fa81a76172fff5ec70f2063eb",
"status": "affected",
"version": "ec16227e14141e4fd7ae76354c09dadfe2449d9e",
"versionType": "git"
},
{
"lessThan": "934a6381c79d815680c955d676791322e020bfda",
"status": "affected",
"version": "ec16227e14141e4fd7ae76354c09dadfe2449d9e",
"versionType": "git"
},
{
"lessThan": "07a348d48e589b91a0d5a5cfa0de137cc703fabf",
"status": "affected",
"version": "ec16227e14141e4fd7ae76354c09dadfe2449d9e",
"versionType": "git"
},
{
"lessThan": "db22e77df66353f1299153f6fa9620a2825bc63f",
"status": "affected",
"version": "ec16227e14141e4fd7ae76354c09dadfe2449d9e",
"versionType": "git"
},
{
"lessThan": "caa51e6da596ed6008cd06605a725568b8e7be4e",
"status": "affected",
"version": "ec16227e14141e4fd7ae76354c09dadfe2449d9e",
"versionType": "git"
},
{
"lessThan": "16f48efaeb6991193fb7775c577f06f5b20b0c90",
"status": "affected",
"version": "ec16227e14141e4fd7ae76354c09dadfe2449d9e",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/rds/ib_cm.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.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": "2.6.30",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.222",
"versionStartIncluding": "2.6.30",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.189",
"versionStartIncluding": "2.6.30",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.158",
"versionStartIncluding": "2.6.30",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.111",
"versionStartIncluding": "2.6.30",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.53",
"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\nnet/rds: Don\u0027t sleep inside rds_ib_conn_path_shutdown\n\nNew rds rdma self tests exposed a hang when tearing down\nthe ib network configs. This is caused by the shutdown worker\nthread sleeping on the wait_event call, which blocks other work\nitems in the queue. Fix this by changing wait_event to\nwait_event timeout, and looping until the wait check succeeds."
}
],
"providerMetadata": {
"dateUpdated": "2026-10-03T10:58:56.169Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/b3621acf640e32dcb986d9b3767f2387f29dad05"
},
{
"url": "https://git.kernel.org/stable/c/ac0bc28da5150c4fa81a76172fff5ec70f2063eb"
},
{
"url": "https://git.kernel.org/stable/c/934a6381c79d815680c955d676791322e020bfda"
},
{
"url": "https://git.kernel.org/stable/c/07a348d48e589b91a0d5a5cfa0de137cc703fabf"
},
{
"url": "https://git.kernel.org/stable/c/db22e77df66353f1299153f6fa9620a2825bc63f"
},
{
"url": "https://git.kernel.org/stable/c/caa51e6da596ed6008cd06605a725568b8e7be4e"
},
{
"url": "https://git.kernel.org/stable/c/16f48efaeb6991193fb7775c577f06f5b20b0c90"
}
],
"title": "net/rds: Don\u0027t sleep inside rds_ib_conn_path_shutdown",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-97491",
"datePublished": "2026-09-24T16:04:39.488Z",
"dateReserved": "2026-09-24T16:01:01.150Z",
"dateUpdated": "2026-10-03T10:58:56.169Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-72476 (GCVE-0-2026-72476)
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:
dmaengine: Fix possible use after free
In dma_release_channel(), check chan->device->privatecnt after call
dma_chan_put(). However, dma_chan_put() call dma_device_put() which could
release the last reference of the device if the DMA provider is already
gone and hence free it.
Fixes it by moving dma_chan_put() after the check.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 0f571515c332e00b3515dbe0859ceaa30ab66e00 Version: 0f571515c332e00b3515dbe0859ceaa30ab66e00 Version: 0f571515c332e00b3515dbe0859ceaa30ab66e00 Version: 0f571515c332e00b3515dbe0859ceaa30ab66e00 Version: 0f571515c332e00b3515dbe0859ceaa30ab66e00 Version: 0f571515c332e00b3515dbe0859ceaa30ab66e00 Version: 0f571515c332e00b3515dbe0859ceaa30ab66e00 Version: 0f571515c332e00b3515dbe0859ceaa30ab66e00 |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-72476",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T18:50:35.862393Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T18:55:25.895Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/dma/dmaengine.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "444f96066937f3fdf0e79b53289cff223c7d638b",
"status": "affected",
"version": "0f571515c332e00b3515dbe0859ceaa30ab66e00",
"versionType": "git"
},
{
"lessThan": "ab438a9efb9042c79d2f8db28a326d55feb8591f",
"status": "affected",
"version": "0f571515c332e00b3515dbe0859ceaa30ab66e00",
"versionType": "git"
},
{
"lessThan": "9bdc8dce4068dadbdf7cf5ad6d4983e2afffedce",
"status": "affected",
"version": "0f571515c332e00b3515dbe0859ceaa30ab66e00",
"versionType": "git"
},
{
"lessThan": "5876f38b67a309c00628942cb25679749b53b397",
"status": "affected",
"version": "0f571515c332e00b3515dbe0859ceaa30ab66e00",
"versionType": "git"
},
{
"lessThan": "3b0240483dc977dbec4f3bc7a5383d4691ecb625",
"status": "affected",
"version": "0f571515c332e00b3515dbe0859ceaa30ab66e00",
"versionType": "git"
},
{
"lessThan": "329ec20a86091d2a6e5b4fe507545e7d678a22a2",
"status": "affected",
"version": "0f571515c332e00b3515dbe0859ceaa30ab66e00",
"versionType": "git"
},
{
"lessThan": "0bc191050c3253da8ef4bfaf157c44efed6e22cd",
"status": "affected",
"version": "0f571515c332e00b3515dbe0859ceaa30ab66e00",
"versionType": "git"
},
{
"lessThan": "92f853f0645aebf1d05d333e97ab7c342ace1892",
"status": "affected",
"version": "0f571515c332e00b3515dbe0859ceaa30ab66e00",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/dma/dmaengine.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\ndmaengine: Fix possible use after free\n\nIn dma_release_channel(), check chan-\u003edevice-\u003eprivatecnt after call\ndma_chan_put(). However, dma_chan_put() call dma_device_put() which could\nrelease the last reference of the device if the DMA provider is already\ngone and hence free it.\n\nFixes it by moving dma_chan_put() after the 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 flaw is in dma_release_channel() in drivers/dma/dmaengine.c, reached only when kernel client drivers release a privately requested DMA channel during probe/remove/error teardown triggered by local device access (e.g., /dev/iio:device*, /dev/snd/*, /dev/tty*, spidev), not from any network packet or remote protocol handler.\nAC:L - An attacker can hold a DMA slave channel open via a client device, then close it to call dma_release_channel(); when the DMA provider has already unregistered via unbind, hot-unplug, or module teardown, dma_chan_put() frees dma_device and the subsequent privatecnt access is a reliably triggerable UAF with attacker-controlled release timing.\nPR:L - Exploitation requires only a local unprivileged process able to open a device whose driver uses dma_request_chan() or dma_request_channel(); on embedded ADI FPGA, Android, and industrial platforms, non-root application users commonly have such device-node access without init-namespace root or CAP_SYS_ADMIN.\nUI:N - No victim interaction is required beyond the attacker opening, holding, and closing their own device handle or racing driver teardown; no other user must mount filesystems, approve prompts, or perform separate actions for exploitation to succeed.\nS:U - This is a kernel slab use-after-free in the dmaengine channel-release path affecting the same kernel security authority; it does not cross VM, IOMMU, container, or other sandbox boundaries and is standard in-kernel memory corruption rather than a scope change.\nC:H - After dma_chan_put() frees the last dma_device kref, the code reads and decrements privatecnt and may clear cap_mask on freed kmalloc memory; UAF on dma_device objects enables disclosure of attacker-influenced freed-heap contents per kernel UAF scoring guidance.\nI:H - Post-free modification of privatecnt and cap_mask corrupts reused slab objects under attacker influence, providing a plausible kernel heap corruption path toward arbitrary write primitives, control-flow hijacking, or local privilege escalation.\nA:H - Dereferencing freed dma_device memory during dma_release_channel() can cause KASAN slab-use-after-free reports, kernel oops, BUG, or panic; kernel guidance treats any use-after-free as high availability impact even when full exploitation is not demonstrated."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-17T05:44:40.606Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/444f96066937f3fdf0e79b53289cff223c7d638b"
},
{
"url": "https://git.kernel.org/stable/c/ab438a9efb9042c79d2f8db28a326d55feb8591f"
},
{
"url": "https://git.kernel.org/stable/c/9bdc8dce4068dadbdf7cf5ad6d4983e2afffedce"
},
{
"url": "https://git.kernel.org/stable/c/5876f38b67a309c00628942cb25679749b53b397"
},
{
"url": "https://git.kernel.org/stable/c/3b0240483dc977dbec4f3bc7a5383d4691ecb625"
},
{
"url": "https://git.kernel.org/stable/c/329ec20a86091d2a6e5b4fe507545e7d678a22a2"
},
{
"url": "https://git.kernel.org/stable/c/0bc191050c3253da8ef4bfaf157c44efed6e22cd"
},
{
"url": "https://git.kernel.org/stable/c/92f853f0645aebf1d05d333e97ab7c342ace1892"
}
],
"title": "dmaengine: Fix possible use after free",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-72476",
"datePublished": "2026-08-15T05:57:16.396Z",
"dateReserved": "2026-08-09T03:40:39.934Z",
"dateUpdated": "2026-10-16T18:55:25.895Z",
"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-98173 (GCVE-0-2026-98173)
Vulnerability from cvelistv5
Published
2026-10-06 08:44
Modified
2026-10-30 12:37
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
smb: client: fix use-after-free of iface in cifs_try_adding_channels()
cifs_try_adding_channels() iterates ses->iface_list with
list_for_each_entry_safe_from(), which captures the next entry
(niface) under iface_lock. The loop body then drops iface_lock for
the whole duration of cifs_ses_add_channel().
A concurrent interface refresh (SMB3_request_interfaces() ->
parse_server_interfaces()) marks all ifaces inactive and removes and
frees any that are not re-advertised via list_del() + kref_put(),
where release_iface() is a bare kfree(). Since niface typically has
no channel holding a reference, the list reference is its last and it
can be freed inside the unlocked window. On continue, the iterator
advance step then dereferences niface->iface_head.next, and the loop
body reads iface->rdma_capable/is_active, both on freed memory.
Fix this by never keeping an unreferenced list pointer across the
unlocked window. Each channel attempt now re-scans the list from the
head under iface_lock, takes a kref on the selected candidate, and
passes only that referenced candidate to cifs_ses_add_channel().
weight_fulfilled still tracks selection progress, so restarting the
scan preserves the original weighted distribution and the
weight_fulfilled-before-kref_put ordering on the failure path.
Add a per-pass attempts cap so a flapping interface refresh cannot
keep the inner loop spinning within a single tries increment.
References
| URL | Tags | |||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: aa45dadd34e44fcd6a9df4b395bee5b5633b4cec Version: aa45dadd34e44fcd6a9df4b395bee5b5633b4cec Version: aa45dadd34e44fcd6a9df4b395bee5b5633b4cec Version: aa45dadd34e44fcd6a9df4b395bee5b5633b4cec Version: aa45dadd34e44fcd6a9df4b395bee5b5633b4cec Version: aa45dadd34e44fcd6a9df4b395bee5b5633b4cec |
||
{
"containers": {
"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": "93e8a49adb2a575202c5ee766435eff2f9f95f5b",
"status": "affected",
"version": "aa45dadd34e44fcd6a9df4b395bee5b5633b4cec",
"versionType": "git"
},
{
"lessThan": "ee0d8f83d68f6e6509f092c997ccab3c8c801538",
"status": "affected",
"version": "aa45dadd34e44fcd6a9df4b395bee5b5633b4cec",
"versionType": "git"
},
{
"lessThan": "c941f1ebfd26f683de81091473f3596a218abff0",
"status": "affected",
"version": "aa45dadd34e44fcd6a9df4b395bee5b5633b4cec",
"versionType": "git"
},
{
"lessThan": "e99040e5e9c60441e6b4725e1a7b88c3106ae903",
"status": "affected",
"version": "aa45dadd34e44fcd6a9df4b395bee5b5633b4cec",
"versionType": "git"
},
{
"lessThan": "ec36b38e65596950e6c29bed7dfc90b98707c19c",
"status": "affected",
"version": "aa45dadd34e44fcd6a9df4b395bee5b5633b4cec",
"versionType": "git"
},
{
"lessThan": "d034e836eefd7ce75e588f7031cffbeec594f5ac",
"status": "affected",
"version": "aa45dadd34e44fcd6a9df4b395bee5b5633b4cec",
"versionType": "git"
}
]
},
{
"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": "5.19"
},
{
"lessThan": "5.19",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.191",
"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.54",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.8",
"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.191",
"versionStartIncluding": "5.19",
"vulnerable": true
},
{
"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.112",
"versionStartIncluding": "5.19",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.54",
"versionStartIncluding": "5.19",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.8",
"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\nsmb: client: fix use-after-free of iface in cifs_try_adding_channels()\n\ncifs_try_adding_channels() iterates ses-\u003eiface_list with\nlist_for_each_entry_safe_from(), which captures the next entry\n(niface) under iface_lock. The loop body then drops iface_lock for\nthe whole duration of cifs_ses_add_channel().\n\nA concurrent interface refresh (SMB3_request_interfaces() -\u003e\nparse_server_interfaces()) marks all ifaces inactive and removes and\nfrees any that are not re-advertised via list_del() + kref_put(),\nwhere release_iface() is a bare kfree(). Since niface typically has\nno channel holding a reference, the list reference is its last and it\ncan be freed inside the unlocked window. On continue, the iterator\nadvance step then dereferences niface-\u003eiface_head.next, and the loop\nbody reads iface-\u003erdma_capable/is_active, both on freed memory.\n\nFix this by never keeping an unreferenced list pointer across the\nunlocked window. Each channel attempt now re-scans the list from the\nhead under iface_lock, takes a kref on the selected candidate, and\npasses only that referenced candidate to cifs_ses_add_channel().\nweight_fulfilled still tracks selection progress, so restarting the\nscan preserves the original weighted distribution and the\nweight_fulfilled-before-kref_put ordering on the failure path.\n\nAdd a per-pass attempts cap so a flapping interface refresh cannot\nkeep the inner loop spinning within a single tries increment."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.5,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - A malicious SMB server sends the bad data over TCP/445 in its FSCTL_QUERY_NETWORK_INTERFACE_INFO responses. A later response leaves out an interface, so parse_server_interfaces() does list_del() and kref_put() and frees it. cifs_try_adding_channels() still holds niface after dropping iface_lock for cifs_ses_add_channel(), and that pointer now refers to freed memory.\nAC:H - Multichannel is off by default (multichannel=false, max_channels=1), so the victim must mount with multichannel or max_channels\u003e1. The server also has to line up a refresh from the 600s smb2_query_server_interfaces worker with the unlocked add-channel window. It can stall channel setup and force reconnects to retry, but it does not schedule the worker.\nPR:N - The attacker only runs a rogue SMB server and needs no account or privilege on the victim client. The interface list is server-supplied data the client trusts during the session it opened.\nUI:R - A victim or admin has to mount a share from the attacker\u0027s server with multichannel turned on. CIFS mounts are not FS_USERNS_MOUNT, so the attacker cannot set up the client side alone.\nS:U - The memory corruption stays inside the client kernel\u0027s own security authority. No VM or other trust boundary is crossed.\nC:H - The loop continues through freed niface-\u003eiface_head.next and reads iface-\u003erdma_capable, is_active, speed and sockaddr from the freed cifs_server_iface. The attacker can refill that heap object with their own data, which lets the kernel follow attacker-chosen pointers.\nI:H - Once the freed entry is reallocated, the loop does kref_get() and weight_fulfilled++/num_channels++ through the stale or forged iface pointer. That is a kernel write at a location the attacker influences, and cifs_ses_add_channel() then uses the forged object.\nA:H - Dereferencing the freed list entry in cifs_try_adding_channels() can oops or panic the client. The server can force reconnects to re-enter this path repeatedly."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-30T12:37:52.156Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/93e8a49adb2a575202c5ee766435eff2f9f95f5b"
},
{
"url": "https://git.kernel.org/stable/c/ee0d8f83d68f6e6509f092c997ccab3c8c801538"
},
{
"url": "https://git.kernel.org/stable/c/c941f1ebfd26f683de81091473f3596a218abff0"
},
{
"url": "https://git.kernel.org/stable/c/e99040e5e9c60441e6b4725e1a7b88c3106ae903"
},
{
"url": "https://git.kernel.org/stable/c/ec36b38e65596950e6c29bed7dfc90b98707c19c"
},
{
"url": "https://git.kernel.org/stable/c/d034e836eefd7ce75e588f7031cffbeec594f5ac"
}
],
"title": "smb: client: fix use-after-free of iface in cifs_try_adding_channels()",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-98173",
"datePublished": "2026-10-06T08:44:17.567Z",
"dateReserved": "2026-09-25T10:25:14.322Z",
"dateUpdated": "2026-10-30T12:37:52.156Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-46034 (GCVE-0-2026-46034)
Vulnerability from cvelistv5
Published
2026-05-27 12:56
Modified
2026-06-14 17:49
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
vfio/cdx: Fix NULL pointer dereference in interrupt trigger path
Add validation to ensure MSI is configured before accessing cdx_irqs
array in vfio_cdx_set_msi_trigger(). Without this check, userspace
can trigger a NULL pointer dereference by calling VFIO_DEVICE_SET_IRQS
with VFIO_IRQ_SET_DATA_BOOL or VFIO_IRQ_SET_DATA_NONE flags before
ever setting up interrupts via VFIO_IRQ_SET_DATA_EVENTFD.
The vfio_cdx_msi_enable() function allocates the cdx_irqs array and
sets config_msi to 1 only when called through the EVENTFD path. The
trigger loop (for DATA_BOOL/DATA_NONE) assumed this had already been
done, but there was no enforcement of this call ordering.
This matches the protection used in the PCI VFIO driver where
vfio_pci_set_msi_trigger() checks irq_is() before the trigger loop.
References
| URL | Tags | |
|---|---|---|
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/vfio/cdx/intr.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "51bf7638f33aece41cb3f4cbeb942cc52950e329",
"status": "affected",
"version": "848e447e000c41894ff931dc7c004fd42c8840f8",
"versionType": "git"
},
{
"lessThan": "5d6c349c9823eb819fed8b537b088cf38126018c",
"status": "affected",
"version": "848e447e000c41894ff931dc7c004fd42c8840f8",
"versionType": "git"
},
{
"lessThan": "338a736aaf15e8ba3635ce20b29af5b8fc15e66a",
"status": "affected",
"version": "848e447e000c41894ff931dc7c004fd42c8840f8",
"versionType": "git"
},
{
"lessThan": "5ea5880764cbb164afb17a62e76ca75dc371409d",
"status": "affected",
"version": "848e447e000c41894ff931dc7c004fd42c8840f8",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/vfio/cdx/intr.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.86",
"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": "6.12.86",
"versionStartIncluding": "6.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.27",
"versionStartIncluding": "6.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.0.4",
"versionStartIncluding": "6.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1",
"versionStartIncluding": "6.10",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nvfio/cdx: Fix NULL pointer dereference in interrupt trigger path\n\nAdd validation to ensure MSI is configured before accessing cdx_irqs\narray in vfio_cdx_set_msi_trigger(). Without this check, userspace\ncan trigger a NULL pointer dereference by calling VFIO_DEVICE_SET_IRQS\nwith VFIO_IRQ_SET_DATA_BOOL or VFIO_IRQ_SET_DATA_NONE flags before\never setting up interrupts via VFIO_IRQ_SET_DATA_EVENTFD.\n\nThe vfio_cdx_msi_enable() function allocates the cdx_irqs array and\nsets config_msi to 1 only when called through the EVENTFD path. The\ntrigger loop (for DATA_BOOL/DATA_NONE) assumed this had already been\ndone, but there was no enforcement of this call ordering.\n\nThis matches the protection used in the PCI VFIO driver where\nvfio_pci_set_msi_trigger() checks irq_is() before the trigger loop."
}
],
"providerMetadata": {
"dateUpdated": "2026-06-14T17:49:29.082Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/51bf7638f33aece41cb3f4cbeb942cc52950e329"
},
{
"url": "https://git.kernel.org/stable/c/5d6c349c9823eb819fed8b537b088cf38126018c"
},
{
"url": "https://git.kernel.org/stable/c/338a736aaf15e8ba3635ce20b29af5b8fc15e66a"
},
{
"url": "https://git.kernel.org/stable/c/5ea5880764cbb164afb17a62e76ca75dc371409d"
}
],
"title": "vfio/cdx: Fix NULL pointer dereference in interrupt trigger path",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-46034",
"datePublished": "2026-05-27T12:56:43.389Z",
"dateReserved": "2026-05-13T15:03:33.093Z",
"dateUpdated": "2026-06-14T17:49:29.082Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-98269 (GCVE-0-2026-98269)
Vulnerability from cvelistv5
Published
2026-10-06 08:45
Modified
2026-10-19 09:16
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
btrfs: abort transaction on failure to update inode for hole punching and reflinking
If we fail to update the inode we error out without aborting the
transaction, which can result in a persistent inconsistency if after
the failure the transaction is committed, as we have dropped file
extent items from a range and either punched a hole or insert a new file
extent item for that range (for reflinks).
So add the missing transaction abort.
References
| URL | Tags | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"fs/btrfs/file.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "2605eb9ba3bbd4c9f455cfe6b85bd28a1da7067d",
"status": "affected",
"version": "2aaa66558172b017f36bf38ae69372813dedee9d",
"versionType": "git"
},
{
"lessThan": "834a3b5c5f1ec0df48c1a6208f9989f4ffdaa0b6",
"status": "affected",
"version": "2aaa66558172b017f36bf38ae69372813dedee9d",
"versionType": "git"
},
{
"lessThan": "9588850bfa75c78ce73c2f6f72544d19d2e9beb6",
"status": "affected",
"version": "2aaa66558172b017f36bf38ae69372813dedee9d",
"versionType": "git"
},
{
"lessThan": "36c68dc909845c049e0286d229bc502947239452",
"status": "affected",
"version": "2aaa66558172b017f36bf38ae69372813dedee9d",
"versionType": "git"
},
{
"lessThan": "97fcd34aa9fd73cefe3120ac9a82ca9d7763922f",
"status": "affected",
"version": "2aaa66558172b017f36bf38ae69372813dedee9d",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"fs/btrfs/file.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.158",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.112",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.54",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.8",
"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.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.112",
"versionStartIncluding": "3.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.54",
"versionStartIncluding": "3.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.8",
"versionStartIncluding": "3.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "3.7",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nbtrfs: abort transaction on failure to update inode for hole punching and reflinking\n\nIf we fail to update the inode we error out without aborting the\ntransaction, which can result in a persistent inconsistency if after\nthe failure the transaction is committed, as we have dropped file\nextent items from a range and either punched a hole or insert a new file\nextent item for that range (for reflinks).\n\nSo add the missing transaction abort."
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T09:16:40.051Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/2605eb9ba3bbd4c9f455cfe6b85bd28a1da7067d"
},
{
"url": "https://git.kernel.org/stable/c/834a3b5c5f1ec0df48c1a6208f9989f4ffdaa0b6"
},
{
"url": "https://git.kernel.org/stable/c/9588850bfa75c78ce73c2f6f72544d19d2e9beb6"
},
{
"url": "https://git.kernel.org/stable/c/36c68dc909845c049e0286d229bc502947239452"
},
{
"url": "https://git.kernel.org/stable/c/97fcd34aa9fd73cefe3120ac9a82ca9d7763922f"
}
],
"title": "btrfs: abort transaction on failure to update inode for hole punching and reflinking",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-98269",
"datePublished": "2026-10-06T08:45:31.727Z",
"dateReserved": "2026-09-25T10:25:14.333Z",
"dateUpdated": "2026-10-19T09:16:40.051Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-64428 (GCVE-0-2026-64428)
Vulnerability from cvelistv5
Published
2026-07-25 08:51
Modified
2026-08-17 04:55
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
gpio: sch: use raw_spinlock_t in the irq startup path
sch_irq_unmask() enables the GPIO IRQ and then updates the controller
state through sch_irq_mask_unmask(), which takes sch->lock with
spin_lock_irqsave(). The callback can be reached from irq_startup()
while setting up a requested IRQ. That path is not sleepable, but on
PREEMPT_RT a regular spinlock_t becomes a sleeping lock.
This issue was found by our static analysis tool and then manually
reviewed against the current tree.
The grounded PoC kept the request_threaded_irq() -> __setup_irq() ->
irq_startup() -> sch_irq_unmask() -> sch_irq_mask_unmask() carrier and
used the original spin_lock_irqsave(&sch->lock) edge. Lockdep reported:
BUG: sleeping function called from invalid context
hardirqs last disabled at ... __setup_irq.constprop.0 ... [vuln_msv]
sch_rt_spin_lock_irqsave+0x1c/0x30 [vuln_msv]
sch_irq_mask_unmask.constprop.0+0x31/0x70 [vuln_msv]
__setup_irq.constprop.0+0xd/0x30 [vuln_msv]
Convert the SCH controller lock to raw_spinlock_t. The same lock is
also used by the GPIO direction and value callbacks, but those critical
sections only update MMIO-backed GPIO registers and do not contain
sleepable operations. Keeping this register lock non-sleeping is
therefore appropriate for the irqchip callbacks and does not change the
GPIO-side locking contract.
References
| URL | Tags | ||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 7a81638485c1a62a87b4c391ecc9c651a4a9dc19 Version: 7a81638485c1a62a87b4c391ecc9c651a4a9dc19 Version: 7a81638485c1a62a87b4c391ecc9c651a4a9dc19 Version: 7a81638485c1a62a87b4c391ecc9c651a4a9dc19 Version: 7a81638485c1a62a87b4c391ecc9c651a4a9dc19 Version: 7a81638485c1a62a87b4c391ecc9c651a4a9dc19 Version: 7a81638485c1a62a87b4c391ecc9c651a4a9dc19 |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/gpio/gpio-sch.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "3b1aa05ec27eeccc889ecaa3f2d9baa9f453e50d",
"status": "affected",
"version": "7a81638485c1a62a87b4c391ecc9c651a4a9dc19",
"versionType": "git"
},
{
"lessThan": "4f03a15cc73c83740fc355ee22b336492d17b4da",
"status": "affected",
"version": "7a81638485c1a62a87b4c391ecc9c651a4a9dc19",
"versionType": "git"
},
{
"lessThan": "7a550256d68bbdfa0903ab1c4595c04a6815493a",
"status": "affected",
"version": "7a81638485c1a62a87b4c391ecc9c651a4a9dc19",
"versionType": "git"
},
{
"lessThan": "a235cec779bb39ec8f961a935b28a2ce278c6c64",
"status": "affected",
"version": "7a81638485c1a62a87b4c391ecc9c651a4a9dc19",
"versionType": "git"
},
{
"lessThan": "4508366ab7dd0c2917a51a9c2e23cc1b9d35157a",
"status": "affected",
"version": "7a81638485c1a62a87b4c391ecc9c651a4a9dc19",
"versionType": "git"
},
{
"lessThan": "41cad91a09d69e8fff4e936db29b1054b4e9f9f7",
"status": "affected",
"version": "7a81638485c1a62a87b4c391ecc9c651a4a9dc19",
"versionType": "git"
},
{
"lessThan": "286533cb14a3c8a8bd39ff64ea2fc8e1aa0f638b",
"status": "affected",
"version": "7a81638485c1a62a87b4c391ecc9c651a4a9dc19",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/gpio/gpio-sch.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.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": "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.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\ngpio: sch: use raw_spinlock_t in the irq startup path\n\nsch_irq_unmask() enables the GPIO IRQ and then updates the controller\nstate through sch_irq_mask_unmask(), which takes sch-\u003elock with\nspin_lock_irqsave(). The callback can be reached from irq_startup()\nwhile setting up a requested IRQ. That path is not sleepable, but on\nPREEMPT_RT a regular spinlock_t becomes a sleeping lock.\n\nThis issue was found by our static analysis tool and then manually\nreviewed against the current tree.\n\nThe grounded PoC kept the request_threaded_irq() -\u003e __setup_irq() -\u003e\nirq_startup() -\u003e sch_irq_unmask() -\u003e sch_irq_mask_unmask() carrier and\nused the original spin_lock_irqsave(\u0026sch-\u003elock) edge. Lockdep reported:\n\n BUG: sleeping function called from invalid context\n hardirqs last disabled at ... __setup_irq.constprop.0 ... [vuln_msv]\n sch_rt_spin_lock_irqsave+0x1c/0x30 [vuln_msv]\n sch_irq_mask_unmask.constprop.0+0x31/0x70 [vuln_msv]\n __setup_irq.constprop.0+0xd/0x30 [vuln_msv]\n\nConvert the SCH controller lock to raw_spinlock_t. The same lock is\nalso used by the GPIO direction and value callbacks, but those critical\nsections only update MMIO-backed GPIO registers and do not contain\nsleepable operations. Keeping this register lock non-sleeping is\ntherefore appropriate for the irqchip callbacks and does not change the\nGPIO-side locking contract."
}
],
"providerMetadata": {
"dateUpdated": "2026-08-17T04:55:28.748Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/3b1aa05ec27eeccc889ecaa3f2d9baa9f453e50d"
},
{
"url": "https://git.kernel.org/stable/c/4f03a15cc73c83740fc355ee22b336492d17b4da"
},
{
"url": "https://git.kernel.org/stable/c/7a550256d68bbdfa0903ab1c4595c04a6815493a"
},
{
"url": "https://git.kernel.org/stable/c/a235cec779bb39ec8f961a935b28a2ce278c6c64"
},
{
"url": "https://git.kernel.org/stable/c/4508366ab7dd0c2917a51a9c2e23cc1b9d35157a"
},
{
"url": "https://git.kernel.org/stable/c/41cad91a09d69e8fff4e936db29b1054b4e9f9f7"
},
{
"url": "https://git.kernel.org/stable/c/286533cb14a3c8a8bd39ff64ea2fc8e1aa0f638b"
}
],
"title": "gpio: sch: use raw_spinlock_t in the irq startup path",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-64428",
"datePublished": "2026-07-25T08:51:05.460Z",
"dateReserved": "2026-07-19T15:36:31.787Z",
"dateUpdated": "2026-08-17T04:55:28.748Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-92488 (GCVE-0-2026-92488)
Vulnerability from cvelistv5
Published
2026-09-17 16:10
Modified
2026-10-30 12:35
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
RDMA/erdma: complete object teardown when the destroy command fails
erdma_destroy_qp(), erdma_destroy_cq(), erdma_dereg_mr(), and
erdma_destroy_ah() returned early when erdma_post_cmd_wait() failed,
leaking the queue buffers, MTTs, doorbells and the STAG, QPN, CQN and AHN
identifiers. A command timeout clears ERDMA_CMDQ_STATE_OK_BIT and
permanently disables the command queue, so no retry can succeed; the RDMA
core keeps the object after a failed destructor and forced uverbs cleanup
then nulls the pointers, making the resources unreachable.
Warn on failure but release every software-owned resource and return
success, since during terminal destruction the hardware command result is
only diagnostic.
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_verbs.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "4f5cd6a2081ec956db25b8e9f71d052f68d522c7",
"status": "affected",
"version": "155055771704f8cbb5c176a4309b7dc30a50450c",
"versionType": "git"
},
{
"lessThan": "3886d944b506e0cc681646beb03c3024cb375a68",
"status": "affected",
"version": "155055771704f8cbb5c176a4309b7dc30a50450c",
"versionType": "git"
},
{
"lessThan": "5fcfc988ecf3e2bbe308b95c2c0d2f011d9afabe",
"status": "affected",
"version": "155055771704f8cbb5c176a4309b7dc30a50450c",
"versionType": "git"
},
{
"lessThan": "ce7d205c264665517c25e8a3231cf2d0c2443e3c",
"status": "affected",
"version": "155055771704f8cbb5c176a4309b7dc30a50450c",
"versionType": "git"
},
{
"lessThan": "334145d683ad3e31d052247f10807f2ebc950351",
"status": "affected",
"version": "155055771704f8cbb5c176a4309b7dc30a50450c",
"versionType": "git"
},
{
"lessThan": "652befcba956ef357f480525ccbe25c59bc81d4d",
"status": "affected",
"version": "155055771704f8cbb5c176a4309b7dc30a50450c",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/infiniband/hw/erdma/erdma_verbs.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.191",
"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.1.191",
"versionStartIncluding": "6.0",
"vulnerable": true
},
{
"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: complete object teardown when the destroy command fails\n\nerdma_destroy_qp(), erdma_destroy_cq(), erdma_dereg_mr(), and\nerdma_destroy_ah() returned early when erdma_post_cmd_wait() failed,\nleaking the queue buffers, MTTs, doorbells and the STAG, QPN, CQN and AHN\nidentifiers. A command timeout clears ERDMA_CMDQ_STATE_OK_BIT and\npermanently disables the command queue, so no retry can succeed; the RDMA\ncore keeps the object after a failed destructor and forced uverbs cleanup\nthen nulls the pointers, making the resources unreachable.\n\nWarn on failure but release every software-owned resource and return\nsuccess, since during terminal destruction the hardware command result is\nonly diagnostic."
}
],
"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 bug is reached from ib_uverbs_write(IB_USER_VERBS_CMD_DESTROY_QP/DESTROY_CQ/DEREG_MR/DESTROY_AH) or ib_uverbs_ioctl(UVERBS_METHOD_*_DESTROY) on /dev/infiniband/uverbs*, which call uobj_destroy -\u003e ib_destroy_qp_user/ib_destroy_cq_user/ib_dereg_mr_user -\u003e erdma_destroy_*; a remote RoCE/iWARP peer never supplies that destroy command.\nAC:H - erdma_destroy_qp/cq/ah and erdma_dereg_mr only skip teardown when erdma_post_cmd_wait() fails. That wait returns -ETIME after ERDMA_CMDQ_TIMEOUT_MS and then clears ERDMA_CMDQ_STATE_OK_BIT, or -EIO on a hardware syndrome; the SQE is built by the driver from the kernel-owned QPN/CQN/lkey/AHN, so the attacker cannot force that failure.\nPR:L - ib_uverbs_open() only checks rdma_dev_access_netns() and uverbs_devnode() sets mode 0666. erdma_alloc_ucontext() requires CAP_SYS_RAWIO only when ERDMA_DEV_CAP_FLAGS_EXTEND_DB is unset; on extend-doorbell hardware an unprivileged local user can GET_CONTEXT, CREATE_QP/CQ and then hit the failing destructors.\nUI:N - The attacker issues DESTROY_* on their own uverbs fd or closes it so ib_uverbs_close() runs uverbs_destroy_ufile_hw(); no other user must mount a filesystem, open a file, or otherwise cooperate.\nS:U - A leftover erdma_cq/erdma_qp in cq_xa/qp_xa and a UAF of the associated ib_ucq_object stay inside the host kernel; this is not a KVM/Xen guest-to-host escape or an IOMMU/DMA boundary bypass.\nC:H - On command failure erdma_destroy_cq() returns before xa_erase(\u0026dev-\u003ecq_xa). __uverbs_cleanup_ufile(RDMA_REMOVE_DRIVER_FAILURE) then nulls uobj-\u003eobject without ib_destroy_cq_user and frees the ib_ucq_object, so erdma_ceq_completion_handler() -\u003e ib_uverbs_comp_handler() reads the freed cq-\u003euobject.\nI:H - The same ib_uverbs_comp_handler() then list_add_tail()s onto the freed ev_queue-\u003eevent_list and ib_ucq_object.comp_list after DRIVER_FAILURE dropped the uobject, a use-after-free write into slab memory that can corrupt a reused object or freelist metadata.\nA:H - The CEQ tasklet UAF in ib_uverbs_comp_handler() can oops; independently, returning before erdma_free_idx()/put_mtt_entries()/dma_free_coherent() leaks STAG/QPN/CQN/AHN IDs and DMA queue buffers, and a cmdq timeout permanently disables further commands."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-30T12:35:39.917Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/4f5cd6a2081ec956db25b8e9f71d052f68d522c7"
},
{
"url": "https://git.kernel.org/stable/c/3886d944b506e0cc681646beb03c3024cb375a68"
},
{
"url": "https://git.kernel.org/stable/c/5fcfc988ecf3e2bbe308b95c2c0d2f011d9afabe"
},
{
"url": "https://git.kernel.org/stable/c/ce7d205c264665517c25e8a3231cf2d0c2443e3c"
},
{
"url": "https://git.kernel.org/stable/c/334145d683ad3e31d052247f10807f2ebc950351"
},
{
"url": "https://git.kernel.org/stable/c/652befcba956ef357f480525ccbe25c59bc81d4d"
}
],
"title": "RDMA/erdma: complete object teardown when the destroy command fails",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-92488",
"datePublished": "2026-09-17T16:10:02.962Z",
"dateReserved": "2026-09-16T12:21:13.870Z",
"dateUpdated": "2026-10-30T12:35:39.917Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-90289 (GCVE-0-2026-90289)
Vulnerability from cvelistv5
Published
2026-09-17 16:08
Modified
2026-10-30 12:35
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
drm/amd/display: Resize MST HDCP per-connector arrays to 32
AMDGPU_DM_MAX_DISPLAY_INDEX is 31. It suggest a maximum number of
32 connectors. But the way it's used is like MAX_DISPLAY_COUNT.
Hence we're off by one with DRM core, which supports a max of 32
connectors.
Rename AMDGPU_DM_MAX_DISPLAY_INDEX to AMDGPU_DM_MAX_DISPLAY_COUNT
to match its actual use, and increase the size to 32 to match the
originally intended size.
References
| URL | Tags | |||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: d90f97cb3821c47bdf773dcf6cade143773ec764 Version: 82986fd631fa04bcedaefe11a6b3767601cbe84f Version: 82986fd631fa04bcedaefe11a6b3767601cbe84f Version: 82986fd631fa04bcedaefe11a6b3767601cbe84f Version: 82986fd631fa04bcedaefe11a6b3767601cbe84f Version: 82986fd631fa04bcedaefe11a6b3767601cbe84f Version: 99c444d3c3c43db354b253d9bfac081073dcb484 Version: 6.1.47 ≤ Version: 5.15.128 ≤ |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_hdcp.c",
"drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_hdcp.h"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "1c22294c7d9b3b1c26a18ca4eca8c863a5a0d907",
"status": "affected",
"version": "d90f97cb3821c47bdf773dcf6cade143773ec764",
"versionType": "git"
},
{
"lessThan": "decea8279bec5a35413b2cb8e36951cca308fac0",
"status": "affected",
"version": "82986fd631fa04bcedaefe11a6b3767601cbe84f",
"versionType": "git"
},
{
"lessThan": "ac490fea9fe74f9d9975c5d8250c8719750589cd",
"status": "affected",
"version": "82986fd631fa04bcedaefe11a6b3767601cbe84f",
"versionType": "git"
},
{
"lessThan": "562d24ac214ba9530d88841088eb6adce5c537b5",
"status": "affected",
"version": "82986fd631fa04bcedaefe11a6b3767601cbe84f",
"versionType": "git"
},
{
"lessThan": "0fa116a17b69a28712cdf209318e345b676d7f6c",
"status": "affected",
"version": "82986fd631fa04bcedaefe11a6b3767601cbe84f",
"versionType": "git"
},
{
"lessThan": "261e0fe4e2c99f687114b64b10b98db964b475f4",
"status": "affected",
"version": "82986fd631fa04bcedaefe11a6b3767601cbe84f",
"versionType": "git"
},
{
"status": "affected",
"version": "99c444d3c3c43db354b253d9bfac081073dcb484",
"versionType": "git"
},
{
"lessThan": "6.1.191",
"status": "affected",
"version": "6.1.47",
"versionType": "semver"
},
{
"lessThan": "5.16",
"status": "affected",
"version": "5.15.128",
"versionType": "semver"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_hdcp.c",
"drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_hdcp.h"
],
"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.1.*",
"status": "unaffected",
"version": "6.1.191",
"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.1.191",
"versionStartIncluding": "6.1.47",
"vulnerable": true
},
{
"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.114",
"versionStartIncluding": "6.3",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.57",
"versionStartIncluding": "6.3",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.6",
"versionStartIncluding": "6.3",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "6.3",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "5.15.128",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\ndrm/amd/display: Resize MST HDCP per-connector arrays to 32\n\nAMDGPU_DM_MAX_DISPLAY_INDEX is 31. It suggest a maximum number of\n32 connectors. But the way it\u0027s used is like MAX_DISPLAY_COUNT.\nHence we\u0027re off by one with DRM core, which supports a max of 32\nconnectors.\n\nRename AMDGPU_DM_MAX_DISPLAY_INDEX to AMDGPU_DM_MAX_DISPLAY_COUNT\nto match its actual use, and increase the size to 32 to match the\noriginally intended 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 - hdcp_update_display() and update_config() index hdcp_workqueue.aconnector[] with aconnector-\u003ebase.index from drm_connector_init_only()\u0027s ida_alloc_max(..., 31). The path is DRM_IOCTL_MODE_ATOMIC \u2192 drm_mode_atomic_ioctl \u2192 amdgpu_dm_atomic_commit_tail \u2192 amdgpu_dm_update_hdcp()/update_psp_stream_config(); dm_dp_mst_get_modes() is reached from DRM_IOCTL_MODE_GETCONNECTOR. The index is kernel-assigned, not a protocol field.\nAC:L - No race or layout lottery: drm_connector_init_only() can assign index 31, and dm_dp_add_mst_connector() creates MST connectors until that id is used. A DRM-master atomic commit that enables that connector calls update_config(), which does hdcp_w-\u003eaconnector[conn_index] with no bounds check. hdcp_create_workqueue() is created by default on Raven-and-later GPUs.\nPR:L - drm_mode_atomic_ioctl and drm_mode_obj_set_property_ioctl are DRM_MASTER in drm_ioctl.c; drm_mode_getconnector() only calls fill_modes when drm_is_current_master(). logind grants DRM master to the seated unprivileged video/render-group user on typical AMDGPU desktops, laptops, and cloud GPU instances, so init-namespace root is not required.\nUI:N - The DRM-master attacker triggers the OOB with their own DRM_IOCTL_MODE_ATOMIC (stream enable through update_psp_stream_config(), or Content Protection via amdgpu_dm_update_hdcp()) on the index-31 connector; no other user must mount media, open a file, or attach a display on the attacker\u0027s behalf.\nS:U - aconnector[31] overwrites the following hdcp_workqueue.mutex in the same host-kernel AMDGPU HDCP object; the corruption and any oops stay inside that kernel authority and do not cross a KVM/Xen, IOMMU, or sandbox boundary.\nC:H - hdcp_update_display() holds hdcp_w-\u003emutex then reads aconnector[31], which overlays mutex.owner (the locked task_struct *). A non-NULL owner is treated as amdgpu_dm_connector * and drm_connector_put(\u0026...-\u003ebase) follows it. dm_dp_mst_get_modes() also copies hdcp_content_type[31]/content_protection[31] into connector state readable via GETCONNECTOR.\nI:H - hdcp_update_display() and update_config() write aconnector[31]=aconnector, storing an amdgpu_dm_connector * over mutex.owner while the lock is held. amdgpu_dm_update_hdcp() also writes hdcp_content_type[connector-\u003eindex] and content_protection[connector-\u003eindex] on MST. That is an out-of-bounds write into adjacent hdcp_workqueue fields.\nA:H - drm_connector_put() on mutex.owner type-confused as amdgpu_dm_connector, and later lock operations on a mutex whose owner was replaced by a connector pointer, oops or panic the kernel in amdgpu_dm_atomic_commit_tail/HDCP workqueue paths."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-30T12:35:03.620Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/1c22294c7d9b3b1c26a18ca4eca8c863a5a0d907"
},
{
"url": "https://git.kernel.org/stable/c/decea8279bec5a35413b2cb8e36951cca308fac0"
},
{
"url": "https://git.kernel.org/stable/c/ac490fea9fe74f9d9975c5d8250c8719750589cd"
},
{
"url": "https://git.kernel.org/stable/c/562d24ac214ba9530d88841088eb6adce5c537b5"
},
{
"url": "https://git.kernel.org/stable/c/0fa116a17b69a28712cdf209318e345b676d7f6c"
},
{
"url": "https://git.kernel.org/stable/c/261e0fe4e2c99f687114b64b10b98db964b475f4"
}
],
"title": "drm/amd/display: Resize MST HDCP per-connector arrays to 32",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-90289",
"datePublished": "2026-09-17T16:08:17.368Z",
"dateReserved": "2026-09-11T19:38:34.798Z",
"dateUpdated": "2026-10-30T12:35:03.620Z",
"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-98365 (GCVE-0-2026-98365)
Vulnerability from cvelistv5
Published
2026-10-06 08:46
Modified
2026-10-19 09:18
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
RDMA/rxe: Fix integer overflow in mr_check_range() leading to OOB access
mr_check_range() validates that [iova, iova+length) falls within the
registered MR range using wraparound-prone arithmetic:
if (iova < mr->ibmr.iova ||
iova + length > mr->ibmr.iova + mr->ibmr.length)
A remote peer can craft an RDMA-Write/Read RETH so that iova + length
wraps to 0 (e.g. iova=0xfffffffffffffff8, length=8), bypassing the
check. rxe_mr_iova_to_index() then computes a huge index (int idx, only
guarded by WARN_ON) and rxe_mr_copy_xarray() dereferences
mr->page_info[huge], causing an out-of-bounds read/write and a kernel
oops that is triggerable by an unauthenticated remote peer.
Rewrite the check in overflow-safe form; the first two clauses guarantee
that the subsequent subtractions do not underflow:
if (iova < mr->ibmr.iova ||
length > mr->ibmr.length ||
iova - mr->ibmr.iova > mr->ibmr.length - length)
With the fix, mr_check_range() returns -EINVAL for the crafted iova and
the responder reports REMOTE_ACCESS_ERROR instead of triggering the OOB.
References
| URL | Tags | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/infiniband/sw/rxe/rxe_mr.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "b7d2118660545a00b21e83010ded1a231c6fb8c5",
"status": "affected",
"version": "8700e3e7c4857d28ebaa824509934556da0b3e76",
"versionType": "git"
},
{
"lessThan": "5d9426a74fc8cb8f375fcdc19b465a030f9b8cab",
"status": "affected",
"version": "8700e3e7c4857d28ebaa824509934556da0b3e76",
"versionType": "git"
},
{
"lessThan": "2f3b705144e3a3c14184fec6e354680081fe91ec",
"status": "affected",
"version": "8700e3e7c4857d28ebaa824509934556da0b3e76",
"versionType": "git"
},
{
"lessThan": "3431f525718f6b07da308cda6d44f8cb548bbd37",
"status": "affected",
"version": "8700e3e7c4857d28ebaa824509934556da0b3e76",
"versionType": "git"
},
{
"lessThan": "d10e2a08799e858d3e71ea4169bcd018f216d444",
"status": "affected",
"version": "8700e3e7c4857d28ebaa824509934556da0b3e76",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/infiniband/sw/rxe/rxe_mr.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.158",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.112",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.54",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.8",
"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.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.112",
"versionStartIncluding": "4.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.54",
"versionStartIncluding": "4.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.8",
"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 integer overflow in mr_check_range() leading to OOB access\n\nmr_check_range() validates that [iova, iova+length) falls within the\nregistered MR range using wraparound-prone arithmetic:\n\n if (iova \u003c mr-\u003eibmr.iova ||\n iova + length \u003e mr-\u003eibmr.iova + mr-\u003eibmr.length)\n\nA remote peer can craft an RDMA-Write/Read RETH so that iova + length\nwraps to 0 (e.g. iova=0xfffffffffffffff8, length=8), bypassing the\ncheck. rxe_mr_iova_to_index() then computes a huge index (int idx, only\nguarded by WARN_ON) and rxe_mr_copy_xarray() dereferences\nmr-\u003epage_info[huge], causing an out-of-bounds read/write and a kernel\noops that is triggerable by an unauthenticated remote peer.\n\nRewrite the check in overflow-safe form; the first two clauses guarantee\nthat the subsequent subtractions do not underflow:\n\n if (iova \u003c mr-\u003eibmr.iova ||\n length \u003e mr-\u003eibmr.length ||\n iova - mr-\u003eibmr.iova \u003e mr-\u003eibmr.length - length)\n\nWith the fix, mr_check_range() returns -EINVAL for the crafted iova and\nthe responder reports REMOTE_ACCESS_ERROR instead of triggering the OOB."
}
],
"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 bad iova and length come from the RETH header of a RoCEv2 RDMA WRITE/READ (UDP/IP, routable). qp_resp_from_reth() copies them into qp-\u003eresp, and check_rkey() hands them to mr_check_range(), where iova+length wraps past 2^64 and the bounds check passes.\nAC:L - The attacker is the connected RC peer, so it controls the QPN, PSN and RETH contents and chooses va near 2^64 to make iova+length wrap for any MR. The bug fires on the first packet, with no race or memory layout to win.\nPR:N - RoCE has no authentication. check_addr() only matches the peer\u0027s IP address, and services such as rtrs-srv send MR rkeys with IB_ACCESS_REMOTE_WRITE to any client that connects, without checking credentials.\nUI:N - No victim action is needed. The responder processes the attacker\u0027s RETH request entirely in kernel receive context once the QP is connected.\nS:U - The out-of-bounds access corrupts or discloses kernel memory on the same host, inside the kernel\u0027s own security authority. No VM or IOMMU boundary is crossed.\nC:H - For RDMA READ, rxe_mr_copy_xarray() memcpy()s from a struct page pointer read out of bounds of mr-\u003epage_info[], and that data is sent back to the remote peer. Choosing va moves the index over a window of about 2^20 entries.\nI:H - For RDMA WRITE, rxe_mr_copy_xarray() memcpy()s the peer\u0027s payload into the page pointed to by the out-of-bounds page_info[idx].page entry. That is a remote write into kernel-chosen memory, which can be used to hijack control flow.\nA:H - An out-of-bounds page_info index, past the WARN_ON in rxe_mr_iova_to_index(), dereferences garbage page pointers and oopses the kernel. A remote peer can repeat this at will."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T09:18:17.324Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/b7d2118660545a00b21e83010ded1a231c6fb8c5"
},
{
"url": "https://git.kernel.org/stable/c/5d9426a74fc8cb8f375fcdc19b465a030f9b8cab"
},
{
"url": "https://git.kernel.org/stable/c/2f3b705144e3a3c14184fec6e354680081fe91ec"
},
{
"url": "https://git.kernel.org/stable/c/3431f525718f6b07da308cda6d44f8cb548bbd37"
},
{
"url": "https://git.kernel.org/stable/c/d10e2a08799e858d3e71ea4169bcd018f216d444"
}
],
"title": "RDMA/rxe: Fix integer overflow in mr_check_range() leading to OOB access",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-98365",
"datePublished": "2026-10-06T08:46:50.834Z",
"dateReserved": "2026-09-25T10:25:14.344Z",
"dateUpdated": "2026-10-19T09:18:17.324Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-43457 (GCVE-0-2026-43457)
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:
mctp: i2c: fix skb memory leak in receive path
When 'midev->allow_rx' is false, the newly allocated skb isn't consumed
by netif_rx(), it needs to free the skb directly.
References
| URL | Tags | |||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: f5b8abf9fc3dacd7529d363e26fe8230935d65f8 Version: f5b8abf9fc3dacd7529d363e26fe8230935d65f8 Version: f5b8abf9fc3dacd7529d363e26fe8230935d65f8 Version: f5b8abf9fc3dacd7529d363e26fe8230935d65f8 Version: f5b8abf9fc3dacd7529d363e26fe8230935d65f8 Version: f5b8abf9fc3dacd7529d363e26fe8230935d65f8 |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/net/mctp/mctp-i2c.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "0fb2adbdd5c03e8c9ebcdc48afd414b2724c85eb",
"status": "affected",
"version": "f5b8abf9fc3dacd7529d363e26fe8230935d65f8",
"versionType": "git"
},
{
"lessThan": "d7900a43b0a314a645ca0a2adf45928dbc7001f4",
"status": "affected",
"version": "f5b8abf9fc3dacd7529d363e26fe8230935d65f8",
"versionType": "git"
},
{
"lessThan": "9f81be2ab9d8e4744871bfb3e868ef413413829f",
"status": "affected",
"version": "f5b8abf9fc3dacd7529d363e26fe8230935d65f8",
"versionType": "git"
},
{
"lessThan": "1ec54187e1aa40a4cfa2b265e9a311179f24b98d",
"status": "affected",
"version": "f5b8abf9fc3dacd7529d363e26fe8230935d65f8",
"versionType": "git"
},
{
"lessThan": "1b1be322342a6b0085bf6ee52235e5ac9834ec25",
"status": "affected",
"version": "f5b8abf9fc3dacd7529d363e26fe8230935d65f8",
"versionType": "git"
},
{
"lessThan": "e3f5e0f22cfc2371e7471c9fd5b4da78f9df7c69",
"status": "affected",
"version": "f5b8abf9fc3dacd7529d363e26fe8230935d65f8",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/net/mctp/mctp-i2c.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.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.18",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.130",
"versionStartIncluding": "5.18",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.78",
"versionStartIncluding": "5.18",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.19",
"versionStartIncluding": "5.18",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.19.9",
"versionStartIncluding": "5.18",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.0",
"versionStartIncluding": "5.18",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nmctp: i2c: fix skb memory leak in receive path\n\nWhen \u0027midev-\u003eallow_rx\u0027 is false, the newly allocated skb isn\u0027t consumed\nby netif_rx(), it needs to free the skb directly."
}
],
"providerMetadata": {
"dateUpdated": "2026-05-11T22:24:57.488Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/0fb2adbdd5c03e8c9ebcdc48afd414b2724c85eb"
},
{
"url": "https://git.kernel.org/stable/c/d7900a43b0a314a645ca0a2adf45928dbc7001f4"
},
{
"url": "https://git.kernel.org/stable/c/9f81be2ab9d8e4744871bfb3e868ef413413829f"
},
{
"url": "https://git.kernel.org/stable/c/1ec54187e1aa40a4cfa2b265e9a311179f24b98d"
},
{
"url": "https://git.kernel.org/stable/c/1b1be322342a6b0085bf6ee52235e5ac9834ec25"
},
{
"url": "https://git.kernel.org/stable/c/e3f5e0f22cfc2371e7471c9fd5b4da78f9df7c69"
}
],
"title": "mctp: i2c: fix skb memory leak in receive path",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-43457",
"datePublished": "2026-05-08T14:22:20.725Z",
"dateReserved": "2026-05-01T14:12:56.010Z",
"dateUpdated": "2026-05-11T22:24:57.488Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-89778 (GCVE-0-2026-89778)
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:
isofs: fix out-of-bounds page array access on empty zisofs block
zisofs_uncompress_block()'s empty-block fast path returns
pcount << PAGE_SHIFT, ignoring the incoming poffset, unlike the
decompression path which returns bytes produced relative to poffset.
zisofs_fill_pages() uses that return to advance its page cursor, so when
the zisofs block size is below PAGE_SIZE and a sub-page block leaves
poffset partway into a page, a following empty block over-counts and
advances pages[] one element past its end, after which
"if (poffset && *pages)" reads pages[1] out of bounds. rock.c only
rejects a block-size shift > 17, so a crafted "ZF" Rock Ridge record can
set it below PAGE_SHIFT; the bug is reached by an ordinary read() of a
compressed file on such a mounted ISO9660 image.
Return the byte count relative to poffset and zero only
[poffset, PAGE_SIZE) of the first page, matching the decompression path.
The page-aligned case (poffset == 0) is unaffected.
BUG: KASAN: slab-out-of-bounds in zisofs_read_folio (fs/isofs/compress.c:290)
Read of size 8 at addr ffff88800f5eac48 by task exploit/142
zisofs_read_folio (fs/isofs/compress.c:290)
read_pages (mm/readahead.c:184)
...
filemap_read (mm/filemap.c:2814)
vfs_read (fs/read_write.c:574)
__x64_sys_pread64 (fs/read_write.c:769)
do_syscall_64 (arch/x86/entry/syscall_64.c:94)
entry_SYSCALL_64_after_hwframe (arch/x86/entry/entry_64.S:121)
The buggy address is located 0 bytes to the right of the
allocated 8-byte region in the kmalloc-8 cache
References
| URL | Tags | ||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
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": "8b994ac5778a725982fd6a8a3afcaa068d4a93e3",
"status": "affected",
"version": "59bc055211b8d266ab6089158058bf8268e02006",
"versionType": "git"
},
{
"lessThan": "ad3249cdf9d4ba34bb8b1ff3956a4020fdfb5b0a",
"status": "affected",
"version": "59bc055211b8d266ab6089158058bf8268e02006",
"versionType": "git"
},
{
"lessThan": "85904076cece72ee3194646ad7ac8e6659d999aa",
"status": "affected",
"version": "59bc055211b8d266ab6089158058bf8268e02006",
"versionType": "git"
},
{
"lessThan": "f03425dcbe04aec3c27b9917e97d7d23a2908dda",
"status": "affected",
"version": "59bc055211b8d266ab6089158058bf8268e02006",
"versionType": "git"
},
{
"lessThan": "cd616aa0449a772a6956abf03358f0ff31720580",
"status": "affected",
"version": "59bc055211b8d266ab6089158058bf8268e02006",
"versionType": "git"
},
{
"lessThan": "9c6eace8d07e90f038c89eb3b756d65a7e259d48",
"status": "affected",
"version": "59bc055211b8d266ab6089158058bf8268e02006",
"versionType": "git"
},
{
"lessThan": "68d4d3e78150c7ed7d1195af63ad1e6ace30c661",
"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.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": "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: fix out-of-bounds page array access on empty zisofs block\n\nzisofs_uncompress_block()\u0027s empty-block fast path returns\npcount \u003c\u003c PAGE_SHIFT, ignoring the incoming poffset, unlike the\ndecompression path which returns bytes produced relative to poffset.\nzisofs_fill_pages() uses that return to advance its page cursor, so when\nthe zisofs block size is below PAGE_SIZE and a sub-page block leaves\npoffset partway into a page, a following empty block over-counts and\nadvances pages[] one element past its end, after which\n\"if (poffset \u0026\u0026 *pages)\" reads pages[1] out of bounds. rock.c only\nrejects a block-size shift \u003e 17, so a crafted \"ZF\" Rock Ridge record can\nset it below PAGE_SHIFT; the bug is reached by an ordinary read() of a\ncompressed file on such a mounted ISO9660 image.\n\nReturn the byte count relative to poffset and zero only\n[poffset, PAGE_SIZE) of the first page, matching the decompression path.\nThe page-aligned case (poffset == 0) is unaffected.\n\n BUG: KASAN: slab-out-of-bounds in zisofs_read_folio (fs/isofs/compress.c:290)\n Read of size 8 at addr ffff88800f5eac48 by task exploit/142\n zisofs_read_folio (fs/isofs/compress.c:290)\n read_pages (mm/readahead.c:184)\n ...\n filemap_read (mm/filemap.c:2814)\n vfs_read (fs/read_write.c:574)\n __x64_sys_pread64 (fs/read_write.c:769)\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 The buggy address is located 0 bytes to the right of the\n allocated 8-byte region in the kmalloc-8 cache"
}
],
"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 - isofs assigns s_export_op to isofs_export_ops; nfsd_read then nfsd_iter_read (vfs_iocb_iter_read) and ksmbd_vfs_read (kernel_read) perform VFS reads that reach generic_file_read_iter, filemap_read, and zisofs_read_folio, so a remote NFS or SMB client can trigger the bug on a host exporting a crafted ISO9660 image.\nAC:L - The attacker fully controls the Rock Ridge ZF parms (rock.c only rejects block_shift \u003e 17) and the zisofs block pointer table; a block_shift below PAGE_SHIFT plus a nonempty sub-page block followed by an empty block (block_start==block_end) deterministically over-advances pages[] with no race.\nPR:N - A remote NFS or SMB client needs only read access to an exported iso9660 tree; AUTH_SYS media-server exports commonly require no host credentials, and compressed regular files default to S_IRUGO. No CAP_SYS_ADMIN on the victim host is required on the read path.\nUI:N - Once an iso9660 volume containing the crafted zisofs file is exported, the NFS or SMB server processes the client\u0027s READ automatically; no separate victim must open a file or click a dialog at attack time beyond that pre-existing export.\nS:U - The slab out-of-bounds pointer load and any memzero_page or SetPageUptodate side effects remain inside the host kernel; this is not a VM escape, IOMMU/DMA bypass, or other cross-authority boundary.\nC:H - zisofs_fill_pages loads an 8-byte pointer from one slot past a kmalloc-8 pages[] allocation and may treat adjacent heap data as a struct page. With heap grooming this memory corruption can be turned into a kernel information-disclosure primitive, so confidentiality impact is High.\nI:H - When the out-of-bounds pointer is non-NULL, memzero_page() writes zeros through kmap_local_page() of the forged page and SetPageUptodate() corrupts page flags, yielding a kernel write primitive against attacker-groomed heap or page objects that can be chained to control-flow hijack.\nA:H - KASAN reports a slab-out-of-bounds read in zisofs_read_folio; feeding a non-page pointer to kmap_local_page or memzero_page oopses or panics the kernel, and the attacker can repeat the NFS, SMB, or local read at will."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T08:52:30.510Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/8b994ac5778a725982fd6a8a3afcaa068d4a93e3"
},
{
"url": "https://git.kernel.org/stable/c/ad3249cdf9d4ba34bb8b1ff3956a4020fdfb5b0a"
},
{
"url": "https://git.kernel.org/stable/c/85904076cece72ee3194646ad7ac8e6659d999aa"
},
{
"url": "https://git.kernel.org/stable/c/f03425dcbe04aec3c27b9917e97d7d23a2908dda"
},
{
"url": "https://git.kernel.org/stable/c/cd616aa0449a772a6956abf03358f0ff31720580"
},
{
"url": "https://git.kernel.org/stable/c/9c6eace8d07e90f038c89eb3b756d65a7e259d48"
},
{
"url": "https://git.kernel.org/stable/c/68d4d3e78150c7ed7d1195af63ad1e6ace30c661"
}
],
"title": "isofs: fix out-of-bounds page array access on empty zisofs block",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-89778",
"datePublished": "2026-09-16T08:48:18.407Z",
"dateReserved": "2026-09-11T19:38:34.765Z",
"dateUpdated": "2026-10-19T08:52:30.510Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-72250 (GCVE-0-2026-72250)
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_conntrack_reasm: guard mac_header adjustment after IPv6 defrag
nf_ct_frag6_reasm() slides the packet head forward to drop the IPv6
fragment header and then unconditionally advances skb->mac_header:
skb->mac_header += sizeof(struct frag_hdr);
On the NF_INET_LOCAL_OUT defrag path the skb has no link-layer header
yet, so skb->mac_header is still the "not set" sentinel (u16)~0U. Adding
sizeof(struct frag_hdr) wraps it to a small value (0xffff + 8 == 7),
after which skb_mac_header_was_set() wrongly reports a MAC header is
present and skb_mac_header() points into the headroom.
The reassembler has done this unconditional add since it was introduced;
it was harmless while mac_header was a bare pointer, but wrong once
mac_header became a u16 offset whose unset state is the ~0U sentinel
tested by skb_mac_header_was_set(). The sibling net/ipv6/reassembly.c
does the same relocation and does guard the adjustment; mirror the
guard here.
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-72250",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T18:45:08.646891Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T18:55:13.023Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/ipv6/netfilter/nf_conntrack_reasm.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "6e8cd710ca35c576f5f2e5a396047c9ac61f75e5",
"status": "affected",
"version": "9fb9cbb1082d6b31fb45aa1a14432449a0df6cf1",
"versionType": "git"
},
{
"lessThan": "2a95ec21824a8ad81ad660b12231456fc0ac9830",
"status": "affected",
"version": "9fb9cbb1082d6b31fb45aa1a14432449a0df6cf1",
"versionType": "git"
},
{
"lessThan": "bbcdef2061b170af45702ce6b359c02c12acfc94",
"status": "affected",
"version": "9fb9cbb1082d6b31fb45aa1a14432449a0df6cf1",
"versionType": "git"
},
{
"lessThan": "cd0d7bbc027b4d3329712cdcdeb4e5567ffd0d58",
"status": "affected",
"version": "9fb9cbb1082d6b31fb45aa1a14432449a0df6cf1",
"versionType": "git"
},
{
"lessThan": "53ef70a315420ed31581d38343684b3bf9a3c76d",
"status": "affected",
"version": "9fb9cbb1082d6b31fb45aa1a14432449a0df6cf1",
"versionType": "git"
},
{
"lessThan": "a58230f3a7c4f6c3261786bc1efb72c42e68cd25",
"status": "affected",
"version": "9fb9cbb1082d6b31fb45aa1a14432449a0df6cf1",
"versionType": "git"
},
{
"lessThan": "00bdce2fda7e430d24cfbc96764a1b96deb31f82",
"status": "affected",
"version": "9fb9cbb1082d6b31fb45aa1a14432449a0df6cf1",
"versionType": "git"
},
{
"lessThan": "3b08fed5b7e0d5e3a25d73ef3ba09cd33ade16c9",
"status": "affected",
"version": "9fb9cbb1082d6b31fb45aa1a14432449a0df6cf1",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/ipv6/netfilter/nf_conntrack_reasm.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.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.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.212",
"versionStartIncluding": "2.6.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.178",
"versionStartIncluding": "2.6.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.145",
"versionStartIncluding": "2.6.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.97",
"versionStartIncluding": "2.6.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.40",
"versionStartIncluding": "2.6.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.5",
"versionStartIncluding": "2.6.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"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: nf_conntrack_reasm: guard mac_header adjustment after IPv6 defrag\n\nnf_ct_frag6_reasm() slides the packet head forward to drop the IPv6\nfragment header and then unconditionally advances skb-\u003emac_header:\n\n\tskb-\u003emac_header += sizeof(struct frag_hdr);\n\nOn the NF_INET_LOCAL_OUT defrag path the skb has no link-layer header\nyet, so skb-\u003emac_header is still the \"not set\" sentinel (u16)~0U. Adding\nsizeof(struct frag_hdr) wraps it to a small value (0xffff + 8 == 7),\nafter which skb_mac_header_was_set() wrongly reports a MAC header is\npresent and skb_mac_header() points into the headroom.\n\nThe reassembler has done this unconditional add since it was introduced;\nit was harmless while mac_header was a bare pointer, but wrong once\nmac_header became a u16 offset whose unset state is the ~0U sentinel\ntested by skb_mac_header_was_set(). The sibling net/ipv6/reassembly.c\ndoes the same relocation and does guard the adjustment; mirror the\nguard here."
}
],
"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 triggers only when nf_ct_frag6_reasm() runs on NF_INET_LOCAL_OUT with skb-\u003emac_header still unset (~0U). That requires injecting pre-fragmented IPv6 into the local output path (e.g., AF_INET6 SOCK_RAW), not standard remotely received PRE_ROUTING traffic where mac_header is already valid and the adjustment is correct.\nAC:L - An attacker who can send raw IPv6 fragments can reliably complete conntrack reassembly by crafting matching fragment ID/source/destination tuples. nf_defrag_ipv6 is enabled automatically whenever IPv6 connection tracking is in use (typical on nftables/iptables hosts), so no rare race or admin-only timing is needed.\nPR:L - Triggering handcrafted IPv6 fragments requires CAP_NET_RAW. On systems with unprivileged user namespaces, a local user can obtain CAP_NET_RAW (and CAP_NET_ADMIN for conntrack) via unshare -Urn, so required privileges are Low rather than High root-only access.\nUI:N - Exploitation requires only attacker-controlled fragmented IPv6 traffic and an active conntrack defrag path; it does not depend on any victim user action such as opening files, mounting filesystems, or clicking links.\nS:U - Impact is skb metadata corruption within the kernel network stack in the same security domain. It does not inherently cross VM, container runtime, or IOMMU boundaries without separate privilege-escalation exploitation.\nC:H - Adding sizeof(frag_hdr) to the unset mac_header sentinel wraps to a small offset, so skb_mac_header_was_set() becomes true and skb_mac_header() points into skb headroom. Downstream netfilter/nft L2 helpers can then perform out-of-bounds reads, leaking stale kernel data from headroom.\nI:H - The bogus mac_header and inflated skb_mac_header_len() misdirect later L2 header access and nft payload/meta write paths to incorrect offsets in skb headroom or packet data, enabling memory corruption that can be leveraged for arbitrary kernel writes or control-flow hijacking.\nA:H - Corrupted skb header state can cause kernel oops, panic, or fatal faults when subsequent LOCAL_OUT, netfilter, or output routines use the invalid MAC header pointer, and the associated memory corruption can crash the system even without full exploit development."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-17T05:42:02.183Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/6e8cd710ca35c576f5f2e5a396047c9ac61f75e5"
},
{
"url": "https://git.kernel.org/stable/c/2a95ec21824a8ad81ad660b12231456fc0ac9830"
},
{
"url": "https://git.kernel.org/stable/c/bbcdef2061b170af45702ce6b359c02c12acfc94"
},
{
"url": "https://git.kernel.org/stable/c/cd0d7bbc027b4d3329712cdcdeb4e5567ffd0d58"
},
{
"url": "https://git.kernel.org/stable/c/53ef70a315420ed31581d38343684b3bf9a3c76d"
},
{
"url": "https://git.kernel.org/stable/c/a58230f3a7c4f6c3261786bc1efb72c42e68cd25"
},
{
"url": "https://git.kernel.org/stable/c/00bdce2fda7e430d24cfbc96764a1b96deb31f82"
},
{
"url": "https://git.kernel.org/stable/c/3b08fed5b7e0d5e3a25d73ef3ba09cd33ade16c9"
}
],
"title": "netfilter: nf_conntrack_reasm: guard mac_header adjustment after IPv6 defrag",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-72250",
"datePublished": "2026-08-15T05:54:39.134Z",
"dateReserved": "2026-08-09T03:40:39.915Z",
"dateUpdated": "2026-10-16T18:55:13.023Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-98041 (GCVE-0-2026-98041)
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:
bpf: Don't predict JMP32 pointer vs zero comparisons
Consider the following program:
r1 = map_value; /* low 32 bits are zero at runtime */
r6 = 0xdead000000000000;
if w1 != 0 goto l1;
l0: r1 += r6;
r2 = *(u64 *)(r1 + 0);
exit;
l1: r6 = 0;
goto l0;
At the moment is_branch_taken() reports the jump as always taken,
because it does not distinguish between BPF_JMP and BPF_JMP32
comparisons when processing 'if w1 != 0 ...'.
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": "6e1544986536734166176c3add504add23bcbd15",
"status": "affected",
"version": "cac616db39c207dc63465a4e05c6ce0e60b2cce4",
"versionType": "git"
},
{
"lessThan": "d16f0eafcaa62e677a2b5b0dabc1f8d31dfe3d4d",
"status": "affected",
"version": "cac616db39c207dc63465a4e05c6ce0e60b2cce4",
"versionType": "git"
},
{
"lessThan": "e2ae33247e8b2dbe9d116d3e61cadf6d548339c6",
"status": "affected",
"version": "cac616db39c207dc63465a4e05c6ce0e60b2cce4",
"versionType": "git"
},
{
"lessThan": "a4d7f94c1ca914469ced665ec2f98be669aef462",
"status": "affected",
"version": "cac616db39c207dc63465a4e05c6ce0e60b2cce4",
"versionType": "git"
},
{
"lessThan": "e51179a4e09846f8fd0f26a05068520de2b301bf",
"status": "affected",
"version": "cac616db39c207dc63465a4e05c6ce0e60b2cce4",
"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": "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.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.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\nbpf: Don\u0027t predict JMP32 pointer vs zero comparisons\n\nConsider the following program:\n\n r1 = map_value; /* low 32 bits are zero at runtime */\n r6 = 0xdead000000000000;\n if w1 != 0 goto l1;\n l0: r1 += r6;\n r2 = *(u64 *)(r1 + 0);\n exit;\n l1: r6 = 0;\n goto l0;\n\nAt the moment is_branch_taken() reports the jump as always taken,\nbecause it does not distinguish between BPF_JMP and BPF_JMP32\ncomparisons when processing \u0027if w1 != 0 ...\u0027."
}
],
"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 attacker must load a BPF program locally with bpf(BPF_PROG_LOAD). bpf_check() -\u003e check_cond_jmp_op() -\u003e is_branch_taken() then mispredicts a JMP32 \u0027if wX != 0\u0027 on a pointer register. No network peer supplies any of the input.\nAC:H - The fall-through only diverges at runtime when the pointer\u0027s low 32 bits happen to be zero. An unprivileged attacker cannot read kernel addresses, so they cannot choose that alignment. That route also needs the non-default setting unprivileged_bpf_disabled=0 and a way past the verifier\u0027s unprivileged mitigations.\nPR:L - For JMP32 compares of a pointer against immediate 0, is_branch_taken() runs before the \u0027pointer comparison prohibited\u0027 check, so unprivileged socket-filter programs reach it when kernel.unprivileged_bpf_disabled=0. That setting is non-default on current kernels but was upstream\u0027s default on older affected kernels. Otherwise CAP_BPF in init_user_ns is required.\nUI:N - The attacker writes, loads and runs the BPF program themselves, for example by attaching a socket filter to their own socket and sending traffic. No other user has to act.\nS:U - The result is a kernel privilege escalation inside the same kernel security authority. The bug does not cross a VM or hypervisor boundary.\nC:H - Unverified code on the path the verifier thought unreachable can add an arbitrary scalar to a pointer the verifier believes is in bounds, for example the fix commit\u0027s r1 += r6 with r6=0xdead000000000000. The following load then reads arbitrary kernel memory.\nI:H - The same out-of-bounds pointer can be used as the target of a store, so the bypass gives an arbitrary kernel write and a path to code execution or credential overwrite.\nA:H - Dereferencing the wild pointer on the mispredicted path, such as 0xdead000000000000 in the commit\u0027s reproducer, oopses or panics the kernel."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-21T12:54:10.647Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/6e1544986536734166176c3add504add23bcbd15"
},
{
"url": "https://git.kernel.org/stable/c/d16f0eafcaa62e677a2b5b0dabc1f8d31dfe3d4d"
},
{
"url": "https://git.kernel.org/stable/c/e2ae33247e8b2dbe9d116d3e61cadf6d548339c6"
},
{
"url": "https://git.kernel.org/stable/c/a4d7f94c1ca914469ced665ec2f98be669aef462"
},
{
"url": "https://git.kernel.org/stable/c/e51179a4e09846f8fd0f26a05068520de2b301bf"
}
],
"title": "bpf: Don\u0027t predict JMP32 pointer vs zero comparisons",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-98041",
"datePublished": "2026-09-25T10:23:53.619Z",
"dateReserved": "2026-09-25T10:19:56.071Z",
"dateUpdated": "2026-10-21T12:54:10.647Z",
"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-72174 (GCVE-0-2026-72174)
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:
fs/proc/task_mmu: fix hugetlb self-deadlock in pagemap_scan_pte_hole()
A PAGEMAP_SCAN ioctl requesting PM_SCAN_WP_MATCHING on a hugetlb VMA hangs
the calling thread, unkillably, as soon as the scan reaches an unpopulated
part of the range:
do_pagemap_scan()
walk_page_range()
walk_hugetlb_range()
hugetlb_vma_lock_read() # take the vma lock for read ...
pagemap_scan_pte_hole() # ... ->pte_hole() for a hole
uffd_wp_range()
change_protection()
hugetlb_change_protection()
hugetlb_vma_lock_write() # ... and block taking it for write
walk_hugetlb_range() holds the hugetlb vma lock for read across the whole
walk. A present entry goes to ->hugetlb_entry(); an unpopulated one goes
to ->pte_hole(), i.e. pagemap_scan_pte_hole(). To write-protect the hole
that handler calls uffd_wp_range(), which on a hugetlb VMA reaches
hugetlb_change_protection() and takes the same vma lock for write. The
thread then blocks in down_write() waiting for the read lock it is itself
holding.
The populated path avoids this: pagemap_scan_hugetlb_entry()
write-protects the entry inline under the page-table lock and never enters
hugetlb_change_protection().
Do the same for holes. Fault in the page table and install the uffd-wp
marker directly with make_uffd_wp_huge_pte() under the page-table lock,
rather than routing through uffd_wp_range(). That is the same sequence
hugetlb_change_protection() runs for an unpopulated entry, minus the vma
write lock -- which is safe to skip because PMD sharing is disabled on
uffd-wp VMAs (hugetlb_unshare_all_pmds() runs at registration), leaving
nothing for that lock to serialise against.
References
| URL | Tags | |
|---|---|---|
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"fs/proc/task_mmu.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "a6ac03652d9edc30c2912037ac83beb42cc67f8e",
"status": "affected",
"version": "52526ca7fdb905a768a93f8faa418e9b988fc34b",
"versionType": "git"
},
{
"lessThan": "43b987ed35be9be21a303d1036d4241fec9943df",
"status": "affected",
"version": "52526ca7fdb905a768a93f8faa418e9b988fc34b",
"versionType": "git"
},
{
"lessThan": "18b8a9700610299819d21fd0ea85d24726d17f65",
"status": "affected",
"version": "52526ca7fdb905a768a93f8faa418e9b988fc34b",
"versionType": "git"
},
{
"lessThan": "e92d92bbafb264dc0518d52b846a3c07ed8d523f",
"status": "affected",
"version": "52526ca7fdb905a768a93f8faa418e9b988fc34b",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"fs/proc/task_mmu.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\nfs/proc/task_mmu: fix hugetlb self-deadlock in pagemap_scan_pte_hole()\n\nA PAGEMAP_SCAN ioctl requesting PM_SCAN_WP_MATCHING on a hugetlb VMA hangs\nthe calling thread, unkillably, as soon as the scan reaches an unpopulated\npart of the range:\n\n do_pagemap_scan()\n walk_page_range()\n walk_hugetlb_range()\n hugetlb_vma_lock_read() # take the vma lock for read ...\n pagemap_scan_pte_hole() # ... -\u003epte_hole() for a hole\n uffd_wp_range()\n change_protection()\n hugetlb_change_protection()\n hugetlb_vma_lock_write() # ... and block taking it for write\n\nwalk_hugetlb_range() holds the hugetlb vma lock for read across the whole\nwalk. A present entry goes to -\u003ehugetlb_entry(); an unpopulated one goes\nto -\u003epte_hole(), i.e. pagemap_scan_pte_hole(). To write-protect the hole\nthat handler calls uffd_wp_range(), which on a hugetlb VMA reaches\nhugetlb_change_protection() and takes the same vma lock for write. The\nthread then blocks in down_write() waiting for the read lock it is itself\nholding.\n\nThe populated path avoids this: pagemap_scan_hugetlb_entry()\nwrite-protects the entry inline under the page-table lock and never enters\nhugetlb_change_protection().\n\nDo the same for holes. Fault in the page table and install the uffd-wp\nmarker directly with make_uffd_wp_huge_pte() under the page-table lock,\nrather than routing through uffd_wp_range(). That is the same sequence\nhugetlb_change_protection() runs for an unpopulated entry, minus the vma\nwrite lock -- which is safe to skip because PMD sharing is disabled on\nuffd-wp VMAs (hugetlb_unshare_all_pmds() runs at registration), leaving\nnothing for that lock to serialise against."
}
],
"providerMetadata": {
"dateUpdated": "2026-08-17T05:09:36.416Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/a6ac03652d9edc30c2912037ac83beb42cc67f8e"
},
{
"url": "https://git.kernel.org/stable/c/43b987ed35be9be21a303d1036d4241fec9943df"
},
{
"url": "https://git.kernel.org/stable/c/18b8a9700610299819d21fd0ea85d24726d17f65"
},
{
"url": "https://git.kernel.org/stable/c/e92d92bbafb264dc0518d52b846a3c07ed8d523f"
}
],
"title": "fs/proc/task_mmu: fix hugetlb self-deadlock in pagemap_scan_pte_hole()",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-72174",
"datePublished": "2026-08-15T05:53:39.276Z",
"dateReserved": "2026-08-09T03:40:39.910Z",
"dateUpdated": "2026-08-17T05:09:36.416Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-74408 (GCVE-0-2026-74408)
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:
wifi: ath9k: fix OOB access from firmware tx status queue ID
ath_tx_edma_tasklet() accesses sc->tx.txq[ts.qid] where ts.qid is a
4-bit hardware field (0-15), but the txq array only has
ATH9K_NUM_TX_QUEUES (10) entries. A qid >= 10 causes an OOB array
access.
Add a bounds check on ts.qid before using it as an array index.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: fce041beb03f93c7a771f0b4b6c45bb71ef90901 Version: fce041beb03f93c7a771f0b4b6c45bb71ef90901 Version: fce041beb03f93c7a771f0b4b6c45bb71ef90901 Version: fce041beb03f93c7a771f0b4b6c45bb71ef90901 Version: fce041beb03f93c7a771f0b4b6c45bb71ef90901 Version: fce041beb03f93c7a771f0b4b6c45bb71ef90901 Version: fce041beb03f93c7a771f0b4b6c45bb71ef90901 Version: fce041beb03f93c7a771f0b4b6c45bb71ef90901 |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-74408",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T18:55:57.152844Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T19:05:43.633Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/net/wireless/ath/ath9k/xmit.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "fb11083db9d7d6fb8f98bbba1cbfcf3fb7b4bf54",
"status": "affected",
"version": "fce041beb03f93c7a771f0b4b6c45bb71ef90901",
"versionType": "git"
},
{
"lessThan": "734db72d55ca578a344dfa33e30145032c074b25",
"status": "affected",
"version": "fce041beb03f93c7a771f0b4b6c45bb71ef90901",
"versionType": "git"
},
{
"lessThan": "f5931d06b45ed402572bfe5832fff15864ef5481",
"status": "affected",
"version": "fce041beb03f93c7a771f0b4b6c45bb71ef90901",
"versionType": "git"
},
{
"lessThan": "46ca1451f61b598f45cb5259e066d305444d95fc",
"status": "affected",
"version": "fce041beb03f93c7a771f0b4b6c45bb71ef90901",
"versionType": "git"
},
{
"lessThan": "a9e055ac62cb3fcea262d4b687ec73eed82b3379",
"status": "affected",
"version": "fce041beb03f93c7a771f0b4b6c45bb71ef90901",
"versionType": "git"
},
{
"lessThan": "5435fd3edcb11c7cc4002847c83e9a50b49284dc",
"status": "affected",
"version": "fce041beb03f93c7a771f0b4b6c45bb71ef90901",
"versionType": "git"
},
{
"lessThan": "336d4c8cd9b1646060ee690c881d465dfc09c6c0",
"status": "affected",
"version": "fce041beb03f93c7a771f0b4b6c45bb71ef90901",
"versionType": "git"
},
{
"lessThan": "7ce2f118a2389e8f0a64068c6fe7cc7d40639be0",
"status": "affected",
"version": "fce041beb03f93c7a771f0b4b6c45bb71ef90901",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/net/wireless/ath/ath9k/xmit.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.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.1",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.212",
"versionStartIncluding": "3.1",
"vulnerable": true
},
{
"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\nwifi: ath9k: fix OOB access from firmware tx status queue ID\n\nath_tx_edma_tasklet() accesses sc-\u003etx.txq[ts.qid] where ts.qid is a\n4-bit hardware field (0-15), but the txq array only has\nATH9K_NUM_TX_QUEUES (10) entries. A qid \u003e= 10 causes an OOB array\naccess.\n\nAdd a bounds check on ts.qid before using it as an array index."
}
],
"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 - Exploitation requires sending 802.11 frames over WiFi to a victim using an EDMA-capable ath9k device (routers, embedded APs, laptops); TX completion interrupts from that traffic reach ath_tx_edma_tasklet() via ath_isr/ath9k_interrupt.\nAC:L - An adjacent attacker can repeatedly induce TX completions and error/status conditions with crafted or high-volume 802.11 traffic; they control timing and load on both sides of the race, making invalid firmware qid values (10-15) reachable without conditions outside attacker influence.\nPR:N - No local account or kernel privileges are required; unauthenticated adjacent WiFi frames (probes, data, deauth/flood) cause the victim radio to transmit and process firmware TX status reports on the interrupt path.\nUI:N - No victim interaction is needed beyond the device having WiFi active, which is the normal operating state for routers, phones, and IoT APs using ath9k hardware.\nS:U - Impact is confined to kernel memory corruption and privilege escalation or denial of service on the affected host; it does not cross VM, container, or IOMMU security boundaries.\nC:H - Out-of-bounds indexing of sc-\u003etx.txq[ts.qid] reads adjacent ath_softc/ath_tx fields as struct ath_txq (spinlocks, list heads, DMA metadata), constituting an unbounded OOB kernel memory read exploitable for information disclosure.\nI:H - The OOB txq pointer is dereferenced for spin_lock_bh, list_head manipulation, and ath_tx_process_buffer(), writing through misaligned kernel structures and enabling heap corruption and potential arbitrary code execution.\nA:H - Locking and list operations on memory interpreted as the wrong ath_txq can cause kernel oops, panic, or hang, and repeated adjacent triggering can sustain denial of service on the wireless host."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-17T05:46:51.612Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/fb11083db9d7d6fb8f98bbba1cbfcf3fb7b4bf54"
},
{
"url": "https://git.kernel.org/stable/c/734db72d55ca578a344dfa33e30145032c074b25"
},
{
"url": "https://git.kernel.org/stable/c/f5931d06b45ed402572bfe5832fff15864ef5481"
},
{
"url": "https://git.kernel.org/stable/c/46ca1451f61b598f45cb5259e066d305444d95fc"
},
{
"url": "https://git.kernel.org/stable/c/a9e055ac62cb3fcea262d4b687ec73eed82b3379"
},
{
"url": "https://git.kernel.org/stable/c/5435fd3edcb11c7cc4002847c83e9a50b49284dc"
},
{
"url": "https://git.kernel.org/stable/c/336d4c8cd9b1646060ee690c881d465dfc09c6c0"
},
{
"url": "https://git.kernel.org/stable/c/7ce2f118a2389e8f0a64068c6fe7cc7d40639be0"
}
],
"title": "wifi: ath9k: fix OOB access from firmware tx status queue ID",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-74408",
"datePublished": "2026-08-15T05:59:16.701Z",
"dateReserved": "2026-08-15T05:44:03.892Z",
"dateUpdated": "2026-10-16T19:05:43.633Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-98171 (GCVE-0-2026-98171)
Vulnerability from cvelistv5
Published
2026-10-06 08:44
Modified
2026-10-30 12:37
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
smb: client: fix next_buffer UAF and NextCommand bounds in compound PDUs
Fix several related bounds checking and pointer lifecycle issues in
receive_encrypted_standard()'s handling of compound encrypted frames:
- Clear next_buffer after assigning it to server->bigbuf. A stale
next_buffer pointer can lead to a use-after-free on subsequent
error paths.
- Update pdu_length to the decrypted plaintext size (buf_size). Using
the pre-decryption length allows NextCommand to point into stale
ciphertext residue.
- Reject next_cmd values smaller than MID_HEADER_SIZE(server).
- Fix an integer overflow in the upper bound check by verifying
pdu_length - next_cmd < MID_HEADER_SIZE(server), ensuring the
trailing slice is large enough for a header.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: b24df3e30cbf48255db866720fb71f14bf9d2f39 Version: b24df3e30cbf48255db866720fb71f14bf9d2f39 Version: b24df3e30cbf48255db866720fb71f14bf9d2f39 Version: b24df3e30cbf48255db866720fb71f14bf9d2f39 Version: b24df3e30cbf48255db866720fb71f14bf9d2f39 Version: b24df3e30cbf48255db866720fb71f14bf9d2f39 Version: b24df3e30cbf48255db866720fb71f14bf9d2f39 Version: b24df3e30cbf48255db866720fb71f14bf9d2f39 |
||
{
"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": "1ed29f7a03417b405f38c09cfe04124883127b53",
"status": "affected",
"version": "b24df3e30cbf48255db866720fb71f14bf9d2f39",
"versionType": "git"
},
{
"lessThan": "7f022867ec9f0166a0b4400385bb601b1c6b2c75",
"status": "affected",
"version": "b24df3e30cbf48255db866720fb71f14bf9d2f39",
"versionType": "git"
},
{
"lessThan": "72eaef1f37a3b6bec11c342736834dc3707be3e4",
"status": "affected",
"version": "b24df3e30cbf48255db866720fb71f14bf9d2f39",
"versionType": "git"
},
{
"lessThan": "491e33144dee872cffda207f6fcb09260728f803",
"status": "affected",
"version": "b24df3e30cbf48255db866720fb71f14bf9d2f39",
"versionType": "git"
},
{
"lessThan": "8749946579708ea0d339034bb7f423a67dbe89cf",
"status": "affected",
"version": "b24df3e30cbf48255db866720fb71f14bf9d2f39",
"versionType": "git"
},
{
"lessThan": "96c436e4b010711452b2872558938f4ef276492a",
"status": "affected",
"version": "b24df3e30cbf48255db866720fb71f14bf9d2f39",
"versionType": "git"
},
{
"lessThan": "858d5ac22cb889266993e7670f9f0c4f4aeedd78",
"status": "affected",
"version": "b24df3e30cbf48255db866720fb71f14bf9d2f39",
"versionType": "git"
},
{
"lessThan": "05762c5bc1cfdcac36747994fde2c04387a457f1",
"status": "affected",
"version": "b24df3e30cbf48255db866720fb71f14bf9d2f39",
"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": "4.19"
},
{
"lessThan": "4.19",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.273",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.224",
"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.112",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.54",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.8",
"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.273",
"versionStartIncluding": "4.19",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.224",
"versionStartIncluding": "4.19",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.189",
"versionStartIncluding": "4.19",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.158",
"versionStartIncluding": "4.19",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.112",
"versionStartIncluding": "4.19",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.54",
"versionStartIncluding": "4.19",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.8",
"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\nsmb: client: fix next_buffer UAF and NextCommand bounds in compound PDUs\n\nFix several related bounds checking and pointer lifecycle issues in\nreceive_encrypted_standard()\u0027s handling of compound encrypted frames:\n\n- Clear next_buffer after assigning it to server-\u003ebigbuf. A stale\n next_buffer pointer can lead to a use-after-free on subsequent\n error paths.\n- Update pdu_length to the decrypted plaintext size (buf_size). Using\n the pre-decryption length allows NextCommand to point into stale\n ciphertext residue.\n- Reject next_cmd values smaller than MID_HEADER_SIZE(server).\n- Fix an integer overflow in the upper bound check by verifying\n pdu_length - next_cmd \u003c MID_HEADER_SIZE(server), ensuring the\n trailing slice is large enough for a header."
}
],
"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 malformed input is an encrypted SMB2 compound response (TRANSFORM header, inner NextCommand chain) sent by the SMB server over TCP/445 and parsed by receive_encrypted_standard() via cifs_demultiplex_thread -\u003e smb3_receive_transform, so the bytes that cause the bug arrive over a routable network protocol.\nAC:L - The malicious server fully controls the sequence: a compound response whose first PDU has non-zero NextCommand, then a trailing PDU with NextCommand=0 and STATUS_PENDING or an unmatched MID with a bad header makes cifs_handle_standard() return non-zero, freeing the stale next_buffer every time; no race or external state is involved.\nPR:N - The attacker is the SMB server endpoint. It needs no account or privilege on the victim client, because it negotiates the session and encryption keys itself and so can produce valid encrypted frames.\nUI:R - A victim user or admin has to mount (or be redirected by DFS to) a share hosted on the attacker-controlled server before the client receives any encrypted compound response, so user action is required.\nS:U - The corruption is confined to the client kernel\u0027s own cifs receive buffers and slab/mempool objects, which is a standard kernel compromise and does not cross into a separate security authority.\nC:H - The error path frees server-\u003esmallbuf/bigbuf while it is still installed, which is a UAF on a kernel heap object. The object can be reallocated and its contents processed as SMB responses, a primitive usable for kernel memory disclosure.\nI:H - After the bad free, allocate_buffers() keeps the dangling smallbuf/bigbuf, and cifs_read_from_socket() writes the next frame\u0027s server-chosen bytes into the freed object (with a later double free), giving an attacker-controlled write into reallocated kernel memory.\nA:H - The use-after-free and double free of the cifs receive buffers in the demultiplex thread can corrupt the slab or mempool, causing a kernel oops or panic on the client and making every mount on that host unavailable."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-30T12:37:50.015Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/1ed29f7a03417b405f38c09cfe04124883127b53"
},
{
"url": "https://git.kernel.org/stable/c/7f022867ec9f0166a0b4400385bb601b1c6b2c75"
},
{
"url": "https://git.kernel.org/stable/c/72eaef1f37a3b6bec11c342736834dc3707be3e4"
},
{
"url": "https://git.kernel.org/stable/c/491e33144dee872cffda207f6fcb09260728f803"
},
{
"url": "https://git.kernel.org/stable/c/8749946579708ea0d339034bb7f423a67dbe89cf"
},
{
"url": "https://git.kernel.org/stable/c/96c436e4b010711452b2872558938f4ef276492a"
},
{
"url": "https://git.kernel.org/stable/c/858d5ac22cb889266993e7670f9f0c4f4aeedd78"
},
{
"url": "https://git.kernel.org/stable/c/05762c5bc1cfdcac36747994fde2c04387a457f1"
}
],
"title": "smb: client: fix next_buffer UAF and NextCommand bounds in compound PDUs",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-98171",
"datePublished": "2026-10-06T08:44:15.927Z",
"dateReserved": "2026-09-25T10:25:14.322Z",
"dateUpdated": "2026-10-30T12:37:50.015Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-97943 (GCVE-0-2026-97943)
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/mm/pat: Acquire init_mm write lock on collapse to avoid UAF
x86 implements page attribute modification using its Change Page
Attributes (CPA) mechanism.
This tracks properties of ranges such as cache mode through x86 page
attributes, and as part of that logic manipulates kernel page tables.
Since commit:
41d88484c71c ("x86/mm/pat: restore large ROX pages after fragmentation")
ranges of kernel page table entries can be collapsed into
huge page table entries as part of this logic.
As part of this collapse, it frees the page tables which the collapsed
entries previously pointed to, and it does so without any relevant locks
being held to preclude concurrent kernel page table walkers.
The only way this code can be reached is if CPA_COLLAPSE is specified, and
this is only set in set_memory_rox() via:
set_memory_rox()
-> change_page_attr_set_clr()
-> cpa_flush()
-> cpa_collapse_large_pages()
Notable users of this are execmem and BPF when manipulating executable
mappings.
However, this is problematic for ptdump as it walks ranges it does not own
and thus runs the risk of a use-after-free on page tables freed underneath
it.
In addition, concurrent CPA collapse operations are possible which can also
cause races.
Resolve the issue by acquiring the mmap write lock on init_mm across the
whole operation.
It is safe to acquire a sleeping lock as all the callers invoke
set_memory_rox() from process context and in any case,
change_page_attr_set_clr() calls vm_unmap_alias() which ultimately takes a
mutex, disallowing atomic context here.
References
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"arch/x86/mm/pat/set_memory.c",
"include/linux/mmap_lock.h"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "35820cf8dd521f5a651e221483015b0586794516",
"status": "affected",
"version": "41d88484c71cd4f659348da41b7b5b3dbd3be1f6",
"versionType": "git"
},
{
"lessThan": "93b98882198b15bd482da1fe8e84b05c7c3b3d83",
"status": "affected",
"version": "41d88484c71cd4f659348da41b7b5b3dbd3be1f6",
"versionType": "git"
},
{
"lessThan": "a1c7570cedd03372812a5b693732880867babbca",
"status": "affected",
"version": "41d88484c71cd4f659348da41b7b5b3dbd3be1f6",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"arch/x86/mm/pat/set_memory.c",
"include/linux/mmap_lock.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.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.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.7",
"versionStartIncluding": "6.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "6.15",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nx86/mm/pat: Acquire init_mm write lock on collapse to avoid UAF\n\nx86 implements page attribute modification using its Change Page\nAttributes (CPA) mechanism.\n\nThis tracks properties of ranges such as cache mode through x86 page\nattributes, and as part of that logic manipulates kernel page tables.\n\nSince commit:\n\n 41d88484c71c (\"x86/mm/pat: restore large ROX pages after fragmentation\")\n\nranges of kernel page table entries can be collapsed into\nhuge page table entries as part of this logic.\n\nAs part of this collapse, it frees the page tables which the collapsed\nentries previously pointed to, and it does so without any relevant locks\nbeing held to preclude concurrent kernel page table walkers.\n\nThe only way this code can be reached is if CPA_COLLAPSE is specified, and\nthis is only set in set_memory_rox() via:\n\nset_memory_rox()\n-\u003e change_page_attr_set_clr()\n-\u003e cpa_flush()\n-\u003e cpa_collapse_large_pages()\n\nNotable users of this are execmem and BPF when manipulating executable\nmappings.\n\nHowever, this is problematic for ptdump as it walks ranges it does not own\nand thus runs the risk of a use-after-free on page tables freed underneath\nit.\n\nIn addition, concurrent CPA collapse operations are possible which can also\ncause races.\n\nResolve the issue by acquiring the mmap write lock on init_mm across the\nwhole operation.\n\nIt is safe to acquire a sleeping lock as all the callers invoke\nset_memory_rox() from process context and in any case,\nchange_page_attr_set_clr() calls vm_unmap_alias() which ultimately takes a\nmutex, disallowing atomic context here."
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T09:11:09.731Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/35820cf8dd521f5a651e221483015b0586794516"
},
{
"url": "https://git.kernel.org/stable/c/93b98882198b15bd482da1fe8e84b05c7c3b3d83"
},
{
"url": "https://git.kernel.org/stable/c/a1c7570cedd03372812a5b693732880867babbca"
}
],
"title": "x86/mm/pat: Acquire init_mm write lock on collapse to avoid UAF",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-97943",
"datePublished": "2026-09-25T10:22:54.787Z",
"dateReserved": "2026-09-25T10:18:58.204Z",
"dateUpdated": "2026-10-19T09:11:09.731Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-90315 (GCVE-0-2026-90315)
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:
PCI/sysfs: Add lockdown checks to legacy I/O and memory handlers
Currently, the legacy I/O and memory sysfs handlers do not check
security_locked_down(LOCKDOWN_PCI_ACCESS), leaving the legacy_io and
legacy_mem files unprotected when the kernel is locked down.
Commit eb627e17727e ("PCI: Lock down BAR access when the kernel is locked
down") added the check to pci_write_config(), pci_mmap_resource(), and
pci_write_resource_io() to prevent userspace from programming DMA-capable
hardware that could be used to modify kernel code, but did not cover the
legacy handlers.
As a result, root can still write arbitrary I/O ports and map the legacy
I/O and memory spaces while the kernel is locked down, which is the same
capability the lockdown is meant to remove.
Add the same check to pci_write_legacy_io(), pci_mmap_legacy_mem(), and
pci_mmap_legacy_io().
These generic handlers cover both architectures that define HAVE_PCI_LEGACY
(such as Alpha and PowerPC).
[bhelgaas: add Link]
References
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": "3556caa31a2bfbc22c11b812fd4ed8851c2d7bff",
"status": "affected",
"version": "eb627e17727ebeede70697ae1798688b0d328b54",
"versionType": "git"
},
{
"lessThan": "cd07aef510ac6a2873e01f9ddddc5492490b0067",
"status": "affected",
"version": "eb627e17727ebeede70697ae1798688b0d328b54",
"versionType": "git"
},
{
"lessThan": "747b9bbbbdfdee51aee2456388f9b94b5086de4d",
"status": "affected",
"version": "eb627e17727ebeede70697ae1798688b0d328b54",
"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": "5.4"
},
{
"lessThan": "5.4",
"status": "unaffected",
"version": "0",
"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.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\nPCI/sysfs: Add lockdown checks to legacy I/O and memory handlers\n\nCurrently, the legacy I/O and memory sysfs handlers do not check\nsecurity_locked_down(LOCKDOWN_PCI_ACCESS), leaving the legacy_io and\nlegacy_mem files unprotected when the kernel is locked down.\n\nCommit eb627e17727e (\"PCI: Lock down BAR access when the kernel is locked\ndown\") added the check to pci_write_config(), pci_mmap_resource(), and\npci_write_resource_io() to prevent userspace from programming DMA-capable\nhardware that could be used to modify kernel code, but did not cover the\nlegacy handlers.\n\nAs a result, root can still write arbitrary I/O ports and map the legacy\nI/O and memory spaces while the kernel is locked down, which is the same\ncapability the lockdown is meant to remove.\n\nAdd the same check to pci_write_legacy_io(), pci_mmap_legacy_mem(), and\npci_mmap_legacy_io().\n\nThese generic handlers cover both architectures that define HAVE_PCI_LEGACY\n(such as Alpha and PowerPC).\n\n[bhelgaas: add Link]"
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T09:01:31.722Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/3556caa31a2bfbc22c11b812fd4ed8851c2d7bff"
},
{
"url": "https://git.kernel.org/stable/c/cd07aef510ac6a2873e01f9ddddc5492490b0067"
},
{
"url": "https://git.kernel.org/stable/c/747b9bbbbdfdee51aee2456388f9b94b5086de4d"
}
],
"title": "PCI/sysfs: Add lockdown checks to legacy I/O and memory handlers",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-90315",
"datePublished": "2026-09-17T16:08:34.218Z",
"dateReserved": "2026-09-11T19:38:34.801Z",
"dateUpdated": "2026-10-19T09:01:31.722Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2024-39468 (GCVE-0-2024-39468)
Vulnerability from cvelistv5
Published
2024-06-25 14:28
Modified
2026-10-15 00:44
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
smb: client: fix deadlock in smb2_find_smb_tcon()
Unlock cifs_tcp_ses_lock before calling cifs_put_smb_ses() to avoid such
deadlock.
References
| URL | Tags | |||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 78ebec450ef4f0720c592638d92bad679d75d7ce Version: e695a9ad0305af6e8b0cbc24a54976ac2120cbb3 Version: e695a9ad0305af6e8b0cbc24a54976ac2120cbb3 Version: e695a9ad0305af6e8b0cbc24a54976ac2120cbb3 Version: e695a9ad0305af6e8b0cbc24a54976ac2120cbb3 Version: e695a9ad0305af6e8b0cbc24a54976ac2120cbb3 |
||
{
"containers": {
"adp": [
{
"providerMetadata": {
"dateUpdated": "2024-08-02T04:26:15.555Z",
"orgId": "af854a3a-2127-422b-91ae-364da2661108",
"shortName": "CVE"
},
"references": [
{
"tags": [
"x_transferred"
],
"url": "https://git.kernel.org/stable/c/b055752675cd1d1db4ac9c2750db3dc3e89ea261"
},
{
"tags": [
"x_transferred"
],
"url": "https://git.kernel.org/stable/c/21f5dd36e655d25a7b45b61c1e537198b671f720"
},
{
"tags": [
"x_transferred"
],
"url": "https://git.kernel.org/stable/c/b09b556e48968317887a11243a5331a7bc00ece5"
},
{
"tags": [
"x_transferred"
],
"url": "https://git.kernel.org/stable/c/225de871ddf994f69a57f035709cad9c0ab8615a"
},
{
"tags": [
"x_transferred"
],
"url": "https://git.kernel.org/stable/c/8d0f5f1ccf675454a833a573c53830a49b7d1a47"
},
{
"tags": [
"x_transferred"
],
"url": "https://git.kernel.org/stable/c/02c418774f76a0a36a6195c9dbf8971eb4130a15"
}
],
"title": "CVE Program Container"
},
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2024-39468",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "partial"
}
],
"role": "CISA Coordinator",
"timestamp": "2024-09-10T17:07:58.449670Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2024-09-11T17:34:41.922Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
},
{
"affected": [
{
"defaultStatus": "unknown",
"product": "RUGGEDCOM RST2428P",
"vendor": "Siemens",
"versions": [
{
"lessThan": "V3.1",
"status": "affected",
"version": "0",
"versionType": "custom"
}
]
},
{
"defaultStatus": "unknown",
"product": "SCALANCE XC-300/XR-300/XC-400/XR-500WG/XR-500 family",
"vendor": "Siemens",
"versions": [
{
"lessThan": "*",
"status": "unaffected",
"version": "0",
"versionType": "custom"
}
]
},
{
"defaultStatus": "unknown",
"product": "SCALANCE XCM-/XRM-/XCH-/XRH-300 family",
"vendor": "Siemens",
"versions": [
{
"lessThan": "V3.1",
"status": "affected",
"version": "0",
"versionType": "custom"
}
]
},
{
"defaultStatus": "unknown",
"product": "SIMATIC S7-1500 TM MFP - GNU/Linux subsystem",
"vendor": "Siemens",
"versions": [
{
"lessThan": "V1.1.1",
"status": "affected",
"version": "0",
"versionType": "custom"
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-15T00:44:02.956Z",
"orgId": "0b142b55-0307-4c5a-b3c9-f314f3fb7c5e",
"shortName": "siemens-SADP"
},
"references": [
{
"url": "https://cert-portal.siemens.com/productcert/html/ssa-265688.html"
},
{
"url": "https://cert-portal.siemens.com/productcert/html/ssa-613116.html"
},
{
"url": "https://cert-portal.siemens.com/productcert/html/ssa-355557.html"
}
],
"x_adpType": "supplier"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"fs/smb/client/smb2transport.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "b055752675cd1d1db4ac9c2750db3dc3e89ea261",
"status": "affected",
"version": "78ebec450ef4f0720c592638d92bad679d75d7ce",
"versionType": "git"
},
{
"lessThan": "21f5dd36e655d25a7b45b61c1e537198b671f720",
"status": "affected",
"version": "e695a9ad0305af6e8b0cbc24a54976ac2120cbb3",
"versionType": "git"
},
{
"lessThan": "b09b556e48968317887a11243a5331a7bc00ece5",
"status": "affected",
"version": "e695a9ad0305af6e8b0cbc24a54976ac2120cbb3",
"versionType": "git"
},
{
"lessThan": "225de871ddf994f69a57f035709cad9c0ab8615a",
"status": "affected",
"version": "e695a9ad0305af6e8b0cbc24a54976ac2120cbb3",
"versionType": "git"
},
{
"lessThan": "8d0f5f1ccf675454a833a573c53830a49b7d1a47",
"status": "affected",
"version": "e695a9ad0305af6e8b0cbc24a54976ac2120cbb3",
"versionType": "git"
},
{
"lessThan": "02c418774f76a0a36a6195c9dbf8971eb4130a15",
"status": "affected",
"version": "e695a9ad0305af6e8b0cbc24a54976ac2120cbb3",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"fs/smb/client/smb2transport.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.162",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.94",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.34",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.9.*",
"status": "unaffected",
"version": "6.9.5",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "6.10",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.162",
"versionStartIncluding": "5.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.94",
"versionStartIncluding": "5.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.34",
"versionStartIncluding": "5.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.9.5",
"versionStartIncluding": "5.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.10",
"versionStartIncluding": "5.14",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nsmb: client: fix deadlock in smb2_find_smb_tcon()\n\nUnlock cifs_tcp_ses_lock before calling cifs_put_smb_ses() to avoid such\ndeadlock."
}
],
"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 lookup is driven entirely by the SessionId and TreeId fields parsed out of an SMB2 response header received over TCP/445 from the remote SMB server, so a malicious/compromised server or an on-path attacker injecting a spoofed response (this path bypasses signature verification, as cancelled mids never reach cifs_check_receive) reaches it remotely.\nAC:L - Once a CREATE mid is cancelled, the attacker deterministically triggers the self-deadlock by returning STATUS_SUCCESS with a TreeId it fully controls, and it can force the cancellation precondition at will by stalling responses until the hung process is killed; no memory-layout precision or race window is involved and attempts can be repeated indefinitely.\nPR:N - The attacking SMB server needs no account, credential, or privilege on the victim client system; it only has to respond to the client\u0027s own in-flight request on an established connection.\nUI:N - With a mount already established (fstab, autofs, or a persistent share) and the server compromised or MITM\u0027d, the malicious response is processed by the cifsd kernel thread with no victim action required; the cancellation trigger comes from ordinary kill/timeout/OOM machinery, not deliberate user interaction.\nS:U - The deadlock occurs in the kernel\u0027s CIFS client and its impact is confined to that same kernel security authority, with no crossing of a VM, IOMMU, or sandbox boundary.\nC:N - The bug is a pure spinlock recursion with no out-of-bounds access, uninitialized data, or freed-object reuse, so no kernel memory is disclosed.\nI:N - No memory is corrupted and no data is modified; the CPU simply spins forever on an already-held lock, giving the attacker no write primitive.\nA:H - The cifsd demux thread deadlocks with preemption disabled while permanently holding the global cifs_tcp_ses_lock, so every CIFS operation on every mount system-wide spins forever and cascades across CPUs, producing an unrecoverable hang and soft/hard lockup panic."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-05T11:33:26.449Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/b055752675cd1d1db4ac9c2750db3dc3e89ea261"
},
{
"url": "https://git.kernel.org/stable/c/21f5dd36e655d25a7b45b61c1e537198b671f720"
},
{
"url": "https://git.kernel.org/stable/c/b09b556e48968317887a11243a5331a7bc00ece5"
},
{
"url": "https://git.kernel.org/stable/c/225de871ddf994f69a57f035709cad9c0ab8615a"
},
{
"url": "https://git.kernel.org/stable/c/8d0f5f1ccf675454a833a573c53830a49b7d1a47"
},
{
"url": "https://git.kernel.org/stable/c/02c418774f76a0a36a6195c9dbf8971eb4130a15"
}
],
"title": "smb: client: fix deadlock in smb2_find_smb_tcon()",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2024-39468",
"datePublished": "2024-06-25T14:28:54.897Z",
"dateReserved": "2024-06-25T14:23:23.744Z",
"dateUpdated": "2026-10-15T00:44:02.956Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-98360 (GCVE-0-2026-98360)
Vulnerability from cvelistv5
Published
2026-10-06 08:46
Modified
2026-10-19 09:18
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
RDMA/rxe: insert mcg into mcg_tree only after rxe_mcast_add() succeeds
rxe_get_mcg() publishes a newly allocated multicast group in
rxe->mcg_tree before programming the backing Ethernet multicast address
with rxe_mcast_add(), which runs outside mcg_lock. A local userspace
RDMA client reaches this path with ATTACH_MCAST on a UD QP; if
rxe_mcast_add() then returns an error (for example -ENODEV when the
backing netdev has been removed, or a propagated dev_mc_add() error),
the unwind frees the published group without removing it from the tree.
A later lookup of the same MGID dereferences the freed struct rxe_mcg
from __rxe_lookup_mcg().
Fix this by keeping the new mcg private until rxe_mcast_add() succeeds.
Split the tree publication into __rxe_publish_mcg(), call rxe_mcast_add()
before taking the tree reference, and free the still-private mcg on
failure. Because the group is never visible in mcg_tree until the
multicast address is programmed, no concurrent caller can look it up or
attach a QP to a group that is about to be torn down, so the error path
needs no conditional unwind. If another caller publishes the same MGID
while the address is being programmed, the post-add re-check under
mcg_lock finds the winner; this caller then drops its private object and
balances its own rxe_mcast_add() with rxe_mcast_del() before returning
the winner.
Reproduced by forcing the rxe_mcast_add() error return under KASAN:
without the change the next attach to the same MGID reports a
slab-use-after-free in __rxe_lookup_mcg(); with it the forced failure
returns cleanly. A no-injection attach/detach regression, including a
two-QP shared join/leave and re-attach, stays KASAN- and leak-clean.
References
| URL | Tags | |||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: a926a903b7dc39a8a949150258c09290998dd812 Version: a926a903b7dc39a8a949150258c09290998dd812 Version: a926a903b7dc39a8a949150258c09290998dd812 Version: a926a903b7dc39a8a949150258c09290998dd812 Version: a926a903b7dc39a8a949150258c09290998dd812 Version: a926a903b7dc39a8a949150258c09290998dd812 |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/infiniband/sw/rxe/rxe_mcast.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "ddb43ac0926d4a931bc9b7744b93627f627457e5",
"status": "affected",
"version": "a926a903b7dc39a8a949150258c09290998dd812",
"versionType": "git"
},
{
"lessThan": "c79a789aa15180a1543b5db49c343d12e3ec214d",
"status": "affected",
"version": "a926a903b7dc39a8a949150258c09290998dd812",
"versionType": "git"
},
{
"lessThan": "faae1fb4ccf8205806a8802c008798dabeb0205b",
"status": "affected",
"version": "a926a903b7dc39a8a949150258c09290998dd812",
"versionType": "git"
},
{
"lessThan": "02c0a2fa69c16248a7432af8a6d64ab2a73a5283",
"status": "affected",
"version": "a926a903b7dc39a8a949150258c09290998dd812",
"versionType": "git"
},
{
"lessThan": "d4fc4e37f8a143b0fe83b42c8fb48cf542154fee",
"status": "affected",
"version": "a926a903b7dc39a8a949150258c09290998dd812",
"versionType": "git"
},
{
"lessThan": "1caceeb2d74bbe88223aea55eb8626b4c5f076fd",
"status": "affected",
"version": "a926a903b7dc39a8a949150258c09290998dd812",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/infiniband/sw/rxe/rxe_mcast.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.189",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.158",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.112",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.54",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.8",
"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.18",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.158",
"versionStartIncluding": "5.18",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.112",
"versionStartIncluding": "5.18",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.54",
"versionStartIncluding": "5.18",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.8",
"versionStartIncluding": "5.18",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "5.18",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nRDMA/rxe: insert mcg into mcg_tree only after rxe_mcast_add() succeeds\n\nrxe_get_mcg() publishes a newly allocated multicast group in\nrxe-\u003emcg_tree before programming the backing Ethernet multicast address\nwith rxe_mcast_add(), which runs outside mcg_lock. A local userspace\nRDMA client reaches this path with ATTACH_MCAST on a UD QP; if\nrxe_mcast_add() then returns an error (for example -ENODEV when the\nbacking netdev has been removed, or a propagated dev_mc_add() error),\nthe unwind frees the published group without removing it from the tree.\nA later lookup of the same MGID dereferences the freed struct rxe_mcg\nfrom __rxe_lookup_mcg().\n\nFix this by keeping the new mcg private until rxe_mcast_add() succeeds.\nSplit the tree publication into __rxe_publish_mcg(), call rxe_mcast_add()\nbefore taking the tree reference, and free the still-private mcg on\nfailure. Because the group is never visible in mcg_tree until the\nmulticast address is programmed, no concurrent caller can look it up or\nattach a QP to a group that is about to be torn down, so the error path\nneeds no conditional unwind. If another caller publishes the same MGID\nwhile the address is being programmed, the post-add re-check under\nmcg_lock finds the winner; this caller then drops its private object and\nbalances its own rxe_mcast_add() with rxe_mcast_del() before returning\nthe winner.\n\nReproduced by forcing the rxe_mcast_add() error return under KASAN:\nwithout the change the next attach to the same MGID reports a\nslab-use-after-free in __rxe_lookup_mcg(); with it the forced failure\nreturns cleanly. A no-injection attach/detach regression, including a\ntwo-QP shared join/leave and re-attach, stays KASAN- and leak-clean."
}
],
"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 faulty publish-then-free sequence is in rxe_get_mcg(), reached from the uverbs ATTACH_MCAST command (ib_uverbs_attach_mcast -\u003e ib_attach_mcast -\u003e rxe_attach_mcast) on a local UD QP. A remote RoCEv2 multicast packet (rxe_rcv_mcast_pkt -\u003e rxe_lookup_mcg) can only hit the stale node after a local caller has already caused the failure.\nAC:H - The dangling mcg is only left behind when rxe_mcast_add() fails after the group is published. That needs ib_device_get_netdev() to return NULL while the rxe netdev is being unregistered (an admin or hardware event), or a GFP_ATOMIC failure in __hw_addr_create(). An unprivileged user cannot produce either on demand.\nPR:L - ib_uverbs_attach_mcast() and rxe_attach_mcast() have no capability check, so any user who can open the rxe uverbs device and create a UD QP can drive rxe_get_mcg(). Creating the rxe link itself (RDMA_NL_ADMIN_PERM, checked with netlink_capable against the init namespace) is admin setup the attacker does not perform.\nUI:N - The attacker issues ATTACH_MCAST for the failing MGID and then the follow-up attach/detach/lookup themselves; no other user has to act.\nS:U - The freed rxe_mcg is kernel heap memory in the same kernel security authority; there is no VM, IOMMU or sandbox boundary crossed.\nC:H - The freed struct rxe_mcg stays linked in rxe-\u003emcg_tree. __rxe_lookup_mcg() walks its rb_node and mgid, and later code follows its qp_list, so reallocating that slab slot with attacker-chosen data gives a heap read primitive.\nI:H - After the free, __rxe_lookup_mcg() does kref_get() on the stale object, and rxe_attach_mcg() list_add()s an mca into its qp_list and updates qp_num. These are writes into reallocated memory, and the rb-tree insert/erase relinks through the freed node.\nA:H - The next ATTACH_MCAST, detach, or received multicast lookup for that MGID dereferences the freed rxe_mcg (KASAN slab-use-after-free in __rxe_lookup_mcg()), corrupting the rb-tree and crashing the kernel."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T09:18:11.284Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/ddb43ac0926d4a931bc9b7744b93627f627457e5"
},
{
"url": "https://git.kernel.org/stable/c/c79a789aa15180a1543b5db49c343d12e3ec214d"
},
{
"url": "https://git.kernel.org/stable/c/faae1fb4ccf8205806a8802c008798dabeb0205b"
},
{
"url": "https://git.kernel.org/stable/c/02c0a2fa69c16248a7432af8a6d64ab2a73a5283"
},
{
"url": "https://git.kernel.org/stable/c/d4fc4e37f8a143b0fe83b42c8fb48cf542154fee"
},
{
"url": "https://git.kernel.org/stable/c/1caceeb2d74bbe88223aea55eb8626b4c5f076fd"
}
],
"title": "RDMA/rxe: insert mcg into mcg_tree only after rxe_mcast_add() succeeds",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-98360",
"datePublished": "2026-10-06T08:46:46.743Z",
"dateReserved": "2026-09-25T10:25:14.344Z",
"dateUpdated": "2026-10-19T09:18:11.284Z",
"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-98366 (GCVE-0-2026-98366)
Vulnerability from cvelistv5
Published
2026-10-06 08:46
Modified
2026-10-19 09:18
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
RDMA/rxe: validate access flags before swapping the MR's PD
rxe_rereg_user_mr() reassigns mr->ibmr.pd first and only then
validates the IB_MR_REREG_ACCESS argument:
if (flags & IB_MR_REREG_PD) {
rxe_put(old_pd);
rxe_get(pd);
mr->ibmr.pd = ibpd;
}
if (flags & IB_MR_REREG_ACCESS) {
if (access & ~RXE_ACCESS_SUPPORTED_MR)
return ERR_PTR(-EOPNOTSUPP);
mr->access = access;
}
Both flags pass the entry check because RXE_MR_REREG_SUPPORTED is
IB_MR_REREG_PD | IB_MR_REREG_ACCESS, so a caller can reach the access
check with mr->ibmr.pd already reassigned.
mr->ibmr.pd is owned by the core, which adjusts pd->usecnt only on the
success path: ib_uverbs_rereg_mr() jumps to put_new_uobj on a driver error
without undoing the reassignment, so mr->pd == new_pd while the usecnts
still charge the MR to orig_pd. ib_dereg_mr_user() then decrements
new_pd, whose count can reach zero while a memory window still references
it; uverbs_free_pd() frees the PD on that count alone and rxe_mw_cleanup()
writes to freed memory:
BUG: KASAN: slab-use-after-free in __rxe_put+0x31/0xa0
Write of size 4 at addr ffff8881301dd690 by task rxe_poc/591
__rxe_put+0x31/0xa0
rxe_mw_cleanup+0x42/0x200
__rxe_cleanup+0x115/0x370
rxe_dealloc_mw+0x4c/0x80
Allocated by task 591:
ib_uverbs_alloc_pd+0x258/0x540
Freed by task 591:
ib_dealloc_pd_user+0x174/0x210
uverbs_free_pd+0x8d/0xc0
ib_uverbs_dealloc_pd+0x18e/0x1d0
Validate the access flags before mutating any state so the callback either
applies every requested change or none.
References
| URL | Tags | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/infiniband/sw/rxe/rxe_verbs.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "08f12745cb72981aa2cabe214af0c7a42a856f0a",
"status": "affected",
"version": "544c7f62cf32db2bd358f1e8a40a98bf98fa2a5c",
"versionType": "git"
},
{
"lessThan": "7230cc456d4bb2221c20c5f1d22b38b8576aa16f",
"status": "affected",
"version": "544c7f62cf32db2bd358f1e8a40a98bf98fa2a5c",
"versionType": "git"
},
{
"lessThan": "fe602c91a52e161ace4afd5bdb8f33270c554c6f",
"status": "affected",
"version": "544c7f62cf32db2bd358f1e8a40a98bf98fa2a5c",
"versionType": "git"
},
{
"lessThan": "4dd7a53f1c5b44693c26dac4b9b5bd5bb9d604c8",
"status": "affected",
"version": "544c7f62cf32db2bd358f1e8a40a98bf98fa2a5c",
"versionType": "git"
},
{
"lessThan": "ae36a5b609ae79f4de966328b78d2584be9719a4",
"status": "affected",
"version": "544c7f62cf32db2bd358f1e8a40a98bf98fa2a5c",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/infiniband/sw/rxe/rxe_verbs.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.158",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.112",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.54",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.8",
"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": "6.5",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.112",
"versionStartIncluding": "6.5",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.54",
"versionStartIncluding": "6.5",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.8",
"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\nRDMA/rxe: validate access flags before swapping the MR\u0027s PD\n\nrxe_rereg_user_mr() reassigns mr-\u003eibmr.pd first and only then\nvalidates the IB_MR_REREG_ACCESS argument:\n\n\tif (flags \u0026 IB_MR_REREG_PD) {\n\t\trxe_put(old_pd);\n\t\trxe_get(pd);\n\t\tmr-\u003eibmr.pd = ibpd;\n\t}\n\n\tif (flags \u0026 IB_MR_REREG_ACCESS) {\n\t\tif (access \u0026 ~RXE_ACCESS_SUPPORTED_MR)\n\t\t\treturn ERR_PTR(-EOPNOTSUPP);\n\t\tmr-\u003eaccess = access;\n\t}\n\nBoth flags pass the entry check because RXE_MR_REREG_SUPPORTED is\nIB_MR_REREG_PD | IB_MR_REREG_ACCESS, so a caller can reach the access\ncheck with mr-\u003eibmr.pd already reassigned.\n\nmr-\u003eibmr.pd is owned by the core, which adjusts pd-\u003eusecnt only on the\nsuccess path: ib_uverbs_rereg_mr() jumps to put_new_uobj on a driver error\nwithout undoing the reassignment, so mr-\u003epd == new_pd while the usecnts\nstill charge the MR to orig_pd. ib_dereg_mr_user() then decrements\nnew_pd, whose count can reach zero while a memory window still references\nit; uverbs_free_pd() frees the PD on that count alone and rxe_mw_cleanup()\nwrites to freed memory:\n\n BUG: KASAN: slab-use-after-free in __rxe_put+0x31/0xa0\n Write of size 4 at addr ffff8881301dd690 by task rxe_poc/591\n __rxe_put+0x31/0xa0\n rxe_mw_cleanup+0x42/0x200\n __rxe_cleanup+0x115/0x370\n rxe_dealloc_mw+0x4c/0x80\n Allocated by task 591:\n ib_uverbs_alloc_pd+0x258/0x540\n Freed by task 591:\n ib_dealloc_pd_user+0x174/0x210\n uverbs_free_pd+0x8d/0xc0\n ib_uverbs_dealloc_pd+0x18e/0x1d0\n\nValidate the access flags before mutating any state so the callback either\napplies every requested change or none."
}
],
"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 bad access_flags/pd_handle reach rxe_rereg_user_mr() only through a local IB_USER_VERBS_CMD_REREG_MR on /dev/infiniband/uverbsN via ib_uverbs_rereg_mr(); no RoCE packet carries rereg arguments, so a remote peer cannot drive it.\nAC:L - Deterministic: flags IB_MR_REREG_PD|IB_MR_REREG_ACCESS with access=IB_ACCESS_RELAXED_ORDERING passes core ib_check_mr_access() but fails RXE_ACCESS_SUPPORTED_MR after mr-\u003eibmr.pd was swapped; the attacker then deregs the MR and deallocs the PD its own MW still uses. No race.\nPR:L - uverbs_devnode() creates /dev/infiniband/uverbsN mode 0666 and there is no capability check from ib_uverbs_rereg_mr() to rxe_rereg_user_mr(); any unprivileged local user owning a PD/MR/MW triggers it. Only the one-time admin rxe link creation (RDMA_NL_ADMIN_PERM) is needed.\nUI:N - The attacker\u0027s own process issues alloc_pd, reg_mr, alloc_mw, the failing rereg_mr, dereg_mr and dealloc_pd; no other user or administrator action is involved.\nS:U - The freed rxe PD and the corrupted refcounts are kernel heap objects within the same kernel security authority; no VM, IOMMU or sandbox boundary is crossed.\nC:H - After uverbs_free_pd() frees the PD on usecnt alone, the surviving MW still holds a dangling pointer to it; reclaiming that slab object with sprayed data turns later accesses through the MW into a use-after-free read of attacker-shaped memory.\nI:H - rxe_mw_cleanup() -\u003e __rxe_put() writes (refcount decrement, KASAN write of size 4) into the freed PD, and the inconsistent mr-\u003epd vs usecnt state can be repeated; a decrement into reallocated slab memory is a usable corruption primitive toward privilege escalation.\nA:H - The use-after-free write in __rxe_put() during rxe_dealloc_mw() corrupts freed slab memory and can oops or panic the kernel, and an unprivileged user can repeat it at will."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T09:18:18.297Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/08f12745cb72981aa2cabe214af0c7a42a856f0a"
},
{
"url": "https://git.kernel.org/stable/c/7230cc456d4bb2221c20c5f1d22b38b8576aa16f"
},
{
"url": "https://git.kernel.org/stable/c/fe602c91a52e161ace4afd5bdb8f33270c554c6f"
},
{
"url": "https://git.kernel.org/stable/c/4dd7a53f1c5b44693c26dac4b9b5bd5bb9d604c8"
},
{
"url": "https://git.kernel.org/stable/c/ae36a5b609ae79f4de966328b78d2584be9719a4"
}
],
"title": "RDMA/rxe: validate access flags before swapping the MR\u0027s PD",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-98366",
"datePublished": "2026-10-06T08:46:51.638Z",
"dateReserved": "2026-09-25T10:25:14.344Z",
"dateUpdated": "2026-10-19T09:18:18.297Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-64424 (GCVE-0-2026-64424)
Vulnerability from cvelistv5
Published
2026-07-25 08:51
Modified
2026-10-30 12:27
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
netpoll: fix a use-after-free on shutdown path
There is a use-after-free error on netpoll, which is clearly detected by
KASAN.
BUG: KASAN: slab-use-after-free in _raw_spin_lock_irqsave+0x3b/0x80
Read of size 1 at addr ... by task kworker/9:1
Workqueue: events queue_process
Call Trace:
skb_dequeue+0x1e/0xb0
queue_process+0x2c/0x600
process_scheduled_works+0x4b6/0x850
worker_thread+0x414/0x5a0
Allocated by task 242:
__netpoll_setup+0x201/0x4a0
netpoll_setup+0x249/0x550
enabled_store+0x32f/0x380
Freed by task 0:
kfree+0x1b7/0x540
rcu_core+0x3f8/0x7a0
The problem happens when there is a pending TX worker running in
parallel with the cleanup path.
This is what happens on netpoll shutdown path:
1) __netpoll_cleanup() is called
2) set dev->npinfo to NULL
3) call_rcu() with rcu_cleanup_netpoll_info()
3.1) rcu_cleanup_netpoll_info() tries to cancel all workers with
cancel_delayed_work(), but doesn't wait for the worker to finish
4) and kfree(npinfo);
Because 3.1) doesn't really cancel the work, as the comment says "we
can't call cancel_delayed_work_sync here, as we are in softirq", the TX
worker can run after 4).
Tl;DR: queue_process() is not an RCU reader, it reaches npinfo through
the work item via container_of().
Use disable_delayed_work_sync() to ensure the worker is completely
stopped and prevent any future re-arming attempts. Once npinfo is set
to NULL, senders will bail out and not queue new work. The disable flag
ensures any in-flight re-arming attempts also fail silently.
In the future, we can do the cleanup inline here without needing the
npinfo->rcu rcu_head, but that is net-next material.
References
| URL | Tags | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/core/netpoll.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "b67625b85c4b1a3725f4be9c6dd8ce3399d11732",
"status": "affected",
"version": "38e6bc185d9544dfad1774b3f8902a0b061aea25",
"versionType": "git"
},
{
"lessThan": "95ecc5b58042f6b6743b589e6588f1cd7ba336aa",
"status": "affected",
"version": "38e6bc185d9544dfad1774b3f8902a0b061aea25",
"versionType": "git"
},
{
"lessThan": "a33f37f8d079da7236ed7b7e2aed2a34ab81e7cf",
"status": "affected",
"version": "38e6bc185d9544dfad1774b3f8902a0b061aea25",
"versionType": "git"
},
{
"lessThan": "5ed09a108d93a3b002cc79823d9455b50c4a8be7",
"status": "affected",
"version": "38e6bc185d9544dfad1774b3f8902a0b061aea25",
"versionType": "git"
},
{
"lessThan": "45f1458a85017a023f138b22ac5c76abd477db42",
"status": "affected",
"version": "38e6bc185d9544dfad1774b3f8902a0b061aea25",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/core/netpoll.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.191",
"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.191",
"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\nnetpoll: fix a use-after-free on shutdown path\n\nThere is a use-after-free error on netpoll, which is clearly detected by\nKASAN.\n\n BUG: KASAN: slab-use-after-free in _raw_spin_lock_irqsave+0x3b/0x80\n Read of size 1 at addr ... by task kworker/9:1\n Workqueue: events queue_process\n Call Trace:\n skb_dequeue+0x1e/0xb0\n queue_process+0x2c/0x600\n process_scheduled_works+0x4b6/0x850\n worker_thread+0x414/0x5a0\n Allocated by task 242:\n __netpoll_setup+0x201/0x4a0\n netpoll_setup+0x249/0x550\n enabled_store+0x32f/0x380\n Freed by task 0:\n kfree+0x1b7/0x540\n rcu_core+0x3f8/0x7a0\n\nThe problem happens when there is a pending TX worker running in\nparallel with the cleanup path.\n\nThis is what happens on netpoll shutdown path:\n\n1) __netpoll_cleanup() is called\n2) set dev-\u003enpinfo to NULL\n3) call_rcu() with rcu_cleanup_netpoll_info()\n 3.1) rcu_cleanup_netpoll_info() tries to cancel all workers with\n cancel_delayed_work(), but doesn\u0027t wait for the worker to finish\n4) and kfree(npinfo);\n\nBecause 3.1) doesn\u0027t really cancel the work, as the comment says \"we\ncan\u0027t call cancel_delayed_work_sync here, as we are in softirq\", the TX\nworker can run after 4).\n\nTl;DR: queue_process() is not an RCU reader, it reaches npinfo through\nthe work item via container_of().\n\nUse disable_delayed_work_sync() to ensure the worker is completely\nstopped and prevent any future re-arming attempts. Once npinfo is set\nto NULL, senders will bail out and not queue new work. The disable flag\nensures any in-flight re-arming attempts also fail silently.\n\nIn the future, we can do the cleanup inline here without needing the\nnpinfo-\u003ercu rcu_head, but that is net-next material."
}
],
"providerMetadata": {
"dateUpdated": "2026-10-30T12:27:54.711Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/b67625b85c4b1a3725f4be9c6dd8ce3399d11732"
},
{
"url": "https://git.kernel.org/stable/c/95ecc5b58042f6b6743b589e6588f1cd7ba336aa"
},
{
"url": "https://git.kernel.org/stable/c/a33f37f8d079da7236ed7b7e2aed2a34ab81e7cf"
},
{
"url": "https://git.kernel.org/stable/c/5ed09a108d93a3b002cc79823d9455b50c4a8be7"
},
{
"url": "https://git.kernel.org/stable/c/45f1458a85017a023f138b22ac5c76abd477db42"
}
],
"title": "netpoll: fix a use-after-free on shutdown path",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-64424",
"datePublished": "2026-07-25T08:51:02.276Z",
"dateReserved": "2026-07-19T15:36:31.787Z",
"dateUpdated": "2026-10-30T12:27:54.711Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-68323 (GCVE-0-2026-68323)
Vulnerability from cvelistv5
Published
2026-08-10 12:02
Modified
2026-10-30 12:28
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
tipc: serialize udp bearer replicast list updates
tipc_udp_rcast_add() and cleanup_bearer() both update ub->rcast.list with
list_add_rcu() / list_del_rcu(), but nothing serializes them. The add runs
from the encap receive softirq (via tipc_udp_rcast_disc()) without
rtnl_lock(), so it can race the cleanup delete and corrupt the list:
list_del corruption. prev->next should be ffff8880298d7ab8,
but was ffff88802449ad38. (prev=ffff888027e3ec98)
kernel BUG at lib/list_debug.c:62!
RIP: __list_del_entry_valid_or_report+0x17a/0x200
Workqueue: events cleanup_bearer
Call Trace:
cleanup_bearer (net/tipc/udp_media.c:811)
process_one_work (kernel/workqueue.c:3302)
worker_thread (kernel/workqueue.c:3466)
The bearer can be enabled from an unprivileged user namespace, as the
TIPCv2 generic-netlink ops carry no GENL_ADMIN_PERM.
Add a spinlock to struct udp_bearer and take it around the list_add_rcu()
in tipc_udp_rcast_add() and the list_del_rcu() loop in cleanup_bearer() so
the two writers can no longer corrupt the list.
Reject a duplicate peer under the same lock before allocating, and remove
tipc_udp_is_known_peer(). The old lockless pre-check in
tipc_udp_rcast_disc() was racy: two softirqs discovering the same peer
could both find it absent and add it twice.
cleanup_bearer() runs from a workqueue after tipc_udp_disable() clears the
bearer's up bit, so an encap softirq can still reach tipc_udp_rcast_add()
and add a peer after cleanup_bearer() has already emptied the list, leaking
that entry when the bearer is freed. Mark the bearer disabled under
rcast_lock once the list is emptied and refuse further additions.
References
| URL | Tags | |||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: ef20cd4dd1633987bcf46ac34ace2c8af212361f Version: ef20cd4dd1633987bcf46ac34ace2c8af212361f Version: ef20cd4dd1633987bcf46ac34ace2c8af212361f Version: ef20cd4dd1633987bcf46ac34ace2c8af212361f Version: ef20cd4dd1633987bcf46ac34ace2c8af212361f Version: ef20cd4dd1633987bcf46ac34ace2c8af212361f |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-68323",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T15:47:07.182932Z",
"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:04.822Z",
"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": "c148aec60ef1e806cbc9da44b3d89409df998ade",
"status": "affected",
"version": "ef20cd4dd1633987bcf46ac34ace2c8af212361f",
"versionType": "git"
},
{
"lessThan": "3ff6b534d20824cddab99c81ea3bd1144e635626",
"status": "affected",
"version": "ef20cd4dd1633987bcf46ac34ace2c8af212361f",
"versionType": "git"
},
{
"lessThan": "3ff143a884a19bfcf3aebd999b02274fe44f46f3",
"status": "affected",
"version": "ef20cd4dd1633987bcf46ac34ace2c8af212361f",
"versionType": "git"
},
{
"lessThan": "5d3cea7d41dc72073fea6f879815c9b57c3b330d",
"status": "affected",
"version": "ef20cd4dd1633987bcf46ac34ace2c8af212361f",
"versionType": "git"
},
{
"lessThan": "d70c81001df9320d3445e664428a1d408b5ba896",
"status": "affected",
"version": "ef20cd4dd1633987bcf46ac34ace2c8af212361f",
"versionType": "git"
},
{
"lessThan": "350e592ff4e30e48ffb55e142d11a73e63f4869c",
"status": "affected",
"version": "ef20cd4dd1633987bcf46ac34ace2c8af212361f",
"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": "4.9"
},
{
"lessThan": "4.9",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.191",
"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.1.191",
"versionStartIncluding": "4.9",
"vulnerable": true
},
{
"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.114",
"versionStartIncluding": "4.9",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.57",
"versionStartIncluding": "4.9",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.6",
"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\ntipc: serialize udp bearer replicast list updates\n\ntipc_udp_rcast_add() and cleanup_bearer() both update ub-\u003ercast.list with\nlist_add_rcu() / list_del_rcu(), but nothing serializes them. The add runs\nfrom the encap receive softirq (via tipc_udp_rcast_disc()) without\nrtnl_lock(), so it can race the cleanup delete and corrupt the list:\n\n list_del corruption. prev-\u003enext should be ffff8880298d7ab8,\n but was ffff88802449ad38. (prev=ffff888027e3ec98)\n kernel BUG at lib/list_debug.c:62!\n RIP: __list_del_entry_valid_or_report+0x17a/0x200\n Workqueue: events cleanup_bearer\n Call Trace:\n cleanup_bearer (net/tipc/udp_media.c:811)\n process_one_work (kernel/workqueue.c:3302)\n worker_thread (kernel/workqueue.c:3466)\n\nThe bearer can be enabled from an unprivileged user namespace, as the\nTIPCv2 generic-netlink ops carry no GENL_ADMIN_PERM.\n\nAdd a spinlock to struct udp_bearer and take it around the list_add_rcu()\nin tipc_udp_rcast_add() and the list_del_rcu() loop in cleanup_bearer() so\nthe two writers can no longer corrupt the list.\n\nReject a duplicate peer under the same lock before allocating, and remove\ntipc_udp_is_known_peer(). The old lockless pre-check in\ntipc_udp_rcast_disc() was racy: two softirqs discovering the same peer\ncould both find it absent and add it twice.\n\ncleanup_bearer() runs from a workqueue after tipc_udp_disable() clears the\nbearer\u0027s up bit, so an encap softirq can still reach tipc_udp_rcast_add()\nand add a peer after cleanup_bearer() has already emptied the list, leaking\nthat entry when the bearer is freed. Mark the bearer disabled under\nrcast_lock once the list is emptied and refuse further additions."
}
],
"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 local half of the race \u2014 enabling and then disabling a TIPC UDP replicast bearer via generic netlink \u2014 even though the second half is driven by UDP packets; a purely remote peer cannot schedule cleanup_bearer(), so local access is needed.\nAC:L - The attacker owns both racers: they flood LINK_CONFIG UDP packets at the bearer port (softirq list_add_rcu) while issuing TIPC_NL_BEARER_DISABLE (workqueue list_del_rcu), and the window is wide because b-\u003eup is cleared before cleanup_bearer is scheduled, so it can be retried until it hits.\nPR:L - TIPC_NL_BEARER_ENABLE/DISABLE/ADD use GENL_UNS_ADMIN_PERM, i.e. CAP_NET_ADMIN in the net\u0027s owning user namespace, which any unprivileged user obtains with unshare -Urn; no real root is required.\nUI:N - The attacker performs every step itself \u2014 create netns, enable bearer, send packets, disable bearer \u2014 with no action by any other user or administrator.\nS:U - The corruption and any resulting escalation stay within the kernel\u0027s own security authority; no VM, IOMMU, or sandbox boundary is crossed.\nC:H - Concurrent list_add_rcu/list_del_rcu on ub-\u003ercast.list leaves dangling and duplicated entries, so udp_replicast objects freed by rcast_free_rcu remain reachable from the list; the resulting use-after-free reads of attacker-groomed heap memory can disclose arbitrary kernel data.\nI:H - List corruption makes list_add_rcu/list_del_rcu write prev-\u003enext and next-\u003eprev through stale pointers into freed or attacker-controlled heap memory, a classic write primitive that is leverageable for control-flow hijack and privilege escalation.\nA:H - The reported symptom is a hard kernel BUG at lib/list_debug.c:62 (__list_del_entry_valid_or_report) in the cleanup_bearer workqueue, i.e. an immediate panic; without CONFIG_DEBUG_LIST the corrupted list and freed-entry traversal crash the kernel anyway."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-30T12:28:23.482Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/c148aec60ef1e806cbc9da44b3d89409df998ade"
},
{
"url": "https://git.kernel.org/stable/c/3ff6b534d20824cddab99c81ea3bd1144e635626"
},
{
"url": "https://git.kernel.org/stable/c/3ff143a884a19bfcf3aebd999b02274fe44f46f3"
},
{
"url": "https://git.kernel.org/stable/c/5d3cea7d41dc72073fea6f879815c9b57c3b330d"
},
{
"url": "https://git.kernel.org/stable/c/d70c81001df9320d3445e664428a1d408b5ba896"
},
{
"url": "https://git.kernel.org/stable/c/350e592ff4e30e48ffb55e142d11a73e63f4869c"
}
],
"title": "tipc: serialize udp bearer replicast list updates",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-68323",
"datePublished": "2026-08-10T12:02:59.034Z",
"dateReserved": "2026-07-30T09:28:09.382Z",
"dateUpdated": "2026-10-30T12:28:23.482Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-98248 (GCVE-0-2026-98248)
Vulnerability from cvelistv5
Published
2026-10-06 08:45
Modified
2026-10-19 09:16
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
arm64: percpu: Fix LSE operations on {8,16}-bit types
The assembly for __percpu_##name##_case_##sz() and
__percpu_##name##_return_case_##sz() doesn't use the 'sfx' macro
argument to form the LSE instruction. Without 'sfx', a W register
argument will imply a 32-bit memory location, and consequently
{8,16}-bit ops will erroneously read and write 32 bits of memory when
the LSE instruction is used.
Fix this by appending 'sfx' to 'op_lse' to LSE instruction. It is not
necessary (and not valid) to append 'sfx' to 'op_llsc', as 'op_llsc' is
a register-register operation which does not access memory (and does not
take a size suffix).
References
| URL | Tags | |
|---|---|---|
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"arch/arm64/include/asm/percpu.h"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "d69ab4480e49bf925f4781afcc9f284affcb96b6",
"status": "affected",
"version": "959bf2fd03b59fc107584c21425f3dc73c49f762",
"versionType": "git"
},
{
"lessThan": "390742871a723b52de9b92a94c0d1c85a2531e3e",
"status": "affected",
"version": "959bf2fd03b59fc107584c21425f3dc73c49f762",
"versionType": "git"
},
{
"lessThan": "843ace1d0a39e9b1cfcbfb3856a7b0fbdd9cd003",
"status": "affected",
"version": "959bf2fd03b59fc107584c21425f3dc73c49f762",
"versionType": "git"
},
{
"lessThan": "8cf2093f5372952a9ebc805c418d45df7112cd14",
"status": "affected",
"version": "959bf2fd03b59fc107584c21425f3dc73c49f762",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"arch/arm64/include/asm/percpu.h"
],
"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.12.*",
"status": "unaffected",
"version": "6.12.112",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.54",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.8",
"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": "5.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.54",
"versionStartIncluding": "5.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.8",
"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\narm64: percpu: Fix LSE operations on {8,16}-bit types\n\nThe assembly for __percpu_##name##_case_##sz() and\n__percpu_##name##_return_case_##sz() doesn\u0027t use the \u0027sfx\u0027 macro\nargument to form the LSE instruction. Without \u0027sfx\u0027, a W register\nargument will imply a 32-bit memory location, and consequently\n{8,16}-bit ops will erroneously read and write 32 bits of memory when\nthe LSE instruction is used.\n\nFix this by appending \u0027sfx\u0027 to \u0027op_lse\u0027 to LSE instruction. It is not\nnecessary (and not valid) to append \u0027sfx\u0027 to \u0027op_llsc\u0027, as \u0027op_llsc\u0027 is\na register-register operation which does not access memory (and does not\ntake a size suffix)."
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T09:16:19.730Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/d69ab4480e49bf925f4781afcc9f284affcb96b6"
},
{
"url": "https://git.kernel.org/stable/c/390742871a723b52de9b92a94c0d1c85a2531e3e"
},
{
"url": "https://git.kernel.org/stable/c/843ace1d0a39e9b1cfcbfb3856a7b0fbdd9cd003"
},
{
"url": "https://git.kernel.org/stable/c/8cf2093f5372952a9ebc805c418d45df7112cd14"
}
],
"title": "arm64: percpu: Fix LSE operations on {8,16}-bit types",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-98248",
"datePublished": "2026-10-06T08:45:16.693Z",
"dateReserved": "2026-09-25T10:25:14.330Z",
"dateUpdated": "2026-10-19T09:16:19.730Z",
"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-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-98077 (GCVE-0-2026-98077)
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:
netfilter: nf_conntrack_sip: fix OOB read in sip_skip_whitespace()
sip_skip_whitespace() returns dptr unchanged when its own loop
exhausts the buffer (dptr == limit), instead of NULL like its sibling
sip_follow_continuation() returns on its own "no more data" path.
ct_sip_get_header() only checks for NULL after calling it:
dptr = sip_skip_whitespace(dptr, limit);
if (dptr == NULL)
break;
if (*dptr != ':' || ++dptr >= limit)
break;
so a recognized header name followed only by spaces/tabs running to
the exact end of the SIP payload, with no colon, makes the very next
statement read one byte past the buffer.
Make both "no more data" outcomes return NULL, matching the
convention sip_follow_continuation() already uses and that both
existing callers already check for.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: ea45f12a2766dae54e5426a23e8f4bafdbe2782e Version: ea45f12a2766dae54e5426a23e8f4bafdbe2782e Version: ea45f12a2766dae54e5426a23e8f4bafdbe2782e Version: ea45f12a2766dae54e5426a23e8f4bafdbe2782e Version: ea45f12a2766dae54e5426a23e8f4bafdbe2782e Version: ea45f12a2766dae54e5426a23e8f4bafdbe2782e Version: ea45f12a2766dae54e5426a23e8f4bafdbe2782e Version: ea45f12a2766dae54e5426a23e8f4bafdbe2782e |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/netfilter/nf_conntrack_sip.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "9ae0a87e6f513293677fe286729fbae34d592215",
"status": "affected",
"version": "ea45f12a2766dae54e5426a23e8f4bafdbe2782e",
"versionType": "git"
},
{
"lessThan": "b6277622b7323000895b674321c9a1f060553188",
"status": "affected",
"version": "ea45f12a2766dae54e5426a23e8f4bafdbe2782e",
"versionType": "git"
},
{
"lessThan": "0cfb96a118c5c6d46d7a1cfdfa18355ad734ca79",
"status": "affected",
"version": "ea45f12a2766dae54e5426a23e8f4bafdbe2782e",
"versionType": "git"
},
{
"lessThan": "c6beb08b1a9fdb96795816d8329ed75dd785d48e",
"status": "affected",
"version": "ea45f12a2766dae54e5426a23e8f4bafdbe2782e",
"versionType": "git"
},
{
"lessThan": "60c012b2d05e1558b0f30ea3f15a2c3ca2f24d94",
"status": "affected",
"version": "ea45f12a2766dae54e5426a23e8f4bafdbe2782e",
"versionType": "git"
},
{
"lessThan": "4be8380e3af008f418f97992c06f23be649a430d",
"status": "affected",
"version": "ea45f12a2766dae54e5426a23e8f4bafdbe2782e",
"versionType": "git"
},
{
"lessThan": "4a30aa2ba007db18210dd52219ecbd5528c03523",
"status": "affected",
"version": "ea45f12a2766dae54e5426a23e8f4bafdbe2782e",
"versionType": "git"
},
{
"lessThan": "e8f8231824b5815f57ce62cba116e511b10196de",
"status": "affected",
"version": "ea45f12a2766dae54e5426a23e8f4bafdbe2782e",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/netfilter/nf_conntrack_sip.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.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": "2.6.26",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.222",
"versionStartIncluding": "2.6.26",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.189",
"versionStartIncluding": "2.6.26",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.158",
"versionStartIncluding": "2.6.26",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.111",
"versionStartIncluding": "2.6.26",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.53",
"versionStartIncluding": "2.6.26",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.7",
"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\nnetfilter: nf_conntrack_sip: fix OOB read in sip_skip_whitespace()\n\nsip_skip_whitespace() returns dptr unchanged when its own loop\nexhausts the buffer (dptr == limit), instead of NULL like its sibling\nsip_follow_continuation() returns on its own \"no more data\" path.\n\nct_sip_get_header() only checks for NULL after calling it:\n\n dptr = sip_skip_whitespace(dptr, limit);\n if (dptr == NULL)\n break;\n if (*dptr != \u0027:\u0027 || ++dptr \u003e= limit)\n break;\n\nso a recognized header name followed only by spaces/tabs running to\nthe exact end of the SIP payload, with no colon, makes the very next\nstatement read one byte past the buffer.\n\nMake both \"no more data\" outcomes return NULL, matching the\nconvention sip_follow_continuation() already uses and that both\nexisting callers already check for."
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T09:13:26.849Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/9ae0a87e6f513293677fe286729fbae34d592215"
},
{
"url": "https://git.kernel.org/stable/c/b6277622b7323000895b674321c9a1f060553188"
},
{
"url": "https://git.kernel.org/stable/c/0cfb96a118c5c6d46d7a1cfdfa18355ad734ca79"
},
{
"url": "https://git.kernel.org/stable/c/c6beb08b1a9fdb96795816d8329ed75dd785d48e"
},
{
"url": "https://git.kernel.org/stable/c/60c012b2d05e1558b0f30ea3f15a2c3ca2f24d94"
},
{
"url": "https://git.kernel.org/stable/c/4be8380e3af008f418f97992c06f23be649a430d"
},
{
"url": "https://git.kernel.org/stable/c/4a30aa2ba007db18210dd52219ecbd5528c03523"
},
{
"url": "https://git.kernel.org/stable/c/e8f8231824b5815f57ce62cba116e511b10196de"
}
],
"title": "netfilter: nf_conntrack_sip: fix OOB read in sip_skip_whitespace()",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-98077",
"datePublished": "2026-09-25T10:24:15.691Z",
"dateReserved": "2026-09-25T10:19:56.074Z",
"dateUpdated": "2026-10-19T09:13:26.849Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-97533 (GCVE-0-2026-97533)
Vulnerability from cvelistv5
Published
2026-09-25 10:21
Modified
2026-10-19 09:08
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
x86/mm/pat: Acquire init_mm read lock on attribute changes to avoid UAF
A previous commit protected against races between ptdump and CPA collapse,
however one still exists between attribute changes and collapse as reported
by Denis V. Lunev (linked).
When an attribute change arises, a lockless page table walker obtains a PTE
entry, which is later written to via set_pte_atomic():
...
-> change_page_attr_set_clr()
-> __change_page_attr_set_clr()
-> __change_page_attr()
-> _lookup_address_cpa()
-> lookup_address_in_pgd_attr()
-> [ lockless page table walker ]
-> set_pte_atomic()
There is nothing preventing a concurrent CPA collapse which can free the
PTE that was retrieved here, resulting in a use-after-free.
With the mmap write lock taken on init_mm over CPA collapse, resolve this
race by acquiring an mmap read lock on init_mm over
__change_page_attr_set_clr().
This locks across the whole operation over which the walk and the PTE
entry write occurs, solving the race.
It is safe to do this here, as no spinlocks are held upon entry to
__change_page_attr_set_clr().
However, the lock must not be held over an allocation, as allocation can
trigger reclaim and shrinkers may call into CPA recursively, making
deadlocks possible (init_mm -> ... -> fs_reclaim -> init_mm).
A page table is allocated when a huge page needs to be split:
-> change_page_attr_set_clr()
-> __change_page_attr_set_clr()
-> __change_page_attr()
-> split_large_page()
[ pagetable_alloc() ]
-> __split_large_page()
Avoid deadlocks by dropping the mmap lock across pagetable_alloc() in
split_large_page() and track whether this is needed by adding a new
'init_mm_read_locked' flag to struct cpa_data.
This is safe as __split_large_page() (called with locks re-established)
revalidates that the page table entry is the same as it was prior to the
locks being dropped and __change_page_attr() repeats the entire page table
walk whenever a split occurs, so concurrent split and collapse are
accounted for.
Concurrent ptdump is also safe as the lock is only dropped over page table
allocation during which time the page table has not yet been modified.
The CPA_COLLAPSE flag is only set by set_memory_rox(), which exclusively
operates upon vmalloc ranges, and on x86 only within the module mapping
space.
This is important, because some callers directly invoke
__change_page_attr_set_clr(), bypassing this lock. However, none of these
operate within the module mapping space.
* cpa_process_alias() - a recursive helper called by
__change_page_attr_set_clr().
* __set_memory_enc_pgtable() - operates on the direct mapping and (via
__vmbus_establish_gpadl()) the vmalloc mapping space.
* __set_pages_[n]p() - called by set_direct_map_[invalid, default,
valid]_noflush(), __kernel_map_pages() - operates on the direct map.
* kernel_[un]map_pages_in_pgd() - operates on EFI ranges.
This work is based upon Denis V. Lunev's excellent analysis of the bug
with gratitude.
[ dhansen: move to imperative voice in changelog ]
References
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"arch/x86/mm/pat/set_memory.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "e21a9ea81426a85fdb0cdcfcc99d5d9c16b402ab",
"status": "affected",
"version": "41d88484c71cd4f659348da41b7b5b3dbd3be1f6",
"versionType": "git"
},
{
"lessThan": "cc73b2043d106b467accd38e9b1fc09e0607c056",
"status": "affected",
"version": "41d88484c71cd4f659348da41b7b5b3dbd3be1f6",
"versionType": "git"
},
{
"lessThan": "d5d8b8662e6e5a565b47a0388640e88402f23274",
"status": "affected",
"version": "41d88484c71cd4f659348da41b7b5b3dbd3be1f6",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"arch/x86/mm/pat/set_memory.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.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.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.7",
"versionStartIncluding": "6.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "6.15",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nx86/mm/pat: Acquire init_mm read lock on attribute changes to avoid UAF\n\nA previous commit protected against races between ptdump and CPA collapse,\nhowever one still exists between attribute changes and collapse as reported\nby Denis V. Lunev (linked).\n\nWhen an attribute change arises, a lockless page table walker obtains a PTE\nentry, which is later written to via set_pte_atomic():\n\n ...\n -\u003e change_page_attr_set_clr()\n -\u003e __change_page_attr_set_clr()\n -\u003e __change_page_attr()\n\t-\u003e _lookup_address_cpa()\n\t-\u003e lookup_address_in_pgd_attr()\n\t-\u003e [ lockless page table walker ]\n -\u003e set_pte_atomic()\n\nThere is nothing preventing a concurrent CPA collapse which can free the\nPTE that was retrieved here, resulting in a use-after-free.\n\nWith the mmap write lock taken on init_mm over CPA collapse, resolve this\nrace by acquiring an mmap read lock on init_mm over\n__change_page_attr_set_clr().\n\nThis locks across the whole operation over which the walk and the PTE\nentry write occurs, solving the race.\n\nIt is safe to do this here, as no spinlocks are held upon entry to\n__change_page_attr_set_clr().\n\nHowever, the lock must not be held over an allocation, as allocation can\ntrigger reclaim and shrinkers may call into CPA recursively, making\ndeadlocks possible (init_mm -\u003e ... -\u003e fs_reclaim -\u003e init_mm).\n\nA page table is allocated when a huge page needs to be split:\n\n -\u003e change_page_attr_set_clr()\n -\u003e __change_page_attr_set_clr()\n -\u003e __change_page_attr()\n -\u003e split_large_page()\n [ pagetable_alloc() ]\n -\u003e __split_large_page()\n\nAvoid deadlocks by dropping the mmap lock across pagetable_alloc() in\nsplit_large_page() and track whether this is needed by adding a new\n\u0027init_mm_read_locked\u0027 flag to struct cpa_data.\n\nThis is safe as __split_large_page() (called with locks re-established)\nrevalidates that the page table entry is the same as it was prior to the\nlocks being dropped and __change_page_attr() repeats the entire page table\nwalk whenever a split occurs, so concurrent split and collapse are\naccounted for.\n\nConcurrent ptdump is also safe as the lock is only dropped over page table\nallocation during which time the page table has not yet been modified.\n\nThe CPA_COLLAPSE flag is only set by set_memory_rox(), which exclusively\noperates upon vmalloc ranges, and on x86 only within the module mapping\nspace.\n\nThis is important, because some callers directly invoke\n__change_page_attr_set_clr(), bypassing this lock. However, none of these\noperate within the module mapping space.\n\n * cpa_process_alias() - a recursive helper called by\n __change_page_attr_set_clr().\n * __set_memory_enc_pgtable() - operates on the direct mapping and (via\n __vmbus_establish_gpadl()) the vmalloc mapping space.\n * __set_pages_[n]p() - called by set_direct_map_[invalid, default,\n valid]_noflush(), __kernel_map_pages() - operates on the direct map.\n * kernel_[un]map_pages_in_pgd() - operates on EFI ranges.\n\nThis work is based upon Denis V. Lunev\u0027s excellent analysis of the bug\nwith gratitude.\n\n[ dhansen: move to imperative voice in changelog ]"
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T09:08:55.793Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/e21a9ea81426a85fdb0cdcfcc99d5d9c16b402ab"
},
{
"url": "https://git.kernel.org/stable/c/cc73b2043d106b467accd38e9b1fc09e0607c056"
},
{
"url": "https://git.kernel.org/stable/c/d5d8b8662e6e5a565b47a0388640e88402f23274"
}
],
"title": "x86/mm/pat: Acquire init_mm read lock on attribute changes to avoid UAF",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-97533",
"datePublished": "2026-09-25T10:21:33.188Z",
"dateReserved": "2026-09-24T16:01:01.153Z",
"dateUpdated": "2026-10-19T09:08:55.793Z",
"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-43299 (GCVE-0-2026-43299)
Vulnerability from cvelistv5
Published
2026-05-08 13:11
Modified
2026-10-30 12:25
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
btrfs: do not ASSERT() when the fs flips RO inside btrfs_repair_io_failure()
[BUG]
There is a bug report that when btrfs hits ENOSPC error in a critical
path, btrfs flips RO (this part is expected, although the ENOSPC bug
still needs to be addressed).
The problem is after the RO flip, if there is a read repair pending, we
can hit the ASSERT() inside btrfs_repair_io_failure() like the following:
BTRFS info (device vdc): relocating block group 30408704 flags metadata|raid1
------------[ cut here ]------------
BTRFS: Transaction aborted (error -28)
WARNING: fs/btrfs/extent-tree.c:3235 at __btrfs_free_extent.isra.0+0x453/0xfd0, CPU#1: btrfs/383844
Modules linked in: kvm_intel kvm irqbypass
[...]
---[ end trace 0000000000000000 ]---
BTRFS info (device vdc state EA): 2 enospc errors during balance
BTRFS info (device vdc state EA): balance: ended with status: -30
BTRFS error (device vdc state EA): parent transid verify failed on logical 30556160 mirror 2 wanted 8 found 6
BTRFS error (device vdc state EA): bdev /dev/nvme0n1 errs: wr 0, rd 0, flush 0, corrupt 10, gen 0
[...]
assertion failed: !(fs_info->sb->s_flags & SB_RDONLY) :: 0, in fs/btrfs/bio.c:938
------------[ cut here ]------------
assertion failed: !(fs_info->sb->s_flags & SB_RDONLY) :: 0, in fs/btrfs/bio.c:938
kernel BUG at fs/btrfs/bio.c:938!
Oops: invalid opcode: 0000 [#1] SMP NOPTI
CPU: 0 UID: 0 PID: 868 Comm: kworker/u8:13 Tainted: G W N 6.19.0-rc6+ #4788 PREEMPT(full)
Tainted: [W]=WARN, [N]=TEST
Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS rel-1.17.0-0-gb52ca86e094d-prebuilt.qemu.org 04/01/2014
Workqueue: btrfs-endio simple_end_io_work
RIP: 0010:btrfs_repair_io_failure.cold+0xb2/0x120
RSP: 0000:ffffc90001d2bcf0 EFLAGS: 00010246
RAX: 0000000000000051 RBX: 0000000000001000 RCX: 0000000000000000
RDX: 0000000000000000 RSI: ffffffff8305cf42 RDI: 00000000ffffffff
RBP: 0000000000000002 R08: 00000000fffeffff R09: ffffffff837fa988
R10: ffffffff8327a9e0 R11: 6f69747265737361 R12: ffff88813018d310
R13: ffff888168b8a000 R14: ffffc90001d2bd90 R15: ffff88810a169000
FS: 0000000000000000(0000) GS:ffff8885e752c000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
------------[ cut here ]------------
[CAUSE]
The cause of -ENOSPC error during the test case btrfs/124 is still
unknown, although it's known that we still have cases where metadata can
be over-committed but can not be fulfilled correctly, thus if we hit
such ENOSPC error inside a critical path, we have no choice but abort
the current transaction.
This will mark the fs read-only.
The problem is inside the btrfs_repair_io_failure() path that we require
the fs not to be mount read-only. This is normally fine, but if we are
doing a read-repair meanwhile the fs flips RO due to a critical error,
we can enter btrfs_repair_io_failure() with super block set to
read-only, thus triggering the above crash.
[FIX]
Just replace the ASSERT() with a proper return if the fs is already
read-only.
References
| URL | Tags | |||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 908960c6c0fb3b3ce3971dc0ca47b581d256b968 Version: 908960c6c0fb3b3ce3971dc0ca47b581d256b968 Version: 908960c6c0fb3b3ce3971dc0ca47b581d256b968 Version: 908960c6c0fb3b3ce3971dc0ca47b581d256b968 Version: 908960c6c0fb3b3ce3971dc0ca47b581d256b968 Version: 908960c6c0fb3b3ce3971dc0ca47b581d256b968 |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"fs/btrfs/bio.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "053dd7f3c9647d3a781919c1b14105f46786d677",
"status": "affected",
"version": "908960c6c0fb3b3ce3971dc0ca47b581d256b968",
"versionType": "git"
},
{
"lessThan": "a35b38cb4b0dd08d7cc0bd4e400208c7aeba8a72",
"status": "affected",
"version": "908960c6c0fb3b3ce3971dc0ca47b581d256b968",
"versionType": "git"
},
{
"lessThan": "da3f596073de1c3cbc99941f01296968a85c8c76",
"status": "affected",
"version": "908960c6c0fb3b3ce3971dc0ca47b581d256b968",
"versionType": "git"
},
{
"lessThan": "81e1ae665004b99a10686473d99f0a7cb6335f38",
"status": "affected",
"version": "908960c6c0fb3b3ce3971dc0ca47b581d256b968",
"versionType": "git"
},
{
"lessThan": "f6df18c001e3dcebc08482d0adeacd0cfea08593",
"status": "affected",
"version": "908960c6c0fb3b3ce3971dc0ca47b581d256b968",
"versionType": "git"
},
{
"lessThan": "8ceaad6cd6e7fa5f73b0b2796a2e85d75d37e9f3",
"status": "affected",
"version": "908960c6c0fb3b3ce3971dc0ca47b581d256b968",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"fs/btrfs/bio.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": "6.1.*",
"status": "unaffected",
"version": "6.1.191",
"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": "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.1.191",
"versionStartIncluding": "3.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.160",
"versionStartIncluding": "3.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.114",
"versionStartIncluding": "3.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.57",
"versionStartIncluding": "3.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.19.6",
"versionStartIncluding": "3.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.0",
"versionStartIncluding": "3.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 ASSERT() when the fs flips RO inside btrfs_repair_io_failure()\n\n[BUG]\nThere is a bug report that when btrfs hits ENOSPC error in a critical\npath, btrfs flips RO (this part is expected, although the ENOSPC bug\nstill needs to be addressed).\n\nThe problem is after the RO flip, if there is a read repair pending, we\ncan hit the ASSERT() inside btrfs_repair_io_failure() like the following:\n\n BTRFS info (device vdc): relocating block group 30408704 flags metadata|raid1\n ------------[ cut here ]------------\n BTRFS: Transaction aborted (error -28)\n WARNING: fs/btrfs/extent-tree.c:3235 at __btrfs_free_extent.isra.0+0x453/0xfd0, CPU#1: btrfs/383844\n Modules linked in: kvm_intel kvm irqbypass\n [...]\n ---[ end trace 0000000000000000 ]---\n BTRFS info (device vdc state EA): 2 enospc errors during balance\n BTRFS info (device vdc state EA): balance: ended with status: -30\n BTRFS error (device vdc state EA): parent transid verify failed on logical 30556160 mirror 2 wanted 8 found 6\n BTRFS error (device vdc state EA): bdev /dev/nvme0n1 errs: wr 0, rd 0, flush 0, corrupt 10, gen 0\n [...]\n assertion failed: !(fs_info-\u003esb-\u003es_flags \u0026 SB_RDONLY) :: 0, in fs/btrfs/bio.c:938\n ------------[ cut here ]------------\n assertion failed: !(fs_info-\u003esb-\u003es_flags \u0026 SB_RDONLY) :: 0, in fs/btrfs/bio.c:938\n kernel BUG at fs/btrfs/bio.c:938!\n Oops: invalid opcode: 0000 [#1] SMP NOPTI\n CPU: 0 UID: 0 PID: 868 Comm: kworker/u8:13 Tainted: G W N 6.19.0-rc6+ #4788 PREEMPT(full)\n Tainted: [W]=WARN, [N]=TEST\n Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS rel-1.17.0-0-gb52ca86e094d-prebuilt.qemu.org 04/01/2014\n Workqueue: btrfs-endio simple_end_io_work\n RIP: 0010:btrfs_repair_io_failure.cold+0xb2/0x120\n RSP: 0000:ffffc90001d2bcf0 EFLAGS: 00010246\n RAX: 0000000000000051 RBX: 0000000000001000 RCX: 0000000000000000\n RDX: 0000000000000000 RSI: ffffffff8305cf42 RDI: 00000000ffffffff\n RBP: 0000000000000002 R08: 00000000fffeffff R09: ffffffff837fa988\n R10: ffffffff8327a9e0 R11: 6f69747265737361 R12: ffff88813018d310\n R13: ffff888168b8a000 R14: ffffc90001d2bd90 R15: ffff88810a169000\n FS: 0000000000000000(0000) GS:ffff8885e752c000(0000) knlGS:0000000000000000\n CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033\n ------------[ cut here ]------------\n\n[CAUSE]\nThe cause of -ENOSPC error during the test case btrfs/124 is still\nunknown, although it\u0027s known that we still have cases where metadata can\nbe over-committed but can not be fulfilled correctly, thus if we hit\nsuch ENOSPC error inside a critical path, we have no choice but abort\nthe current transaction.\n\nThis will mark the fs read-only.\n\nThe problem is inside the btrfs_repair_io_failure() path that we require\nthe fs not to be mount read-only. This is normally fine, but if we are\ndoing a read-repair meanwhile the fs flips RO due to a critical error,\nwe can enter btrfs_repair_io_failure() with super block set to\nread-only, thus triggering the above crash.\n\n[FIX]\nJust replace the ASSERT() with a proper return if the fs is already\nread-only."
}
],
"providerMetadata": {
"dateUpdated": "2026-10-30T12:25:23.043Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/053dd7f3c9647d3a781919c1b14105f46786d677"
},
{
"url": "https://git.kernel.org/stable/c/a35b38cb4b0dd08d7cc0bd4e400208c7aeba8a72"
},
{
"url": "https://git.kernel.org/stable/c/da3f596073de1c3cbc99941f01296968a85c8c76"
},
{
"url": "https://git.kernel.org/stable/c/81e1ae665004b99a10686473d99f0a7cb6335f38"
},
{
"url": "https://git.kernel.org/stable/c/f6df18c001e3dcebc08482d0adeacd0cfea08593"
},
{
"url": "https://git.kernel.org/stable/c/8ceaad6cd6e7fa5f73b0b2796a2e85d75d37e9f3"
}
],
"title": "btrfs: do not ASSERT() when the fs flips RO inside btrfs_repair_io_failure()",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-43299",
"datePublished": "2026-05-08T13:11:20.872Z",
"dateReserved": "2026-05-01T14:12:56.000Z",
"dateUpdated": "2026-10-30T12:25:23.043Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-72081 (GCVE-0-2026-72081)
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: elx: efct: Fix I/O leak on unsupported additional CDB
efct_dispatch_fcp_cmd() allocates an efct_io before dispatching an
unsolicited FCP command. If the command has an unsupported additional
CDB, the function returns -EIO before handing the IO to the SCSI layer.
Free the allocated IO before returning from this error path.
References
| URL | Tags | ||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: f45ae6aac0a077ca15a6e7baae0a62eef099ea7d Version: f45ae6aac0a077ca15a6e7baae0a62eef099ea7d Version: f45ae6aac0a077ca15a6e7baae0a62eef099ea7d Version: f45ae6aac0a077ca15a6e7baae0a62eef099ea7d Version: f45ae6aac0a077ca15a6e7baae0a62eef099ea7d Version: f45ae6aac0a077ca15a6e7baae0a62eef099ea7d Version: f45ae6aac0a077ca15a6e7baae0a62eef099ea7d |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/scsi/elx/efct/efct_unsol.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "42a391d508e1f52fda5d81344e100a53c00898e3",
"status": "affected",
"version": "f45ae6aac0a077ca15a6e7baae0a62eef099ea7d",
"versionType": "git"
},
{
"lessThan": "9d479f50a6067954259414aa66d816c7df081286",
"status": "affected",
"version": "f45ae6aac0a077ca15a6e7baae0a62eef099ea7d",
"versionType": "git"
},
{
"lessThan": "8c689a8f229223cec4a821c65cfe40f8e8c56470",
"status": "affected",
"version": "f45ae6aac0a077ca15a6e7baae0a62eef099ea7d",
"versionType": "git"
},
{
"lessThan": "235159f75ab6f95484494db4cc031663e5ee4680",
"status": "affected",
"version": "f45ae6aac0a077ca15a6e7baae0a62eef099ea7d",
"versionType": "git"
},
{
"lessThan": "df87532e9212238509f23effd0ca39d9c3062d21",
"status": "affected",
"version": "f45ae6aac0a077ca15a6e7baae0a62eef099ea7d",
"versionType": "git"
},
{
"lessThan": "94cbfed191248dc88c23fc881119bb399486ddfd",
"status": "affected",
"version": "f45ae6aac0a077ca15a6e7baae0a62eef099ea7d",
"versionType": "git"
},
{
"lessThan": "9cb2d5291dbfe7bed565ead3337047dee9ed1064",
"status": "affected",
"version": "f45ae6aac0a077ca15a6e7baae0a62eef099ea7d",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/scsi/elx/efct/efct_unsol.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\nscsi: elx: efct: Fix I/O leak on unsupported additional CDB\n\nefct_dispatch_fcp_cmd() allocates an efct_io before dispatching an\nunsolicited FCP command. If the command has an unsupported additional\nCDB, the function returns -EIO before handing the IO to the SCSI layer.\n\nFree the allocated IO before returning from this error path."
}
],
"providerMetadata": {
"dateUpdated": "2026-08-17T05:07:51.232Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/42a391d508e1f52fda5d81344e100a53c00898e3"
},
{
"url": "https://git.kernel.org/stable/c/9d479f50a6067954259414aa66d816c7df081286"
},
{
"url": "https://git.kernel.org/stable/c/8c689a8f229223cec4a821c65cfe40f8e8c56470"
},
{
"url": "https://git.kernel.org/stable/c/235159f75ab6f95484494db4cc031663e5ee4680"
},
{
"url": "https://git.kernel.org/stable/c/df87532e9212238509f23effd0ca39d9c3062d21"
},
{
"url": "https://git.kernel.org/stable/c/94cbfed191248dc88c23fc881119bb399486ddfd"
},
{
"url": "https://git.kernel.org/stable/c/9cb2d5291dbfe7bed565ead3337047dee9ed1064"
}
],
"title": "scsi: elx: efct: Fix I/O leak on unsupported additional CDB",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-72081",
"datePublished": "2026-08-15T05:52:30.545Z",
"dateReserved": "2026-08-09T03:40:39.904Z",
"dateUpdated": "2026-08-17T05:07:51.232Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-72301 (GCVE-0-2026-72301)
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:
ASoC: SOF: ipc3-control: Fix TOCTOU in bytes_put and bytes_get
In sof_ipc3_bytes_put(), the size used for the memcpy is derived from
the old data->size already in the buffer, not the incoming new data's
size field. If the new data has a different size, the copy length is
wrong: it may truncate valid data or copy stale bytes.
Similarly, sof_ipc3_bytes_get() checks data->size against max_size
without accounting for the sizeof(struct sof_ipc_ctrl_data) offset
of the flex array within the allocation.
Fix bytes_put to validate and use the incoming data's sof_abi_hdr.size
from ucontrol before copying. Fix bytes_get to subtract sizeof(*cdata)
from the bounds check to match the actual available space.
References
| URL | Tags | |||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 544ac8858f249950b4d99c68e538cdc07300528f Version: 544ac8858f249950b4d99c68e538cdc07300528f Version: 544ac8858f249950b4d99c68e538cdc07300528f Version: 544ac8858f249950b4d99c68e538cdc07300528f Version: 544ac8858f249950b4d99c68e538cdc07300528f Version: 544ac8858f249950b4d99c68e538cdc07300528f |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-72301",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T18:46:11.606714Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T18:55:16.018Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"sound/soc/sof/ipc3-control.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "8bd715a9d882fe1993bb2aec5eff89fffa946592",
"status": "affected",
"version": "544ac8858f249950b4d99c68e538cdc07300528f",
"versionType": "git"
},
{
"lessThan": "0dce240145f47545d2e4b18c6d58033b83e1fd0e",
"status": "affected",
"version": "544ac8858f249950b4d99c68e538cdc07300528f",
"versionType": "git"
},
{
"lessThan": "ed4f758f34be4c32e02933ac4fa044589d9c1c16",
"status": "affected",
"version": "544ac8858f249950b4d99c68e538cdc07300528f",
"versionType": "git"
},
{
"lessThan": "0c4fbdaca225b97122b61b68c5353caa33a253c3",
"status": "affected",
"version": "544ac8858f249950b4d99c68e538cdc07300528f",
"versionType": "git"
},
{
"lessThan": "92f90917413bdd6078fefff6f6c83a07bf870b04",
"status": "affected",
"version": "544ac8858f249950b4d99c68e538cdc07300528f",
"versionType": "git"
},
{
"lessThan": "1f97760417b5faa60e9642fd0ed61eb17d0b1b39",
"status": "affected",
"version": "544ac8858f249950b4d99c68e538cdc07300528f",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"sound/soc/sof/ipc3-control.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\nASoC: SOF: ipc3-control: Fix TOCTOU in bytes_put and bytes_get\n\nIn sof_ipc3_bytes_put(), the size used for the memcpy is derived from\nthe old data-\u003esize already in the buffer, not the incoming new data\u0027s\nsize field. If the new data has a different size, the copy length is\nwrong: it may truncate valid data or copy stale bytes.\n\nSimilarly, sof_ipc3_bytes_get() checks data-\u003esize against max_size\nwithout accounting for the sizeof(struct sof_ipc_ctrl_data) offset\nof the flex array within the allocation.\n\nFix bytes_put to validate and use the incoming data\u0027s sof_abi_hdr.size\nfrom ucontrol before copying. Fix bytes_get to subtract sizeof(*cdata)\nfrom the bounds check to match the actual available space."
}
],
"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 ALSA access via /dev/snd/controlC* and SNDRV_CTL_IOCTL_ELEM_READ/WRITE ioctls through snd_ctl_elem_write/read to sof_ipc3_bytes_put/get; SOF audio DSP controls are not reachable over the network.\nAC:L - An attacker can deterministically trigger the bug by sequencing bytes_put calls to set a large stale data-\u003esize then issue a second put with a smaller header, or use bytes_get after inflating size; no uncontrollable race or rare layout is required.\nPR:L - Only standard local access to the ALSA control device is needed; on typical Linux desktops and laptops with Intel/AMD SOF IPC3, session users in the audio group can write SOF bytes kcontrols without real root or init-namespace capabilities.\nUI:N - No victim interaction is required; a local attacker with sound-device access can directly issue ioctl-based ALSA control read/write operations against writable SOF bytes controls.\nS:U - The flaw corrupts kernel heap memory adjacent to a SOF control allocation and can enable local privilege escalation, but it does not cross a VM, IOMMU, or sandbox security boundary into another authority.\nC:H - sof_ipc3_bytes_get can memcpy up to roughly sizeof(struct sof_ipc_ctrl_data) bytes beyond the kzalloc(max_size) allocation into userspace when data-\u003esize passes an incorrect bound, leaking adjacent kernel heap contents.\nI:H - sof_ipc3_bytes_put uses stale data-\u003esize for memcpy length instead of the incoming sof_abi_hdr.size, enabling a heap out-of-bounds write past the control buffer that can corrupt adjacent kmalloc objects and be leveraged for code execution.\nA:H - The out-of-bounds read/write corrupts kernel heap metadata or adjacent objects and can cause kernel oops, panic, or hang when exploiting SOF IPC3 bytes controls on affected hardware."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-17T05:42:33.552Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/8bd715a9d882fe1993bb2aec5eff89fffa946592"
},
{
"url": "https://git.kernel.org/stable/c/0dce240145f47545d2e4b18c6d58033b83e1fd0e"
},
{
"url": "https://git.kernel.org/stable/c/ed4f758f34be4c32e02933ac4fa044589d9c1c16"
},
{
"url": "https://git.kernel.org/stable/c/0c4fbdaca225b97122b61b68c5353caa33a253c3"
},
{
"url": "https://git.kernel.org/stable/c/92f90917413bdd6078fefff6f6c83a07bf870b04"
},
{
"url": "https://git.kernel.org/stable/c/1f97760417b5faa60e9642fd0ed61eb17d0b1b39"
}
],
"title": "ASoC: SOF: ipc3-control: Fix TOCTOU in bytes_put and bytes_get",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-72301",
"datePublished": "2026-08-15T05:55:20.430Z",
"dateReserved": "2026-08-09T03:40:39.918Z",
"dateUpdated": "2026-10-16T18:55:16.018Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-72305 (GCVE-0-2026-72305)
Vulnerability from cvelistv5
Published
2026-08-15 05:55
Modified
2026-08-23 12:47
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
VDUSE: avoid leaking information to userspace
The bounceing is not necessarily page aligned, so current VDUSE can
leak kernel information through mapping bounce pages to
userspace. Allocate bounce pages with __GFP_ZERO to avoid leaking
information to userspace.
References
| URL | Tags | ||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 8c773d53fb7b64267b0f55c1d3517cb8c5e29b3c Version: 8c773d53fb7b64267b0f55c1d3517cb8c5e29b3c Version: 8c773d53fb7b64267b0f55c1d3517cb8c5e29b3c Version: 8c773d53fb7b64267b0f55c1d3517cb8c5e29b3c Version: 8c773d53fb7b64267b0f55c1d3517cb8c5e29b3c Version: 8c773d53fb7b64267b0f55c1d3517cb8c5e29b3c Version: 8c773d53fb7b64267b0f55c1d3517cb8c5e29b3c |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/vdpa/vdpa_user/iova_domain.c",
"drivers/vdpa/vdpa_user/vduse_dev.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "41e27a6aca608c9e04f091c29c420d03fafe0313",
"status": "affected",
"version": "8c773d53fb7b64267b0f55c1d3517cb8c5e29b3c",
"versionType": "git"
},
{
"lessThan": "3ae878f262bd1445c8c31511856a99962a05fe16",
"status": "affected",
"version": "8c773d53fb7b64267b0f55c1d3517cb8c5e29b3c",
"versionType": "git"
},
{
"lessThan": "fde25641cbddd0c084e3320d08f755e7e6acfae5",
"status": "affected",
"version": "8c773d53fb7b64267b0f55c1d3517cb8c5e29b3c",
"versionType": "git"
},
{
"lessThan": "5e88c1bc3a41d9a260dd42bae8ad18fd4f35bbe1",
"status": "affected",
"version": "8c773d53fb7b64267b0f55c1d3517cb8c5e29b3c",
"versionType": "git"
},
{
"lessThan": "690fb82c4122f8c2656fa4f842275132771b68b9",
"status": "affected",
"version": "8c773d53fb7b64267b0f55c1d3517cb8c5e29b3c",
"versionType": "git"
},
{
"lessThan": "00335df9da2011e095f846d645cc2e9fd2907659",
"status": "affected",
"version": "8c773d53fb7b64267b0f55c1d3517cb8c5e29b3c",
"versionType": "git"
},
{
"lessThan": "9c1523803445ee0348f62b77793266dd981596e0",
"status": "affected",
"version": "8c773d53fb7b64267b0f55c1d3517cb8c5e29b3c",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/vdpa/vdpa_user/iova_domain.c",
"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.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.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.184",
"versionStartIncluding": "5.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.148",
"versionStartIncluding": "5.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.101",
"versionStartIncluding": "5.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.42",
"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: avoid leaking information to userspace\n\nThe bounceing is not necessarily page aligned, so current VDUSE can\nleak kernel information through mapping bounce pages to\nuserspace. Allocate bounce pages with __GFP_ZERO to avoid leaking\ninformation to userspace."
}
],
"providerMetadata": {
"dateUpdated": "2026-08-23T12:47:13.473Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/41e27a6aca608c9e04f091c29c420d03fafe0313"
},
{
"url": "https://git.kernel.org/stable/c/3ae878f262bd1445c8c31511856a99962a05fe16"
},
{
"url": "https://git.kernel.org/stable/c/fde25641cbddd0c084e3320d08f755e7e6acfae5"
},
{
"url": "https://git.kernel.org/stable/c/5e88c1bc3a41d9a260dd42bae8ad18fd4f35bbe1"
},
{
"url": "https://git.kernel.org/stable/c/690fb82c4122f8c2656fa4f842275132771b68b9"
},
{
"url": "https://git.kernel.org/stable/c/00335df9da2011e095f846d645cc2e9fd2907659"
},
{
"url": "https://git.kernel.org/stable/c/9c1523803445ee0348f62b77793266dd981596e0"
}
],
"title": "VDUSE: avoid leaking information to userspace",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-72305",
"datePublished": "2026-08-15T05:55:22.914Z",
"dateReserved": "2026-08-09T03:40:39.918Z",
"dateUpdated": "2026-08-23T12:47:13.473Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-93798 (GCVE-0-2026-93798)
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 reloc root cleanup in merge_reloc_roots()
If the root we got has zero root refs in its root item, we are resetting
the root's ->reloc_root without using barriers like we do everywhere else.
Sashiko complained about this while reviewing another patch, and it's
correct (see the Link tag below).
Also, we should not clear BTRFS_ROOT_DEAD_RELOC_TREE from the root unless
the root points to the reloc root we have.
Fix this by using clear_reloc_root(), which issues the memory barrier
after setting the root's ->reloc_root to NULL and before clearing the bit
BTRFS_ROOT_DEAD_RELOC_TREE from the root.
References
| URL | Tags | ||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 1dae7e0e58b484eaa43d530f211098fdeeb0f404 Version: 1dae7e0e58b484eaa43d530f211098fdeeb0f404 Version: 1dae7e0e58b484eaa43d530f211098fdeeb0f404 Version: 1dae7e0e58b484eaa43d530f211098fdeeb0f404 Version: 1dae7e0e58b484eaa43d530f211098fdeeb0f404 Version: 1dae7e0e58b484eaa43d530f211098fdeeb0f404 Version: 1dae7e0e58b484eaa43d530f211098fdeeb0f404 Version: ee08663380ffd5a45a1c87580fbc305e8413c235 Version: 33823378ff2b510fd7b566f25bb18438aeb9b23b Version: 5.4.54 ≤ Version: 5.7.11 ≤ |
||
{
"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": "29531470b1bf1e8bd2df4941fe913106edbca615",
"status": "affected",
"version": "1dae7e0e58b484eaa43d530f211098fdeeb0f404",
"versionType": "git"
},
{
"lessThan": "415f8665a969d3c906e4fd7c90fcbb4b357886f6",
"status": "affected",
"version": "1dae7e0e58b484eaa43d530f211098fdeeb0f404",
"versionType": "git"
},
{
"lessThan": "ee695a968aa73b1e67ccbf2133dc0e54381d32b2",
"status": "affected",
"version": "1dae7e0e58b484eaa43d530f211098fdeeb0f404",
"versionType": "git"
},
{
"lessThan": "0bc25f0a2d1b3e0a691431c4d7aef36afcd527c5",
"status": "affected",
"version": "1dae7e0e58b484eaa43d530f211098fdeeb0f404",
"versionType": "git"
},
{
"lessThan": "ab48583aa9948205ff9a6470e23dbff74c565e24",
"status": "affected",
"version": "1dae7e0e58b484eaa43d530f211098fdeeb0f404",
"versionType": "git"
},
{
"lessThan": "63d6b1f04cd91c825329712aa526215ffa5d11ca",
"status": "affected",
"version": "1dae7e0e58b484eaa43d530f211098fdeeb0f404",
"versionType": "git"
},
{
"lessThan": "b78fe9563e2d5ae47805f1e5dc722c91fd30e1f8",
"status": "affected",
"version": "1dae7e0e58b484eaa43d530f211098fdeeb0f404",
"versionType": "git"
},
{
"status": "affected",
"version": "ee08663380ffd5a45a1c87580fbc305e8413c235",
"versionType": "git"
},
{
"status": "affected",
"version": "33823378ff2b510fd7b566f25bb18438aeb9b23b",
"versionType": "git"
},
{
"lessThan": "5.5",
"status": "affected",
"version": "5.4.54",
"versionType": "semver"
},
{
"lessThan": "5.8",
"status": "affected",
"version": "5.7.11",
"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.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": "*",
"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.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",
"versionStartIncluding": "5.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "5.4.54",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "5.7.11",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nbtrfs: fix reloc root cleanup in merge_reloc_roots()\n\nIf the root we got has zero root refs in its root item, we are resetting\nthe root\u0027s -\u003ereloc_root without using barriers like we do everywhere else.\nSashiko complained about this while reviewing another patch, and it\u0027s\ncorrect (see the Link tag below).\n\nAlso, we should not clear BTRFS_ROOT_DEAD_RELOC_TREE from the root unless\nthe root points to the reloc root we have.\n\nFix this by using clear_reloc_root(), which issues the memory barrier\nafter setting the root\u0027s -\u003ereloc_root to NULL and before clearing the bit\nBTRFS_ROOT_DEAD_RELOC_TREE from the root."
}
],
"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 - merge_reloc_roots() is reached from local VFS activity: unlink/write call btrfs_update_block_group() which btrfs_mark_bg_to_reclaim(); btrfs_reclaim_bgs_work() then runs btrfs_relocate_chunk()-\u003ebtrfs_relocate_block_group()-\u003erelocate_block_group()-\u003eprepare_to_merge()-\u003emerge_reloc_roots(). No network protocol supplies the causing state.\nAC:L - When relocate_block_group() fails (the attacker can force ENOSPC via extra allocations), prepare_to_merge() leaves reloc roots at 0 refs and merge_reloc_roots() NULLs root-\u003ereloc_root then clear_bit(BTRFS_ROOT_DEAD_RELOC_TREE) without smp_wmb(). Concurrent writes invoke btrfs_init_reloc_root()/have_reloc_root() on that same root, so the attacker drives both sides.\nPR:L - BTRFS_IOC_BALANCE requires capable(CAP_SYS_ADMIN), but btrfs_buffered_write() and unlink used to mark a block group reclaimable have no capability gate. btrfs_fs_type lacks FS_USERNS_MOUNT, so the volume is admin-mounted, yet any unprivileged uid with write permission on that mount can induce reclaim into merge_reloc_roots().\nUI:N - The attacker induces the 0-ref merge_reloc_roots() cleanup with their own writes and deletions on a btrfs they can already write, then races have_reloc_root() with further writes or btrfs_ioctl_snap_create(); no second user needs to mount an image or run balance.\nS:U - The use-after-free is of the struct btrfs_root stored in fs_root-\u003ereloc_root inside the same host kernel that mounted the volume; merge_reloc_roots() does not cross a VM, IOMMU, or sandbox authority.\nC:H - Missing smp_wmb() in merge_reloc_roots() lets have_reloc_root() see BTRFS_ROOT_DEAD_RELOC_TREE already clear while still loading the old root-\u003ereloc_root pointer; btrfs_should_ignore_reloc_root() then reads reloc_root-\u003ecommit_root after the matching btrfs_put_root() dropped that reloc root.\nI:H - The same stale reloc_root is written by btrfs_init_reloc_root() via btrfs_set_root_last_trans() and by commit_fs_roots()-\u003ebtrfs_update_reloc_root() which mutates reloc_root-\u003eroot_item, giving a write-after-free of struct btrfs_root.\nA:H - Using the dangling reloc_root after merge_reloc_roots()\u0027s btrfs_put_root() oopses; if clear_bit(BTRFS_ROOT_DEAD_RELOC_TREE) becomes visible while the pointer still refers to the 0-ref tree, btrfs_reloc_pre_snapshot() hits BUG_ON(btrfs_root_refs(\u0026root-\u003eroot_item)==0)."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-03T10:57:32.550Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/29531470b1bf1e8bd2df4941fe913106edbca615"
},
{
"url": "https://git.kernel.org/stable/c/415f8665a969d3c906e4fd7c90fcbb4b357886f6"
},
{
"url": "https://git.kernel.org/stable/c/ee695a968aa73b1e67ccbf2133dc0e54381d32b2"
},
{
"url": "https://git.kernel.org/stable/c/0bc25f0a2d1b3e0a691431c4d7aef36afcd527c5"
},
{
"url": "https://git.kernel.org/stable/c/ab48583aa9948205ff9a6470e23dbff74c565e24"
},
{
"url": "https://git.kernel.org/stable/c/63d6b1f04cd91c825329712aa526215ffa5d11ca"
},
{
"url": "https://git.kernel.org/stable/c/b78fe9563e2d5ae47805f1e5dc722c91fd30e1f8"
}
],
"title": "btrfs: fix reloc root cleanup in merge_reloc_roots()",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-93798",
"datePublished": "2026-09-24T16:02:31.291Z",
"dateReserved": "2026-09-18T17:59:28.789Z",
"dateUpdated": "2026-10-03T10:57:32.550Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-98016 (GCVE-0-2026-98016)
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/mlx5e: Fix use-after-free race in sample_restore_put()
Concurrent teardown of TC sample rules sharing the same restore
context may re-read restore->count after dropping restore_lock.
At that point another thread may already have completed cleanup and
freed the restore object.
Use the result of the refcount decrement while holding restore_lock to
determine whether cleanup is needed.
References
| URL | Tags | ||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 36a3196256bf3310e5e7142b0e61787f7a201abd Version: 36a3196256bf3310e5e7142b0e61787f7a201abd Version: 36a3196256bf3310e5e7142b0e61787f7a201abd Version: 36a3196256bf3310e5e7142b0e61787f7a201abd Version: 36a3196256bf3310e5e7142b0e61787f7a201abd Version: 36a3196256bf3310e5e7142b0e61787f7a201abd Version: 36a3196256bf3310e5e7142b0e61787f7a201abd |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/net/ethernet/mellanox/mlx5/core/en/tc/sample.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "cdf920e44cbbee1900c66f002fb50afee20977d4",
"status": "affected",
"version": "36a3196256bf3310e5e7142b0e61787f7a201abd",
"versionType": "git"
},
{
"lessThan": "308e1cbb0d9712081f90860fe839ccb47bc196ee",
"status": "affected",
"version": "36a3196256bf3310e5e7142b0e61787f7a201abd",
"versionType": "git"
},
{
"lessThan": "8267e46d14e847e80e0aebe366d348e8a484a619",
"status": "affected",
"version": "36a3196256bf3310e5e7142b0e61787f7a201abd",
"versionType": "git"
},
{
"lessThan": "3efd1a1938cbb33c53b0d75e55b6c0fe2ebad79a",
"status": "affected",
"version": "36a3196256bf3310e5e7142b0e61787f7a201abd",
"versionType": "git"
},
{
"lessThan": "72324da8eeca269db9196c2a555abf72eb0385c5",
"status": "affected",
"version": "36a3196256bf3310e5e7142b0e61787f7a201abd",
"versionType": "git"
},
{
"lessThan": "1daecd76ab9e5f055fe3970462410ad1d40bd177",
"status": "affected",
"version": "36a3196256bf3310e5e7142b0e61787f7a201abd",
"versionType": "git"
},
{
"lessThan": "af3aef0245abbab5e9f6302e7a7d6407187afb71",
"status": "affected",
"version": "36a3196256bf3310e5e7142b0e61787f7a201abd",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/net/ethernet/mellanox/mlx5/core/en/tc/sample.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.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.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.7",
"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\nnet/mlx5e: Fix use-after-free race in sample_restore_put()\n\nConcurrent teardown of TC sample rules sharing the same restore\ncontext may re-read restore-\u003ecount after dropping restore_lock.\nAt that point another thread may already have completed cleanup and\nfreed the restore object.\n\nUse the result of the refcount decrement while holding restore_lock to\ndetermine whether cleanup is needed."
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T09:12:21.604Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/cdf920e44cbbee1900c66f002fb50afee20977d4"
},
{
"url": "https://git.kernel.org/stable/c/308e1cbb0d9712081f90860fe839ccb47bc196ee"
},
{
"url": "https://git.kernel.org/stable/c/8267e46d14e847e80e0aebe366d348e8a484a619"
},
{
"url": "https://git.kernel.org/stable/c/3efd1a1938cbb33c53b0d75e55b6c0fe2ebad79a"
},
{
"url": "https://git.kernel.org/stable/c/72324da8eeca269db9196c2a555abf72eb0385c5"
},
{
"url": "https://git.kernel.org/stable/c/1daecd76ab9e5f055fe3970462410ad1d40bd177"
},
{
"url": "https://git.kernel.org/stable/c/af3aef0245abbab5e9f6302e7a7d6407187afb71"
}
],
"title": "net/mlx5e: Fix use-after-free race in sample_restore_put()",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-98016",
"datePublished": "2026-09-25T10:23:38.316Z",
"dateReserved": "2026-09-25T10:19:56.069Z",
"dateUpdated": "2026-10-19T09:12:21.604Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-99999 (GCVE-0-2026-99999)
Vulnerability from cvelistv5
Published
2026-10-15 12:19
Modified
2026-10-24 14:17
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
ipv4: validate checksum_start before completing checksum
If a packet with bad checksum metadata gets into the ipv4 stack,
skb_checksum_help can corrupt the network header and cause a bunch of
mischief.
This was discovered and reported by Paulos, and has been reporoduced
by others independently since.
We really shouldn't allow such packets in, but as a defence
in depth measure, let's also check before we complete the checksum.
A more complete validation at input is forthcoming, but needs more work.
References
| URL | Tags | |||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: f43798c27684ab925adde7d8acc34c78c6e50df8 Version: f43798c27684ab925adde7d8acc34c78c6e50df8 Version: f43798c27684ab925adde7d8acc34c78c6e50df8 Version: f43798c27684ab925adde7d8acc34c78c6e50df8 Version: f43798c27684ab925adde7d8acc34c78c6e50df8 Version: f43798c27684ab925adde7d8acc34c78c6e50df8 Version: f43798c27684ab925adde7d8acc34c78c6e50df8 Version: f43798c27684ab925adde7d8acc34c78c6e50df8 |
||
{
"containers": {
"adp": [
{
"providerMetadata": {
"dateUpdated": "2026-10-15T22:07:24.590Z",
"orgId": "af854a3a-2127-422b-91ae-364da2661108",
"shortName": "CVE"
},
"references": [
{
"url": "http://www.openwall.com/lists/oss-security/2026/10/15/5"
}
],
"title": "CVE Program Container"
},
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-99999",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T15:49:03.519458Z",
"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:19:28.844Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"include/net/ip.h",
"net/bridge/netfilter/nf_conntrack_bridge.c",
"net/ipv4/ip_output.c",
"net/netfilter/nfnetlink_queue.c",
"net/netfilter/xt_CHECKSUM.c",
"net/xfrm/xfrm_output.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "a464d950f31c89565cbaae038cc60db04fe01956",
"status": "affected",
"version": "f43798c27684ab925adde7d8acc34c78c6e50df8",
"versionType": "git"
},
{
"lessThan": "0fab003ef4698e0628060a45a48f14b43ba2a40a",
"status": "affected",
"version": "f43798c27684ab925adde7d8acc34c78c6e50df8",
"versionType": "git"
},
{
"lessThan": "94524b7b32691de2e2ce162c04d6cbc9106e5cbf",
"status": "affected",
"version": "f43798c27684ab925adde7d8acc34c78c6e50df8",
"versionType": "git"
},
{
"lessThan": "a65f69e0f38ffbed1b128029e09097436416dc8b",
"status": "affected",
"version": "f43798c27684ab925adde7d8acc34c78c6e50df8",
"versionType": "git"
},
{
"lessThan": "32a8b0adaa18e52aaa0b246b5ffe683075354dbb",
"status": "affected",
"version": "f43798c27684ab925adde7d8acc34c78c6e50df8",
"versionType": "git"
},
{
"lessThan": "f3e835af6226f1dd12160cbd696081e9b6155de0",
"status": "affected",
"version": "f43798c27684ab925adde7d8acc34c78c6e50df8",
"versionType": "git"
},
{
"lessThan": "c3e33464746166264334641dc850a36eef7e6326",
"status": "affected",
"version": "f43798c27684ab925adde7d8acc34c78c6e50df8",
"versionType": "git"
},
{
"lessThan": "6785011f8b16abf40b1e9d8b2e332232b3e68822",
"status": "affected",
"version": "f43798c27684ab925adde7d8acc34c78c6e50df8",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"include/net/ip.h",
"net/bridge/netfilter/nf_conntrack_bridge.c",
"net/ipv4/ip_output.c",
"net/netfilter/nfnetlink_queue.c",
"net/netfilter/xt_CHECKSUM.c",
"net/xfrm/xfrm_output.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.272",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.223",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.190",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.159",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.113",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.57",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.11",
"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.272",
"versionStartIncluding": "2.6.27",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.223",
"versionStartIncluding": "2.6.27",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.190",
"versionStartIncluding": "2.6.27",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.159",
"versionStartIncluding": "2.6.27",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.113",
"versionStartIncluding": "2.6.27",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.57",
"versionStartIncluding": "2.6.27",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.11",
"versionStartIncluding": "2.6.27",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"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\nipv4: validate checksum_start before completing checksum\n\nIf a packet with bad checksum metadata gets into the ipv4 stack,\nskb_checksum_help can corrupt the network header and cause a bunch of\nmischief.\n\nThis was discovered and reported by Paulos, and has been reporoduced\nby others independently since.\n\nWe really shouldn\u0027t allow such packets in, but as a defence\nin depth measure, let\u0027s also check before we complete the checksum.\n\nA more complete validation at input is forthcoming, but needs more work."
}
],
"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 microVM supplies crafted virtio-net checksum metadata with its outbound frame. The VMM writes it to the host TAP, where tun_get_user() feeds the skb to the IPv4 stack and ip_do_fragment() calls skb_checksum_help(); this is a guest/local virtual-device path, not an Internet receive path.\nAC:L - The guest controls the frame, checksum start and offset, and packet size and can repeat the same fragmentation sequence. No race, timing window, or uncontrollable memory layout is needed; host leak, crash, and code-execution variants were reproduced with crafted packets.\nPR:N - In the microVM scenario, a tenant workload able to transmit through its assigned virtio-net interface can supply the triggering traffic. It needs no host credentials, capability, or access to /dev/net/tun; the privileged VMM merely forwards guest output to its existing TAP fd.\nUI:N - The attacker sends the crafted guest packets directly, and host TAP/IPv4 processing invokes checksum completion automatically. No host administrator or other victim must act.\nS:C - The checksum metadata originates in an untrusted microVM, but skb_checksum_help() and ip_do_fragment() process and corrupt state in the host kernel. The demonstrated leak, crash, and administrator code execution cross the guest-to-host isolation boundary.\nC:H - After skb_checksum_help() changes an already-validated IPv4 IHL, ip_do_fragment() trusts the new length and ip_frag_next() copies beyond the skb\u0027s logical linear head into transmitted IPv4 options. This was demonstrated as continuous host-memory disclosure in guest-emitted packets.\nI:H - skb_checksum_help() writes at the attacker-controlled checksum position inside an IPv4 header after routing and validation, and downstream code trusts the modified fields. Crafted guest packets using this flaw were demonstrated to execute commands with full administrator privileges on the host.\nA:H - Malformed checksum offsets reach skb_checksum_help() from IPv4 fragmentation and can trip WARN_ONCE/panic paths or poison the header geometry used downstream. Crafted guest packets were demonstrated to crash the physical host, taking down all sandboxes on it."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-24T14:17:15.740Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/a464d950f31c89565cbaae038cc60db04fe01956"
},
{
"url": "https://git.kernel.org/stable/c/0fab003ef4698e0628060a45a48f14b43ba2a40a"
},
{
"url": "https://git.kernel.org/stable/c/94524b7b32691de2e2ce162c04d6cbc9106e5cbf"
},
{
"url": "https://git.kernel.org/stable/c/a65f69e0f38ffbed1b128029e09097436416dc8b"
},
{
"url": "https://git.kernel.org/stable/c/32a8b0adaa18e52aaa0b246b5ffe683075354dbb"
},
{
"url": "https://git.kernel.org/stable/c/f3e835af6226f1dd12160cbd696081e9b6155de0"
},
{
"url": "https://git.kernel.org/stable/c/c3e33464746166264334641dc850a36eef7e6326"
},
{
"url": "https://git.kernel.org/stable/c/6785011f8b16abf40b1e9d8b2e332232b3e68822"
},
{
"url": "https://pwn.ai/blog/pwnescape"
},
{
"url": "https://vercel.com/blog/findings-from-the-1-million-dollar-vercel-sandbox-challenge"
}
],
"title": "ipv4: validate checksum_start before completing checksum",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-99999",
"datePublished": "2026-10-15T12:19:22.784Z",
"dateReserved": "2026-09-25T10:25:14.451Z",
"dateUpdated": "2026-10-24T14:17:15.740Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-98323 (GCVE-0-2026-98323)
Vulnerability from cvelistv5
Published
2026-10-06 08:46
Modified
2026-10-19 09:17
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
RDMA/siw: Bound fragmented header copies by the remaining length
siw_get_hdr() can receive an extended DDP/RDMAP header across more than
one TCP callback. The first callback may receive most of the header,
while the next one still limits the copy to hdrlen - MIN_DDP_HDR instead
of the number of missing bytes. This makes the destination move past the
end of the header and overwrite the receive state, including
fpdu_part_rcvd. A later callback can then use a negative fpdu_part_rcvd
value as a copy offset, which creates an OOB write.
Use the number of header bytes already received when calculating the
next copy length.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: e3917c85f41ef1df64e27dc0e46ab0d803c5e73e Version: 308cd50f174c95a507527037f4de1a0396aa4325 Version: 754209850df8367c954ac1de7671c7430b1f342c Version: 754209850df8367c954ac1de7671c7430b1f342c Version: 754209850df8367c954ac1de7671c7430b1f342c Version: 754209850df8367c954ac1de7671c7430b1f342c Version: 754209850df8367c954ac1de7671c7430b1f342c Version: 754209850df8367c954ac1de7671c7430b1f342c Version: e09caa38e10bcf027100cc22b0e3cc745a39ef0a Version: 0c14f795a9eab9344230f9933798b8ee496f497d Version: 7fada7c6962219b6fc4ff4e62e46a936af110dd9 Version: 5.10.150 ≤ Version: 5.15.75 ≤ Version: 5.4.220 ≤ Version: 5.19.17 ≤ Version: 6.0.3 ≤ |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/infiniband/sw/siw/siw_qp_rx.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "2c6fbcf4bfac0b2b186acc8d91154c0fa24468a7",
"status": "affected",
"version": "e3917c85f41ef1df64e27dc0e46ab0d803c5e73e",
"versionType": "git"
},
{
"lessThan": "af9f5b474a260ad23ffb9793d716a5e3bbce3b48",
"status": "affected",
"version": "308cd50f174c95a507527037f4de1a0396aa4325",
"versionType": "git"
},
{
"lessThan": "262dcd809723723ed8a4e05437ec7e9c21a8f17e",
"status": "affected",
"version": "754209850df8367c954ac1de7671c7430b1f342c",
"versionType": "git"
},
{
"lessThan": "eb4d7a946970469b3ab0c762432bf161d5b0836c",
"status": "affected",
"version": "754209850df8367c954ac1de7671c7430b1f342c",
"versionType": "git"
},
{
"lessThan": "8628f8ebf41669302513fb3f0bf0eba38b226742",
"status": "affected",
"version": "754209850df8367c954ac1de7671c7430b1f342c",
"versionType": "git"
},
{
"lessThan": "b72dcfb9bf1f0f0147cda03dc59e4002a315067f",
"status": "affected",
"version": "754209850df8367c954ac1de7671c7430b1f342c",
"versionType": "git"
},
{
"lessThan": "e6bdfdf3bcb02d0d626a45e8c98b7e63d2fddf9d",
"status": "affected",
"version": "754209850df8367c954ac1de7671c7430b1f342c",
"versionType": "git"
},
{
"lessThan": "9ff797e516dbc1ecb73701ec4c24055712d44411",
"status": "affected",
"version": "754209850df8367c954ac1de7671c7430b1f342c",
"versionType": "git"
},
{
"status": "affected",
"version": "e09caa38e10bcf027100cc22b0e3cc745a39ef0a",
"versionType": "git"
},
{
"status": "affected",
"version": "0c14f795a9eab9344230f9933798b8ee496f497d",
"versionType": "git"
},
{
"status": "affected",
"version": "7fada7c6962219b6fc4ff4e62e46a936af110dd9",
"versionType": "git"
},
{
"lessThan": "5.10.271",
"status": "affected",
"version": "5.10.150",
"versionType": "semver"
},
{
"lessThan": "5.15.222",
"status": "affected",
"version": "5.15.75",
"versionType": "semver"
},
{
"lessThan": "5.5",
"status": "affected",
"version": "5.4.220",
"versionType": "semver"
},
{
"lessThan": "5.20",
"status": "affected",
"version": "5.19.17",
"versionType": "semver"
},
{
"lessThan": "6.1",
"status": "affected",
"version": "6.0.3",
"versionType": "semver"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/infiniband/sw/siw/siw_qp_rx.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": "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.112",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.54",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.8",
"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.150",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.222",
"versionStartIncluding": "5.15.75",
"vulnerable": true
},
{
"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.112",
"versionStartIncluding": "6.1",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.54",
"versionStartIncluding": "6.1",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.8",
"versionStartIncluding": "6.1",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "6.1",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "5.4.220",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "5.19.17",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "6.0.3",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nRDMA/siw: Bound fragmented header copies by the remaining length\n\nsiw_get_hdr() can receive an extended DDP/RDMAP header across more than\none TCP callback. The first callback may receive most of the header,\nwhile the next one still limits the copy to hdrlen - MIN_DDP_HDR instead\nof the number of missing bytes. This makes the destination move past the\nend of the header and overwrite the receive state, including\nfpdu_part_rcvd. A later callback can then use a negative fpdu_part_rcvd\nvalue as a copy offset, which creates an OOB write.\n\nUse the number of header bytes already received when calculating the\nnext copy 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 - The malformed input is the remote iWARP peer\u0027s own MPA/DDP/RDMAP header bytes on the siw TCP connection. The peer splits an extended header (e.g. RDMA Read Request, 44 bytes) across TCP segments, and siw_qp_llp_data_ready() -\u003e tcp_read_sock() -\u003e siw_tcp_rx_data() -\u003e siw_get_hdr() parses them. The transport is routable TCP.\nAC:L - The peer fully controls TCP segmentation, so it can deterministically end a segment with fpdu_part_rcvd between 16 and hdrlen. The next segment then copies hdrlen-16 bytes at that offset. No race or state outside the attacker\u0027s control is involved beyond siw serving an iWARP listener.\nPR:N - Once the MPA exchange puts the QP in RTS, siw_get_hdr() parses every incoming FPDU header, and neither MPA nor DDP authenticates the peer. ULP authorisation (such as an nvmet-rdma host NQN check) only arrives in messages parsed by this same path, so the overflow fires before any credential check.\nUI:N - No victim action is needed. The attacker connects to the iWARP service and sends crafted fragmented FPDUs, and siw processes them in its sk_data_ready callback.\nS:U - The corruption is confined to kernel memory of the host running siw (struct siw_qp and its neighbours). That is the same security authority as the vulnerable component, with no VM or IOMMU boundary crossed.\nC:H - The overflow writes peer bytes over siw_rx_stream fields after hdr, including fpdu_part_rcvd. A negative fpdu_part_rcvd then makes skb_copy_bits() write to c_hdr plus an attacker-chosen offset. A controlled kernel write like this can be turned into arbitrary kernel memory disclosure.\nI:H - siw_get_hdr() copies up to hdrlen-17 attacker bytes past srx-\u003ehdr (27 for rreq), overwriting the receive state. The next callback uses the corrupted negative fpdu_part_rcvd as the destination offset of skb_copy_bits(), giving an out-of-bounds kernel write whose offset and data are attacker-controlled.\nA:H - Corrupting fpdu_part_rcvd/fpdu_part_rem and writing out of bounds from siw_qp crashes or panics the kernel. A remote peer can repeat this on every connection."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T09:17:33.779Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/2c6fbcf4bfac0b2b186acc8d91154c0fa24468a7"
},
{
"url": "https://git.kernel.org/stable/c/af9f5b474a260ad23ffb9793d716a5e3bbce3b48"
},
{
"url": "https://git.kernel.org/stable/c/262dcd809723723ed8a4e05437ec7e9c21a8f17e"
},
{
"url": "https://git.kernel.org/stable/c/eb4d7a946970469b3ab0c762432bf161d5b0836c"
},
{
"url": "https://git.kernel.org/stable/c/8628f8ebf41669302513fb3f0bf0eba38b226742"
},
{
"url": "https://git.kernel.org/stable/c/b72dcfb9bf1f0f0147cda03dc59e4002a315067f"
},
{
"url": "https://git.kernel.org/stable/c/e6bdfdf3bcb02d0d626a45e8c98b7e63d2fddf9d"
},
{
"url": "https://git.kernel.org/stable/c/9ff797e516dbc1ecb73701ec4c24055712d44411"
}
],
"title": "RDMA/siw: Bound fragmented header copies by the remaining length",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-98323",
"datePublished": "2026-10-06T08:46:17.150Z",
"dateReserved": "2026-09-25T10:25:14.340Z",
"dateUpdated": "2026-10-19T09:17:33.779Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-63948 (GCVE-0-2026-63948)
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:
Bluetooth: L2CAP: fix chan ref leak in l2cap_chan_timeout() on !conn
__set_chan_timer() takes a l2cap_chan reference via l2cap_chan_hold()
before scheduling the delayed work. The normal path in
l2cap_chan_timeout() drops this reference with l2cap_chan_put() at the
end, but the early return when chan->conn is NULL skips the put,
leaking the reference.
Add the missing l2cap_chan_put() before the early return.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 06acb75e7ed600d0bbf7bff5628aa8f24a97978c Version: e97e16433eb4533083b096a3824b93a5ca3aee79 Version: 8960ff650aec70485b40771cd8e6e8c4cb467d33 Version: 955b5b6c54d95b5e7444dfc81c95c8e013f27ac0 Version: adf0398cee86643b8eacde95f17d073d022f782c Version: adf0398cee86643b8eacde95f17d073d022f782c Version: adf0398cee86643b8eacde95f17d073d022f782c Version: adf0398cee86643b8eacde95f17d073d022f782c Version: e137e2ba96e51902dc2878131823a96bf8e638ae Version: 6466ee65e5b27161c846c73ef407f49dfa1bd1d9 Version: eb86f955488c39526534211f2610e48a5cf8ead4 Version: 5.10.217 ≤ Version: 5.15.159 ≤ Version: 6.1.91 ≤ Version: 6.6.31 ≤ Version: 4.19.314 ≤ Version: 5.4.276 ≤ Version: 6.8.10 ≤ |
||
{
"containers": {
"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": "50f1bcaaaa3a80bb1c3472044bc146e8d49d51ee",
"status": "affected",
"version": "06acb75e7ed600d0bbf7bff5628aa8f24a97978c",
"versionType": "git"
},
{
"lessThan": "b5c59a5b469e2a809a2d57eda4ded94235971060",
"status": "affected",
"version": "e97e16433eb4533083b096a3824b93a5ca3aee79",
"versionType": "git"
},
{
"lessThan": "8894c2010435a56ce7c6c2a8785860c13554df2f",
"status": "affected",
"version": "8960ff650aec70485b40771cd8e6e8c4cb467d33",
"versionType": "git"
},
{
"lessThan": "63cd225cc13d782a85e2a73c04d0d350153eada1",
"status": "affected",
"version": "955b5b6c54d95b5e7444dfc81c95c8e013f27ac0",
"versionType": "git"
},
{
"lessThan": "107c826e4ef9ec5ad8f60e6fe64d8d5325ba508f",
"status": "affected",
"version": "adf0398cee86643b8eacde95f17d073d022f782c",
"versionType": "git"
},
{
"lessThan": "e8a5baff5be273ca07771fd2b9bb1f2a4152917b",
"status": "affected",
"version": "adf0398cee86643b8eacde95f17d073d022f782c",
"versionType": "git"
},
{
"lessThan": "08d81fe96f80a8e20c7acb573b6a45d901fcf2cd",
"status": "affected",
"version": "adf0398cee86643b8eacde95f17d073d022f782c",
"versionType": "git"
},
{
"lessThan": "9dbd84990394c51f5cee1e8871bb5ff8af5ed939",
"status": "affected",
"version": "adf0398cee86643b8eacde95f17d073d022f782c",
"versionType": "git"
},
{
"status": "affected",
"version": "e137e2ba96e51902dc2878131823a96bf8e638ae",
"versionType": "git"
},
{
"status": "affected",
"version": "6466ee65e5b27161c846c73ef407f49dfa1bd1d9",
"versionType": "git"
},
{
"status": "affected",
"version": "eb86f955488c39526534211f2610e48a5cf8ead4",
"versionType": "git"
},
{
"lessThan": "5.10.259",
"status": "affected",
"version": "5.10.217",
"versionType": "semver"
},
{
"lessThan": "5.15.210",
"status": "affected",
"version": "5.15.159",
"versionType": "semver"
},
{
"lessThan": "6.1.176",
"status": "affected",
"version": "6.1.91",
"versionType": "semver"
},
{
"lessThan": "6.6.143",
"status": "affected",
"version": "6.6.31",
"versionType": "semver"
},
{
"lessThan": "4.20",
"status": "affected",
"version": "4.19.314",
"versionType": "semver"
},
{
"lessThan": "5.5",
"status": "affected",
"version": "5.4.276",
"versionType": "semver"
},
{
"lessThan": "6.9",
"status": "affected",
"version": "6.8.10",
"versionType": "semver"
}
]
},
{
"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": "6.9"
},
{
"lessThan": "6.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.10.217",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.210",
"versionStartIncluding": "5.15.159",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.176",
"versionStartIncluding": "6.1.91",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.143",
"versionStartIncluding": "6.6.31",
"vulnerable": true
},
{
"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
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "4.19.314",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "5.4.276",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "6.8.10",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nBluetooth: L2CAP: fix chan ref leak in l2cap_chan_timeout() on !conn\n\n__set_chan_timer() takes a l2cap_chan reference via l2cap_chan_hold()\nbefore scheduling the delayed work. The normal path in\nl2cap_chan_timeout() drops this reference with l2cap_chan_put() at the\nend, but the early return when chan-\u003econn is NULL skips the put,\nleaking the reference.\n\nAdd the missing l2cap_chan_put() before the early return."
}
],
"providerMetadata": {
"dateUpdated": "2026-07-19T14:55:41.985Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/50f1bcaaaa3a80bb1c3472044bc146e8d49d51ee"
},
{
"url": "https://git.kernel.org/stable/c/b5c59a5b469e2a809a2d57eda4ded94235971060"
},
{
"url": "https://git.kernel.org/stable/c/8894c2010435a56ce7c6c2a8785860c13554df2f"
},
{
"url": "https://git.kernel.org/stable/c/63cd225cc13d782a85e2a73c04d0d350153eada1"
},
{
"url": "https://git.kernel.org/stable/c/107c826e4ef9ec5ad8f60e6fe64d8d5325ba508f"
},
{
"url": "https://git.kernel.org/stable/c/e8a5baff5be273ca07771fd2b9bb1f2a4152917b"
},
{
"url": "https://git.kernel.org/stable/c/08d81fe96f80a8e20c7acb573b6a45d901fcf2cd"
},
{
"url": "https://git.kernel.org/stable/c/9dbd84990394c51f5cee1e8871bb5ff8af5ed939"
}
],
"title": "Bluetooth: L2CAP: fix chan ref leak in l2cap_chan_timeout() on !conn",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-63948",
"datePublished": "2026-07-19T14:55:41.985Z",
"dateReserved": "2026-07-19T07:54:57.023Z",
"dateUpdated": "2026-07-19T14:55:41.985Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-98126 (GCVE-0-2026-98126)
Vulnerability from cvelistv5
Published
2026-09-25 10:36
Modified
2026-10-21 12:54
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
smb/client: validate new EOF for zero range
When FALLOC_FL_ZERO_RANGE is used without FALLOC_FL_KEEP_SIZE,
smb3_zero_range() may extend EOF without checking RLIMIT_FSIZE, allowing
the file to grow beyond the caller's file-size limit.
Fix this by calling inode_newsize_ok() before sending the zero-range
request when the operation would extend EOF.
Reproducer, using a file on a CIFS mount:
bash -c '
FILE=/mnt/cifs/repro
trap "" SIGXFSZ
ulimit -f 3072
truncate -s 2M "$FILE"
fallocate --zero-range -o 0 -l 4M "$FILE"
echo "fallocate rc=$?"
stat -c "file size=%s" "$FILE"
'
Before this change, the operation succeeds despite the 3 MiB limit:
fallocate rc=0
file size=4194304
After this change, fallocate fails and leaves the file at 2 MiB.
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": "5fbd8848f2e25c8163896ec52863df2305a3bb63",
"status": "affected",
"version": "72c419d9b073628d3b5b0b2fc787b724f1a8c726",
"versionType": "git"
},
{
"lessThan": "3673f057b64abfa957e8ae84448db69369a5091a",
"status": "affected",
"version": "72c419d9b073628d3b5b0b2fc787b724f1a8c726",
"versionType": "git"
},
{
"lessThan": "06a4f9049cb6dc319bceec2dc813ba89add8b828",
"status": "affected",
"version": "72c419d9b073628d3b5b0b2fc787b724f1a8c726",
"versionType": "git"
},
{
"lessThan": "f320ca20c273a26cd779bdb2b2e4b076a95c76f6",
"status": "affected",
"version": "72c419d9b073628d3b5b0b2fc787b724f1a8c726",
"versionType": "git"
},
{
"lessThan": "88972e35750792e717af287dc71f42a03b5cbce4",
"status": "affected",
"version": "72c419d9b073628d3b5b0b2fc787b724f1a8c726",
"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": "5.1"
},
{
"lessThan": "5.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": "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.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
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nsmb/client: validate new EOF for zero range\n\nWhen FALLOC_FL_ZERO_RANGE is used without FALLOC_FL_KEEP_SIZE,\nsmb3_zero_range() may extend EOF without checking RLIMIT_FSIZE, allowing\nthe file to grow beyond the caller\u0027s file-size limit.\n\nFix this by calling inode_newsize_ok() before sending the zero-range\nrequest when the operation would extend EOF.\n\nReproducer, using a file on a CIFS mount:\n\n\tbash -c \u0027\n\t FILE=/mnt/cifs/repro\n\n\t trap \"\" SIGXFSZ\n\t ulimit -f 3072\n\n\t truncate -s 2M \"$FILE\"\n\t fallocate --zero-range -o 0 -l 4M \"$FILE\"\n\t echo \"fallocate rc=$?\"\n\t stat -c \"file size=%s\" \"$FILE\"\n\t\u0027\n\nBefore this change, the operation succeeds despite the 3 MiB limit:\n\n\tfallocate rc=0\n\tfile size=4194304\n\nAfter this change, fallocate fails and leaves the file at 2 MiB."
}
],
"providerMetadata": {
"dateUpdated": "2026-10-21T12:54:37.445Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/5fbd8848f2e25c8163896ec52863df2305a3bb63"
},
{
"url": "https://git.kernel.org/stable/c/3673f057b64abfa957e8ae84448db69369a5091a"
},
{
"url": "https://git.kernel.org/stable/c/06a4f9049cb6dc319bceec2dc813ba89add8b828"
},
{
"url": "https://git.kernel.org/stable/c/f320ca20c273a26cd779bdb2b2e4b076a95c76f6"
},
{
"url": "https://git.kernel.org/stable/c/88972e35750792e717af287dc71f42a03b5cbce4"
}
],
"title": "smb/client: validate new EOF for zero range",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-98126",
"datePublished": "2026-09-25T10:36:07.797Z",
"dateReserved": "2026-09-25T10:25:14.318Z",
"dateUpdated": "2026-10-21T12:54:37.445Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-72253 (GCVE-0-2026-72253)
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_conntrack_sip: validate skb_dst() before accessing it
tc ingress and openvswitch do not guarantee routing information to be
available. These subsystems use the conntrack helper infrastructure, and
the SIP helper relies on the skb_dst() to be present if
sip_external_media is set to 1 (which is disabled by default as a module
parameter).
This effectively disables the sip_external_media toggle for these
subsystems without resulting in a crash.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: cae3a2627520c3795b54533c5328b77af3405dbe Version: cae3a2627520c3795b54533c5328b77af3405dbe Version: cae3a2627520c3795b54533c5328b77af3405dbe Version: cae3a2627520c3795b54533c5328b77af3405dbe Version: cae3a2627520c3795b54533c5328b77af3405dbe Version: cae3a2627520c3795b54533c5328b77af3405dbe Version: cae3a2627520c3795b54533c5328b77af3405dbe Version: cae3a2627520c3795b54533c5328b77af3405dbe |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-72253",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "yes"
},
{
"Technical Impact": "partial"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T18:45:17.838636Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T18:55:13.536Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/netfilter/nf_conntrack_sip.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "7866116a040b3a23fb094e7d8f7ea3d61b3ac70b",
"status": "affected",
"version": "cae3a2627520c3795b54533c5328b77af3405dbe",
"versionType": "git"
},
{
"lessThan": "c5ef7228be04518d95591fc5369a9c554b19756d",
"status": "affected",
"version": "cae3a2627520c3795b54533c5328b77af3405dbe",
"versionType": "git"
},
{
"lessThan": "0aec339694a56e263d4b22475ff7211d40900830",
"status": "affected",
"version": "cae3a2627520c3795b54533c5328b77af3405dbe",
"versionType": "git"
},
{
"lessThan": "e64a48c50a1ff565a98c6a98d82b5b942868e76e",
"status": "affected",
"version": "cae3a2627520c3795b54533c5328b77af3405dbe",
"versionType": "git"
},
{
"lessThan": "c199ed687c00841daf60e9d131976958583a8c09",
"status": "affected",
"version": "cae3a2627520c3795b54533c5328b77af3405dbe",
"versionType": "git"
},
{
"lessThan": "09755dc62b026076b1d47f83489eb0547c8135e0",
"status": "affected",
"version": "cae3a2627520c3795b54533c5328b77af3405dbe",
"versionType": "git"
},
{
"lessThan": "b843a96252f672332837ea2ecb7c8db0acf68e20",
"status": "affected",
"version": "cae3a2627520c3795b54533c5328b77af3405dbe",
"versionType": "git"
},
{
"lessThan": "e5e24a365a5e024efef63cc49abb345fbd4852c5",
"status": "affected",
"version": "cae3a2627520c3795b54533c5328b77af3405dbe",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/netfilter/nf_conntrack_sip.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.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.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.5",
"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\nnetfilter: nf_conntrack_sip: validate skb_dst() before accessing it\n\ntc ingress and openvswitch do not guarantee routing information to be\navailable. These subsystems use the conntrack helper infrastructure, and\nthe SIP helper relies on the skb_dst() to be present if\nsip_external_media is set to 1 (which is disabled by default as a module\nparameter).\n\nThis effectively disables the sip_external_media toggle for these\nsubsystems without resulting in a crash."
}
],
"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 set_expected_rtp_rtcp() by sending crafted SIP/SDP (e.g., INVITE) through Open vSwitch or tc ingress ct(helper=sip) on internet-facing VoIP SBC/NFV gateways where packets are conntrack-processed before skb_dst routing metadata is attached.\nAC:L - Once sip_external_media=1, sip_direct_media=0, and the SIP helper are configured on OVS/tc ingress, the attacker fully controls SIP/SDP contents to reach the skb_dst(skb)-\u003edev dereference without races or conditions outside their control.\nPR:N - Exploitation requires no privileges on the victim host; a remote SIP peer only needs to deliver malicious signaling to an already-configured OVS/tc SIP ALG with sip_external_media enabled, with no authentication or local access.\nUI:N - No victim user interaction is required; the kernel SIP helper parses attacker-supplied SIP/SDP during conntrack processing in softirq without any user action beyond normal automated packet handling.\nS:U - A NULL pointer dereference in nf_conntrack_sip causes a kernel oops/panic within the same kernel security domain on the gateway; it does not cross VM, IOMMU, or sandbox boundaries.\nC:N - The failure is a direct NULL pointer dereference from skb_dst(skb) being NULL on tc/OVS ingress paths; there is no use-after-free, out-of-bounds read, or other memory disclosure primitive.\nI:N - Accessing skb_dst(skb)-\u003edev when skb_dst is NULL cannot modify memory or hijack control flow beyond the immediate fault; CVSS guidance assigns None for pure NULL-deref crashes without write capability.\nA:H - The invalid skb_dst dereference in set_expected_rtp_rtcp() during SIP SDP processing causes a kernel oops/panic-class fault, denying availability on the VoIP gateway until reboot; the crash is reliably reproducible with crafted SIP traffic."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-23T12:47:08.038Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/7866116a040b3a23fb094e7d8f7ea3d61b3ac70b"
},
{
"url": "https://git.kernel.org/stable/c/c5ef7228be04518d95591fc5369a9c554b19756d"
},
{
"url": "https://git.kernel.org/stable/c/0aec339694a56e263d4b22475ff7211d40900830"
},
{
"url": "https://git.kernel.org/stable/c/e64a48c50a1ff565a98c6a98d82b5b942868e76e"
},
{
"url": "https://git.kernel.org/stable/c/c199ed687c00841daf60e9d131976958583a8c09"
},
{
"url": "https://git.kernel.org/stable/c/09755dc62b026076b1d47f83489eb0547c8135e0"
},
{
"url": "https://git.kernel.org/stable/c/b843a96252f672332837ea2ecb7c8db0acf68e20"
},
{
"url": "https://git.kernel.org/stable/c/e5e24a365a5e024efef63cc49abb345fbd4852c5"
}
],
"title": "netfilter: nf_conntrack_sip: validate skb_dst() before accessing it",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-72253",
"datePublished": "2026-08-15T05:54:41.490Z",
"dateReserved": "2026-08-09T03:40:39.915Z",
"dateUpdated": "2026-10-16T18:55:13.536Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-93806 (GCVE-0-2026-93806)
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:
wifi: cfg80211: validate assoc response length before status and IE access
cfg80211_rx_assoc_resp() initialises the status and response-IE fields
of cfg80211_connect_resp_params from the management frame before
proving that the frame is long enough for those offsets. S1G and
regular association responses also have different IE offsets, but the
S1G path only patched resp_ie after the unsafe initialiser had already
run.
Defer resp_ie, resp_ie_len, and status to after the link-iteration
loop. Use a bool to remember whether the frame is S1G, then validate
the appropriate minimum length and set all three fields in a single
if/else block. Funnel short-frame and SME-reject cleanup through a
shared free_bss label for the abandon paths.
References
| URL | Tags | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/wireless/mlme.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "3bcaaaa4ad334053ceea2ea2f0623f22afe2e1ac",
"status": "affected",
"version": "6829c878ecd24ff0ae41b4668c7e9d0f11b66942",
"versionType": "git"
},
{
"lessThan": "71be658246c903b9e96976a23c23800675896a1b",
"status": "affected",
"version": "6829c878ecd24ff0ae41b4668c7e9d0f11b66942",
"versionType": "git"
},
{
"lessThan": "a57310600c1e2b9ada0f37c96e8f48aef47d3093",
"status": "affected",
"version": "6829c878ecd24ff0ae41b4668c7e9d0f11b66942",
"versionType": "git"
},
{
"lessThan": "78ac450ad4624d6b2999cb4eeb28916767f81247",
"status": "affected",
"version": "6829c878ecd24ff0ae41b4668c7e9d0f11b66942",
"versionType": "git"
},
{
"lessThan": "b760113aeca2e9362d56bf9e9263373ffe6c8eb3",
"status": "affected",
"version": "6829c878ecd24ff0ae41b4668c7e9d0f11b66942",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/wireless/mlme.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": "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": "2.6.32",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.158",
"versionStartIncluding": "2.6.32",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.111",
"versionStartIncluding": "2.6.32",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.53",
"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\nwifi: cfg80211: validate assoc response length before status and IE access\n\ncfg80211_rx_assoc_resp() initialises the status and response-IE fields\nof cfg80211_connect_resp_params from the management frame before\nproving that the frame is long enough for those offsets. S1G and\nregular association responses also have different IE offsets, but the\nS1G path only patched resp_ie after the unsafe initialiser had already\nrun.\n\nDefer resp_ie, resp_ie_len, and status to after the link-iteration\nloop. Use a bool to remember whether the frame is S1G, then validate\nthe appropriate minimum length and set all three fields in a single\nif/else block. Funnel short-frame and SME-reject cleanup through a\nshared free_bss label for the abandon paths."
}
],
"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 malformed input is an 802.11 (Re)Association Response in data-\u003ebuf that cfg80211_rx_assoc_resp() parses as ieee80211_mgmt. It is delivered by ieee80211_rx_h_mgmt \u2192 ieee80211_sta_rx_queued_frame \u2192 ieee80211_rx_mgmt_assoc_resp, or by mwifiex_ret_802_11_associate \u2192 mwifiex_process_assoc_resp. Those frames are WiFi radio-range, not a routable IP protocol.\nAC:L - mwifiex_ret_802_11_associate copies resp-\u003eparams of length (resp-\u003esize - S_DS_GEN) into assoc_rsp_buf with no 30-byte floor; mwifiex_process_assoc_resp then calls cfg80211_rx_assoc_resp with that len. A rogue AP\u0027s truncated AssocResp makes data-\u003elen \u003c offsetof(ieee80211_mgmt, u.assoc_resp.variable), so the size_t subtraction for cr.resp_ie_len wraps every time. No race.\nPR:N - cfg80211_rx_assoc_resp runs on the station MLME RX path. ieee80211_rx_mgmt_assoc_resp only requires ifmgd-\u003eassoc_data and matching SA/BSSID; mwifiex_host_mlme_work_queue has no capable() or uid check. The AssocResp is parsed before the 4-way handshake, so a radio attacker needs no host account or PSK.\nUI:N - A saved-network auto-reconnect or evil-twin of a known SSID puts ifmgd-\u003eassoc_data / the mwifiex associate command in flight; the attacker\u0027s AssocResp is then handled in ieee80211_rx_mgmt_assoc_resp or mwifiex_process_assoc_resp with no further victim click.\nS:U - The underflowed cr.resp_ie_len is consumed in nl80211_send_connect_result() \u2192 nla_put(NL80211_ATTR_RESP_IE) / __nla_put() on host-kernel heap (the nlmsg skb and adjacent objects). No VM, IOMMU, or sandbox boundary is crossed.\nC:H - When data-\u003elen \u003c 30, cr.resp_ie_len = data-\u003elen - offsetof(ieee80211_mgmt, u.assoc_resp.variable) wraps. nl80211_send_connect_result() then nla_put(NL80211_ATTR_RESP_IE, that length, cr.resp_ie) and __nla_put memcpy\u0027s from mgmt-\u003eu.assoc_resp.variable, disclosing kernel memory far past the short frame; status_code at offset 26 is also an OOB load.\nI:H - nlmsg_new(100 + cr-\u003eresp_ie_len + ...) in nl80211_send_connect_result wraps the skb allocation small when resp_ie_len underflows. nla_put then passes that length as int into __nla_put, whose memcpy writes past the skb, and __nla_reserve memset\u0027s at the wrapped u16 nla_len \u2014 a kernel heap overflow write.\nA:H - The same __nla_put memcpy of the wrapped cr.resp_ie_len, or __nla_reserve\u0027s memset at the wrapped u16 nla_len, can walk into unmapped or redzone memory and oops/panic. Repeating association retriggers it."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-03T10:57:39.214Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/3bcaaaa4ad334053ceea2ea2f0623f22afe2e1ac"
},
{
"url": "https://git.kernel.org/stable/c/71be658246c903b9e96976a23c23800675896a1b"
},
{
"url": "https://git.kernel.org/stable/c/a57310600c1e2b9ada0f37c96e8f48aef47d3093"
},
{
"url": "https://git.kernel.org/stable/c/78ac450ad4624d6b2999cb4eeb28916767f81247"
},
{
"url": "https://git.kernel.org/stable/c/b760113aeca2e9362d56bf9e9263373ffe6c8eb3"
}
],
"title": "wifi: cfg80211: validate assoc response length before status and IE access",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-93806",
"datePublished": "2026-09-24T16:02:40.159Z",
"dateReserved": "2026-09-18T17:59:28.790Z",
"dateUpdated": "2026-10-03T10:57:39.214Z",
"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-64063 (GCVE-0-2026-64063)
Vulnerability from cvelistv5
Published
2026-07-19 15:39
Modified
2026-07-19 15:39
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
netfs: Fix streaming write being overwritten
In order to avoid reading whilst writing, netfslib will allow "streaming
writes" in which dirty data is stored directly into folios without reading
them first. Such folios are marked dirty but may not be marked uptodate.
If a folio is entirely written by a streaming write, uptodate will be set,
otherwise it will have a netfs_folio struct attached to ->private recording
the dirty region.
In the event that a partially written streaming write page is to be
overwritten entirely by a single write(), netfs_perform_write() will try to
copy over it, but doesn't discard the netfs_folio if it succeeds; further,
it doesn't correctly handle a partial copy that overwrites some of the
dirty data.
Fix this by the following:
(1) If the folio is successfully overwritten, free the netfs_folio struct
before marking the page uptodate.
(2) If the copy to the folio partially fails, but short of the dirty data,
just ignore the copy.
(3) If the copy partially fails and overwrites some of the dirty data,
accept the copy, update the netfs_folio struct to record the new data.
If the folio is now filled, free the netfs_folio and set uptodate,
otherwise return a partial write.
Found with:
fsx -q -N 1000000 -p 10000 -o 128000 -l 600000 \
/xfstest.test/junk --replay-ops=junk.fsxops
using the following as junk.fsxops:
truncate 0x0 0 0x927c0
write 0x63fb8 0x53c8 0
copy_range 0xb704 0x19b9 0x24429 0x79380
write 0x2402b 0x144a2 0x90660 *
write 0x204d5 0x140a0 0x927c0 *
copy_range 0x1f72c 0x137d0 0x7a906 0x927c0 *
read 0x00000 0x20000 0x9157c
read 0x20000 0x20000 0x9157c
read 0x40000 0x20000 0x9157c
read 0x60000 0x20000 0x9157c
read 0x7e1a0 0xcfb9 0x9157c
on cifs with the default cache option.
It shows folio 0x24 misbehaving if the FMODE_READ check is commented out in
netfs_perform_write():
if (//(file->f_mode & FMODE_READ) ||
netfs_is_cache_enabled(ctx)) {
and no fscache. This was initially found with the generic/522 xfstest.
References
| URL | Tags | |
|---|---|---|
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"fs/netfs/buffered_write.c",
"include/trace/events/netfs.h"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "20195925c768626dc901a4781a51e508702c88ad",
"status": "affected",
"version": "8f52de0077ba3bf41e5d53d67a185700f41efce7",
"versionType": "git"
},
{
"lessThan": "ef9b521212e4863814ef7dfe19889abaf55ca840",
"status": "affected",
"version": "8f52de0077ba3bf41e5d53d67a185700f41efce7",
"versionType": "git"
},
{
"lessThan": "cdae00e8e215d95911d95f100599e187b6560de5",
"status": "affected",
"version": "8f52de0077ba3bf41e5d53d67a185700f41efce7",
"versionType": "git"
},
{
"lessThan": "7b4dcf1b9455a6e52ac7478b4057dbe10359576d",
"status": "affected",
"version": "8f52de0077ba3bf41e5d53d67a185700f41efce7",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"fs/netfs/buffered_write.c",
"include/trace/events/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.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.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 streaming write being overwritten\n\nIn order to avoid reading whilst writing, netfslib will allow \"streaming\nwrites\" in which dirty data is stored directly into folios without reading\nthem first. Such folios are marked dirty but may not be marked uptodate.\nIf a folio is entirely written by a streaming write, uptodate will be set,\notherwise it will have a netfs_folio struct attached to -\u003eprivate recording\nthe dirty region.\n\nIn the event that a partially written streaming write page is to be\noverwritten entirely by a single write(), netfs_perform_write() will try to\ncopy over it, but doesn\u0027t discard the netfs_folio if it succeeds; further,\nit doesn\u0027t correctly handle a partial copy that overwrites some of the\ndirty data.\n\nFix this by the following:\n\n (1) If the folio is successfully overwritten, free the netfs_folio struct\n before marking the page uptodate.\n\n (2) If the copy to the folio partially fails, but short of the dirty data,\n just ignore the copy.\n\n (3) If the copy partially fails and overwrites some of the dirty data,\n accept the copy, update the netfs_folio struct to record the new data.\n If the folio is now filled, free the netfs_folio and set uptodate,\n otherwise return a partial write.\n\nFound with:\n\n\tfsx -q -N 1000000 -p 10000 -o 128000 -l 600000 \\\n\t /xfstest.test/junk --replay-ops=junk.fsxops\n\nusing the following as junk.fsxops:\n\n\ttruncate 0x0 0 0x927c0\n\twrite 0x63fb8 0x53c8 0\n\tcopy_range 0xb704 0x19b9 0x24429 0x79380\n\twrite 0x2402b 0x144a2 0x90660 *\n\twrite 0x204d5 0x140a0 0x927c0 *\n\tcopy_range 0x1f72c 0x137d0 0x7a906 0x927c0 *\n\tread 0x00000 0x20000 0x9157c\n\tread 0x20000 0x20000 0x9157c\n\tread 0x40000 0x20000 0x9157c\n\tread 0x60000 0x20000 0x9157c\n\tread 0x7e1a0 0xcfb9 0x9157c\n\non cifs with the default cache option.\n\nIt shows folio 0x24 misbehaving if the FMODE_READ check is commented out in\nnetfs_perform_write():\n\n\t\tif (//(file-\u003ef_mode \u0026 FMODE_READ) ||\n\t\t netfs_is_cache_enabled(ctx)) {\n\nand no fscache. This was initially found with the generic/522 xfstest."
}
],
"providerMetadata": {
"dateUpdated": "2026-07-19T15:39:42.123Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/20195925c768626dc901a4781a51e508702c88ad"
},
{
"url": "https://git.kernel.org/stable/c/ef9b521212e4863814ef7dfe19889abaf55ca840"
},
{
"url": "https://git.kernel.org/stable/c/cdae00e8e215d95911d95f100599e187b6560de5"
},
{
"url": "https://git.kernel.org/stable/c/7b4dcf1b9455a6e52ac7478b4057dbe10359576d"
}
],
"title": "netfs: Fix streaming write being overwritten",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-64063",
"datePublished": "2026-07-19T15:39:42.123Z",
"dateReserved": "2026-07-19T07:54:57.030Z",
"dateUpdated": "2026-07-19T15:39:42.123Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-80579 (GCVE-0-2026-80579)
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: clear fb_info->mode before deleting a videomode
fb_set_var() can delete a mode from info->modelist when userspace
passes FB_ACTIVATE_INV_MODE through FBIOPUT_VSCREENINFO. The code
checks that the mode being deleted is not the current info->var and
that fbcon is not using it, but it does not check fb_info->mode.
fb_info->mode may still point into the modelist entry being deleted.
If the entry is freed, later mode sysfs reads through show_mode() can
dereference a stale pointer.
Clear fb_info->mode before calling fb_delete_videomode() when it
matches the mode being removed.
References
Impacted products
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-80579",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T19:17:46.592165Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T19:26:28.024Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/video/fbdev/core/fbmem.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "ce7fef961c63229b22dec415fb988899f479d61f",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "95e647d2a5304a8fd11f1ba3c8502de700650131",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/video/fbdev/core/fbmem.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: clear fb_info-\u003emode before deleting a videomode\n\nfb_set_var() can delete a mode from info-\u003emodelist when userspace\npasses FB_ACTIVATE_INV_MODE through FBIOPUT_VSCREENINFO. The code\nchecks that the mode being deleted is not the current info-\u003evar and\nthat fbcon is not using it, but it does not check fb_info-\u003emode.\n\nfb_info-\u003emode may still point into the modelist entry being deleted.\nIf the entry is freed, later mode sysfs reads through show_mode() can\ndereference a stale pointer.\n\nClear fb_info-\u003emode before calling fb_delete_videomode() when it\nmatches the mode being removed."
}
],
"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 framebuffer interfaces\u2014FBIOPUT_VSCREENINFO ioctl on /dev/fb* to delete a videomode and sysfs reads of /sys/class/graphics/fb*/mode via show_mode(); fbdev core has no network, Bluetooth, or remote packet path.\nAC:L - Exploitation is a deterministic state bug, not a race: ioctl with FB_ACTIVATE_INV_MODE frees the modelist kmalloc entry while fb_info-\u003emode still points into it, and a subsequent sysfs mode read reliably dereferences the stale pointer without attacker-uncontrollable timing.\nPR:L - The freeing trigger is FBIOPUT_VSCREENINFO on /dev/fb*, which requires only local framebuffer device access (video group or kiosk/embedded/HMI service accounts), not init-namespace root; sysfs mode reads are world-readable and complete the UAF disclosure path.\nUI:N - No victim interaction is required; the attacker performs ioctl mode deletion and sysfs mode reads through their own local process without needing another user to mount, open, or configure unrelated resources.\nS:U - The use-after-free corrupts kernel heap state within the local fbdev subsystem and does not cross VM, container, or IOMMU boundaries to impact resources under a different security authority.\nC:H - After fb_delete_videomode() kfree()s the fb_modelist object, show_mode()/mode_string() reads flag, vmode, xres, yres, and refresh from freed slab memory and copies attacker-influenced bytes to userspace\u2014a UAF information-disclosure primitive.\nI:H - The dangling fb_info-\u003emode pointer into a freed kmalloc object enables classic heap grooming between ioctl free and sysfs read; reallocated slab contents can be corrupted or confused for control-flow or arbitrary-write primitives beyond the immediate read.\nA:H - Dereferencing the freed fb_videomode structure causes KASAN-detectable use-after-free faults and kernel oops/panic on display-equipped embedded, automotive, kiosk, and console systems running the framebuffer subsystem."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-27T05:02:00.629Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/ce7fef961c63229b22dec415fb988899f479d61f"
},
{
"url": "https://git.kernel.org/stable/c/95e647d2a5304a8fd11f1ba3c8502de700650131"
}
],
"title": "fbdev: clear fb_info-\u003emode before deleting a videomode",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-80579",
"datePublished": "2026-08-26T14:37:37.320Z",
"dateReserved": "2026-08-26T14:34:25.769Z",
"dateUpdated": "2026-10-16T19:26:28.024Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-97558 (GCVE-0-2026-97558)
Vulnerability from cvelistv5
Published
2026-09-25 10:21
Modified
2026-10-30 12:37
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
smb: client: fix cifsFileInfo reference leak in deferred close
When cifs_close() defers a close, it hands the cifsFileInfo reference
of the closing struct file to the queued work. Each execution of
smb2_deferred_work_close() drops one such reference.
deferred_close_scheduled can be false while the work is pending: the
workqueue clears PENDING when the callback starts to run, before the
callback clears the flag under deferred_lock. A close in that
interval requeues the running work, and the callback then clears the
flag, leaving the requeued work pending with the flag down. A later
cifs_open() can reuse the handle and its cifs_close() reaches the
same branch: queue_delayed_work() fails because the work is still
pending, but cifs_close() returns without dropping the closing file's
reference. The cifsFileInfo count stays pinned and its tlink, dentry
and server handle are leaked.
Check the return value and hand off the reference only when work was
actually queued. Otherwise, use the shared _cifsFileInfo_put(), like
the mod_delayed_work() branch above: the pending execution already
owns its reference.
This issue was found by an in-house static analysis tool.
References
| URL | Tags | ||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: c3f207ab29f793b8c942ce8067ed123f18d5b81b Version: c3f207ab29f793b8c942ce8067ed123f18d5b81b Version: c3f207ab29f793b8c942ce8067ed123f18d5b81b Version: c3f207ab29f793b8c942ce8067ed123f18d5b81b Version: c3f207ab29f793b8c942ce8067ed123f18d5b81b Version: c3f207ab29f793b8c942ce8067ed123f18d5b81b Version: c3f207ab29f793b8c942ce8067ed123f18d5b81b |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"fs/smb/client/file.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "645a7359c1f740152464edf84f1030e0cad42c9d",
"status": "affected",
"version": "c3f207ab29f793b8c942ce8067ed123f18d5b81b",
"versionType": "git"
},
{
"lessThan": "46d98be6c34a52182ea3c2f849a3ea0e9419eaf2",
"status": "affected",
"version": "c3f207ab29f793b8c942ce8067ed123f18d5b81b",
"versionType": "git"
},
{
"lessThan": "525c225e23d61694091f2806de553a69362a78ff",
"status": "affected",
"version": "c3f207ab29f793b8c942ce8067ed123f18d5b81b",
"versionType": "git"
},
{
"lessThan": "bbeb7a42c9ea656e17ddcbdc2d7917aa853383a6",
"status": "affected",
"version": "c3f207ab29f793b8c942ce8067ed123f18d5b81b",
"versionType": "git"
},
{
"lessThan": "a6767712902beb0f53238be485971c9a83ea1079",
"status": "affected",
"version": "c3f207ab29f793b8c942ce8067ed123f18d5b81b",
"versionType": "git"
},
{
"lessThan": "ea93759d6c2789924f4e557aed5be532207715ea",
"status": "affected",
"version": "c3f207ab29f793b8c942ce8067ed123f18d5b81b",
"versionType": "git"
},
{
"lessThan": "5520e89a5a4f834bced64cf2ac927001cc513a40",
"status": "affected",
"version": "c3f207ab29f793b8c942ce8067ed123f18d5b81b",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"fs/smb/client/file.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.224",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.191",
"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.54",
"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.15.224",
"versionStartIncluding": "5.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.191",
"versionStartIncluding": "5.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.160",
"versionStartIncluding": "5.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.113",
"versionStartIncluding": "5.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.54",
"versionStartIncluding": "5.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.7",
"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\nsmb: client: fix cifsFileInfo reference leak in deferred close\n\nWhen cifs_close() defers a close, it hands the cifsFileInfo reference\nof the closing struct file to the queued work. Each execution of\nsmb2_deferred_work_close() drops one such reference.\n\ndeferred_close_scheduled can be false while the work is pending: the\nworkqueue clears PENDING when the callback starts to run, before the\ncallback clears the flag under deferred_lock. A close in that\ninterval requeues the running work, and the callback then clears the\nflag, leaving the requeued work pending with the flag down. A later\ncifs_open() can reuse the handle and its cifs_close() reaches the\nsame branch: queue_delayed_work() fails because the work is still\npending, but cifs_close() returns without dropping the closing file\u0027s\nreference. The cifsFileInfo count stays pinned and its tlink, dentry\nand server handle are leaked.\n\nCheck the return value and hand off the reference only when work was\nactually queued. Otherwise, use the shared _cifsFileInfo_put(), like\nthe mod_delayed_work() branch above: the pending execution already\nowns its reference.\n\nThis issue was found by an in-house static analysis tool."
}
],
"providerMetadata": {
"dateUpdated": "2026-10-30T12:37:23.189Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/645a7359c1f740152464edf84f1030e0cad42c9d"
},
{
"url": "https://git.kernel.org/stable/c/46d98be6c34a52182ea3c2f849a3ea0e9419eaf2"
},
{
"url": "https://git.kernel.org/stable/c/525c225e23d61694091f2806de553a69362a78ff"
},
{
"url": "https://git.kernel.org/stable/c/bbeb7a42c9ea656e17ddcbdc2d7917aa853383a6"
},
{
"url": "https://git.kernel.org/stable/c/a6767712902beb0f53238be485971c9a83ea1079"
},
{
"url": "https://git.kernel.org/stable/c/ea93759d6c2789924f4e557aed5be532207715ea"
},
{
"url": "https://git.kernel.org/stable/c/5520e89a5a4f834bced64cf2ac927001cc513a40"
}
],
"title": "smb: client: fix cifsFileInfo reference leak in deferred close",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-97558",
"datePublished": "2026-09-25T10:21:48.277Z",
"dateReserved": "2026-09-24T16:01:01.155Z",
"dateUpdated": "2026-10-30T12:37:23.189Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-98015 (GCVE-0-2026-98015)
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/mlx5: E-Switch: fix use-after-free in mlx5_eswitch_termtbl_put
In mlx5_eswitch_termtbl_put(), the zero-ref cleanup check reads
tt->ref_count after termtbl_mutex has been released. Two concurrent
callers on the same mlx5_termtbl_handle race: one decrements ref_count
to zero, removes the hash entry, and calls kfree(tt) while the other
has already dropped the mutex and is about to evaluate
if (!tt->ref_count), producing a use-after-free.
Fix this by capturing the result of the decrement into a stack-local
last variable before dropping the mutex. The cleanup decision is now
made entirely under termtbl_mutex, and tt is not touched after
kfree.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 10caabdaad5ace85577a453da97d1f8d3b944427 Version: 10caabdaad5ace85577a453da97d1f8d3b944427 Version: 10caabdaad5ace85577a453da97d1f8d3b944427 Version: 10caabdaad5ace85577a453da97d1f8d3b944427 Version: 10caabdaad5ace85577a453da97d1f8d3b944427 Version: 10caabdaad5ace85577a453da97d1f8d3b944427 Version: 10caabdaad5ace85577a453da97d1f8d3b944427 Version: 10caabdaad5ace85577a453da97d1f8d3b944427 |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads_termtbl.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "e3ee194a790896fa92fea20b5385a354be2f2c12",
"status": "affected",
"version": "10caabdaad5ace85577a453da97d1f8d3b944427",
"versionType": "git"
},
{
"lessThan": "b1398c9dfb5d3d4faaf6905ff7d98110a5d2c797",
"status": "affected",
"version": "10caabdaad5ace85577a453da97d1f8d3b944427",
"versionType": "git"
},
{
"lessThan": "92f581cac93a71723456ac79ef54d9f60a251b42",
"status": "affected",
"version": "10caabdaad5ace85577a453da97d1f8d3b944427",
"versionType": "git"
},
{
"lessThan": "a5833fdf53350b8b95a558fcf0056ddb1c0fe154",
"status": "affected",
"version": "10caabdaad5ace85577a453da97d1f8d3b944427",
"versionType": "git"
},
{
"lessThan": "304ea40ef4561671503c36e47da44a0a31b71e36",
"status": "affected",
"version": "10caabdaad5ace85577a453da97d1f8d3b944427",
"versionType": "git"
},
{
"lessThan": "e393789e92310d7c66f57c876101779c90816a12",
"status": "affected",
"version": "10caabdaad5ace85577a453da97d1f8d3b944427",
"versionType": "git"
},
{
"lessThan": "18b2969073879b9cce24e1a78b118bdad54518d1",
"status": "affected",
"version": "10caabdaad5ace85577a453da97d1f8d3b944427",
"versionType": "git"
},
{
"lessThan": "7ee07f601f8f507c9faf25c68a49396ab8950596",
"status": "affected",
"version": "10caabdaad5ace85577a453da97d1f8d3b944427",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads_termtbl.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.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.3",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.222",
"versionStartIncluding": "5.3",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.189",
"versionStartIncluding": "5.3",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.158",
"versionStartIncluding": "5.3",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.111",
"versionStartIncluding": "5.3",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.53",
"versionStartIncluding": "5.3",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.7",
"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\nnet/mlx5: E-Switch: fix use-after-free in mlx5_eswitch_termtbl_put\n\nIn mlx5_eswitch_termtbl_put(), the zero-ref cleanup check reads\ntt-\u003eref_count after termtbl_mutex has been released. Two concurrent\ncallers on the same mlx5_termtbl_handle race: one decrements ref_count\nto zero, removes the hash entry, and calls kfree(tt) while the other\nhas already dropped the mutex and is about to evaluate\nif (!tt-\u003eref_count), producing a use-after-free.\n\nFix this by capturing the result of the decrement into a stack-local\nlast variable before dropping the mutex. The cleanup decision is now\nmade entirely under termtbl_mutex, and tt is not touched after\nkfree."
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T09:12:20.637Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/e3ee194a790896fa92fea20b5385a354be2f2c12"
},
{
"url": "https://git.kernel.org/stable/c/b1398c9dfb5d3d4faaf6905ff7d98110a5d2c797"
},
{
"url": "https://git.kernel.org/stable/c/92f581cac93a71723456ac79ef54d9f60a251b42"
},
{
"url": "https://git.kernel.org/stable/c/a5833fdf53350b8b95a558fcf0056ddb1c0fe154"
},
{
"url": "https://git.kernel.org/stable/c/304ea40ef4561671503c36e47da44a0a31b71e36"
},
{
"url": "https://git.kernel.org/stable/c/e393789e92310d7c66f57c876101779c90816a12"
},
{
"url": "https://git.kernel.org/stable/c/18b2969073879b9cce24e1a78b118bdad54518d1"
},
{
"url": "https://git.kernel.org/stable/c/7ee07f601f8f507c9faf25c68a49396ab8950596"
}
],
"title": "net/mlx5: E-Switch: fix use-after-free in mlx5_eswitch_termtbl_put",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-98015",
"datePublished": "2026-09-25T10:23:37.724Z",
"dateReserved": "2026-09-25T10:19:56.069Z",
"dateUpdated": "2026-10-19T09:12:20.637Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-64568 (GCVE-0-2026-64568)
Vulnerability from cvelistv5
Published
2026-08-05 08:08
Modified
2026-08-17 04:57
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
wifi: mac80211: fix unsol_bcast_probe_resp double free on alloc failure
ieee80211_set_unsol_bcast_probe_resp() calls kfree_rcu() on the old
template before allocating the replacement. If the kzalloc() then fails,
it returns -ENOMEM while link->u.ap.unsol_bcast_probe_resp still points
at the object already queued for freeing. A later update or AP teardown
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 ffff88800d06f300 by task exploit/145
...
__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-128 of size 128
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": {
"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": "ca27a81cd77b698e5eb586a011bee6800c7ee4bd",
"status": "affected",
"version": "3b1c256eb4aedfc71dd97d5951ccff824b41d628",
"versionType": "git"
},
{
"lessThan": "d62b55b7c7dc62887d7fd5648fb38f0bfaef53ae",
"status": "affected",
"version": "3b1c256eb4aedfc71dd97d5951ccff824b41d628",
"versionType": "git"
},
{
"lessThan": "0ace76e410d7f7d813b605825a3e593a79c3958f",
"status": "affected",
"version": "3b1c256eb4aedfc71dd97d5951ccff824b41d628",
"versionType": "git"
},
{
"lessThan": "1d067abcd37062426c59ec73dbc4e87a63f33fea",
"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 unsol_bcast_probe_resp double free on alloc failure\n\nieee80211_set_unsol_bcast_probe_resp() calls kfree_rcu() on the old\ntemplate before allocating the replacement. If the kzalloc() then fails,\nit returns -ENOMEM while link-\u003eu.ap.unsol_bcast_probe_resp still points\nat the object already queued for freeing. A later update or AP teardown\nre-queues that same rcu_head; the second free is caught by KASAN when the\nRCU sheaf is processed in softirq:\n\n BUG: KASAN: double-free in rcu_free_sheaf (mm/slub.c:5850)\n Free of addr ffff88800d06f300 by task exploit/145\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-128 of size 128\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/CHANNEL_SWITCH/COLOR_CHANGE \u2192 ieee80211_set_unsol_bcast_probe_resp), 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 the unsolicited broadcast probe response template 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 unsol_bcast_probe_resp pointer can be read via ieee80211_get_unsol_bcast_probe_resp_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 unsol_bcast_probe_resp 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 (task exploit/145) and can oops/panic the kernel, fully denying availability."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-17T04:57:46.839Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/ca27a81cd77b698e5eb586a011bee6800c7ee4bd"
},
{
"url": "https://git.kernel.org/stable/c/d62b55b7c7dc62887d7fd5648fb38f0bfaef53ae"
},
{
"url": "https://git.kernel.org/stable/c/0ace76e410d7f7d813b605825a3e593a79c3958f"
},
{
"url": "https://git.kernel.org/stable/c/1d067abcd37062426c59ec73dbc4e87a63f33fea"
}
],
"title": "wifi: mac80211: fix unsol_bcast_probe_resp double free on alloc failure",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-64568",
"datePublished": "2026-08-05T08:08:06.625Z",
"dateReserved": "2026-07-19T15:36:31.797Z",
"dateUpdated": "2026-08-17T04:57:46.839Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-74312 (GCVE-0-2026-74312)
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/vdpa: validate virtqueue index in mmap and fault paths
vhost_vdpa_mmap() and vhost_vdpa_fault() use vma->vm_pgoff as a
virtqueue index for get_vq_notification(), but they do not validate
that the index is smaller than v->nvqs.
The ioctl path already performs both a bounds check and
array_index_nospec(), but the mmap/fault path only checks that the
index fits in u16. This allows an out-of-range queue index to reach
driver-specific get_vq_notification() callbacks.
Fix this by extracting a unified vhost_vdpa_get_vq_notification()
helper that validates the queue index against v->nvqs and applies
array_index_nospec() before calling the driver callback. Both the
mmap and fault paths use this helper, and the bounds checking is
consolidated into a single location.
From source inspection, the most defensible impact is out-of-bounds
access in the callback path, potentially leading to invalid PFN
remaps and crash/DoS.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: ddd89d0a059d8e9740c75a97e0efe9bf07ee51f9 Version: ddd89d0a059d8e9740c75a97e0efe9bf07ee51f9 Version: ddd89d0a059d8e9740c75a97e0efe9bf07ee51f9 Version: ddd89d0a059d8e9740c75a97e0efe9bf07ee51f9 Version: ddd89d0a059d8e9740c75a97e0efe9bf07ee51f9 Version: ddd89d0a059d8e9740c75a97e0efe9bf07ee51f9 Version: ddd89d0a059d8e9740c75a97e0efe9bf07ee51f9 Version: ddd89d0a059d8e9740c75a97e0efe9bf07ee51f9 |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-74312",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T18:53:00.610908Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T18:55:32.188Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/vhost/vdpa.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "0f310bac6db9bd3bb1655707d692d9d2a86eeb17",
"status": "affected",
"version": "ddd89d0a059d8e9740c75a97e0efe9bf07ee51f9",
"versionType": "git"
},
{
"lessThan": "4bf5a51963ff816f7443702dc536b9327cf5e550",
"status": "affected",
"version": "ddd89d0a059d8e9740c75a97e0efe9bf07ee51f9",
"versionType": "git"
},
{
"lessThan": "55a644031e610ea93fbde2702c7b8f267476552f",
"status": "affected",
"version": "ddd89d0a059d8e9740c75a97e0efe9bf07ee51f9",
"versionType": "git"
},
{
"lessThan": "2b3f79b90b231a682315fe2191bb71925650e183",
"status": "affected",
"version": "ddd89d0a059d8e9740c75a97e0efe9bf07ee51f9",
"versionType": "git"
},
{
"lessThan": "bbba4f92515238d76018e9b75e41b16d83df52c8",
"status": "affected",
"version": "ddd89d0a059d8e9740c75a97e0efe9bf07ee51f9",
"versionType": "git"
},
{
"lessThan": "1f5f94c6c6b2e4eaa5b45815509e21d0c6cfa81e",
"status": "affected",
"version": "ddd89d0a059d8e9740c75a97e0efe9bf07ee51f9",
"versionType": "git"
},
{
"lessThan": "32ac9097aa2463fcfc12f61cc4a9ebc3579cba7d",
"status": "affected",
"version": "ddd89d0a059d8e9740c75a97e0efe9bf07ee51f9",
"versionType": "git"
},
{
"lessThan": "929e4f044621c8cc30b612fb74e1410bef09e41b",
"status": "affected",
"version": "ddd89d0a059d8e9740c75a97e0efe9bf07ee51f9",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/vhost/vdpa.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.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.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.212",
"versionStartIncluding": "5.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.178",
"versionStartIncluding": "5.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.145",
"versionStartIncluding": "5.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.97",
"versionStartIncluding": "5.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.40",
"versionStartIncluding": "5.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.5",
"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\nvhost/vdpa: validate virtqueue index in mmap and fault paths\n\nvhost_vdpa_mmap() and vhost_vdpa_fault() use vma-\u003evm_pgoff as a\nvirtqueue index for get_vq_notification(), but they do not validate\nthat the index is smaller than v-\u003envqs.\n\nThe ioctl path already performs both a bounds check and\narray_index_nospec(), but the mmap/fault path only checks that the\nindex fits in u16. This allows an out-of-range queue index to reach\ndriver-specific get_vq_notification() callbacks.\n\nFix this by extracting a unified vhost_vdpa_get_vq_notification()\nhelper that validates the queue index against v-\u003envqs and applies\narray_index_nospec() before calling the driver callback. Both the\nmmap and fault paths use this helper, and the bounds checking is\nconsolidated into a single location.\n\nFrom source inspection, the most defensible impact is out-of-bounds\naccess in the callback path, potentially leading to invalid PFN\nremaps and crash/DoS."
}
],
"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 mmap()/page-fault handling on /dev/vhost-vdpa-N (vma-\u003evm_pgoff selects the virtqueue); there is no network, adjacent-radio, or physical-device path to this code.\nAC:L - Once the device node is open, the attacker fully controls vm_pgoff and can pick any index up to 65535; no race, rare config, or victim-dependent timing is required to hit the out-of-range callback.\nPR:L - vhost_vdpa_open()/mmap() perform no capable() checks; in typical cloud/hypervisor deployments the vhost-vdpa char device is held by an unprivileged VMM/QEMU account (or a compromised QEMU), not init-namespace root.\nUI:N - Exploitation requires only the attacker\u0027s own open/mmap of the vhost-vdpa device with a crafted pgoff; no separate victim mount, click, or administrative action is needed.\nS:U - Impact stays within the host kernel security domain reached through the vhost-vdpa interface; it is not a guest-to-host VM escape or IOMMU-boundary bypass by itself.\nC:H - An out-of-range index drives driver get_vq_notification() callbacks (e.g. vp_vdpa/ifcvf/pds/octeon) to read past vring metadata; the returned notify.addr is then used by vmf_insert_pfn(), enabling arbitrary physical-page mapping and kernel memory disclosure.\nI:H - The mmap mapping is write-only doorbell access; remapping an attacker-chosen physical page via the corrupted notify.addr grants a write primitive to arbitrary physical memory and device MMIO, supporting control-flow or privilege manipulation.\nA:H - Invalid or attacker-influenced PFN insertion during fault handling can BUG/oops the kernel immediately; even without full exploitation, the out-of-bounds callback access provides a reliable host crash/DoS vector."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-17T05:45:44.929Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/0f310bac6db9bd3bb1655707d692d9d2a86eeb17"
},
{
"url": "https://git.kernel.org/stable/c/4bf5a51963ff816f7443702dc536b9327cf5e550"
},
{
"url": "https://git.kernel.org/stable/c/55a644031e610ea93fbde2702c7b8f267476552f"
},
{
"url": "https://git.kernel.org/stable/c/2b3f79b90b231a682315fe2191bb71925650e183"
},
{
"url": "https://git.kernel.org/stable/c/bbba4f92515238d76018e9b75e41b16d83df52c8"
},
{
"url": "https://git.kernel.org/stable/c/1f5f94c6c6b2e4eaa5b45815509e21d0c6cfa81e"
},
{
"url": "https://git.kernel.org/stable/c/32ac9097aa2463fcfc12f61cc4a9ebc3579cba7d"
},
{
"url": "https://git.kernel.org/stable/c/929e4f044621c8cc30b612fb74e1410bef09e41b"
}
],
"title": "vhost/vdpa: validate virtqueue index in mmap and fault paths",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-74312",
"datePublished": "2026-08-15T05:58:11.395Z",
"dateReserved": "2026-08-15T05:44:03.883Z",
"dateUpdated": "2026-10-16T18:55:32.188Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-64064 (GCVE-0-2026-64064)
Vulnerability from cvelistv5
Published
2026-07-19 15:39
Modified
2026-07-19 15:39
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
netfs: Fix netfs_invalidate_folio() to clear dirty bit if all changes gone
If a streaming write is made, this will leave the relevant modified folio
in a not-uptodate, but dirty state with a netfs_folio struct hung off of
folio->private indicating the dirty range. Subsequently truncating the
file such that the dirty data in the folio is removed, but the first part
of the folio theoretically remains will cause the netfs_folio struct to be
discarded... but will leave the dirty flag set.
If the folio is then read via mmap(), netfs_read_folio() will see that the
page is dirty and jump to netfs_read_gaps() to fill in the missing bits.
netfs_read_gaps(), however, expects there to be a netfs_folio struct
present and can oops because truncate removed it.
Fix this by calling folio_cancel_dirty() in netfs_invalidate_folio() in the
event that all the dirty data in the folio is erased (as nfs does).
Also add some tracepoints to log modifications to a dirty page.
This can be reproduced with something like:
dd if=/dev/zero of=/xfstest.test/foo bs=1M count=1
umount /xfstest.test
mount /xfstest.test
xfs_io -c "w 0xbbbf 0xf96c" \
-c "truncate 0xbbbf" \
-c "mmap -r 0xb000 0x11000" \
-c "mr 0xb000 0x11000" \
/xfstest.test/foo
with fscaching disabled (otherwise streaming writes are suppressed) and a
change to netfs_perform_write() to disallow streaming writes if the fd is
open O_RDWR:
if (//(file->f_mode & FMODE_READ) || <--- comment this out
netfs_is_cache_enabled(ctx)) {
It should be reproducible even without this change, but if prevents the
above trivial xfs_io command from reproducing it.
Note that the initial dd is important: the file must start out sufficiently
large that the zero-point logic doesn't just clear the gaps because it
knows there's nothing in the file to read yet. Unmounting and mounting is
needed to clear the pagecache (there are other ways to do that that may
also work).
This was initially reproduced with the generic/522 xfstest on some patches
that remove the FMODE_READ restriction.
References
| URL | Tags | |
|---|---|---|
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"fs/netfs/misc.c",
"include/trace/events/netfs.h"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "31ba145faceb378fa01afcb8349e15ea7d95e542",
"status": "affected",
"version": "9ebff83e648148b9ece97d4e4890dd84ca54d6ce",
"versionType": "git"
},
{
"lessThan": "fb6ec883b48b8789e5e690dcd440d2db941e840c",
"status": "affected",
"version": "9ebff83e648148b9ece97d4e4890dd84ca54d6ce",
"versionType": "git"
},
{
"lessThan": "65ae8717abf36202fef02260b64b781d2d44a9bf",
"status": "affected",
"version": "9ebff83e648148b9ece97d4e4890dd84ca54d6ce",
"versionType": "git"
},
{
"lessThan": "156ac2ec2ee77c44c4eb7439d6d165247ba12247",
"status": "affected",
"version": "9ebff83e648148b9ece97d4e4890dd84ca54d6ce",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"fs/netfs/misc.c",
"include/trace/events/netfs.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.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.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.34",
"versionStartIncluding": "6.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.0.11",
"versionStartIncluding": "6.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1",
"versionStartIncluding": "6.8",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnetfs: Fix netfs_invalidate_folio() to clear dirty bit if all changes gone\n\nIf a streaming write is made, this will leave the relevant modified folio\nin a not-uptodate, but dirty state with a netfs_folio struct hung off of\nfolio-\u003eprivate indicating the dirty range. Subsequently truncating the\nfile such that the dirty data in the folio is removed, but the first part\nof the folio theoretically remains will cause the netfs_folio struct to be\ndiscarded... but will leave the dirty flag set.\n\nIf the folio is then read via mmap(), netfs_read_folio() will see that the\npage is dirty and jump to netfs_read_gaps() to fill in the missing bits.\nnetfs_read_gaps(), however, expects there to be a netfs_folio struct\npresent and can oops because truncate removed it.\n\nFix this by calling folio_cancel_dirty() in netfs_invalidate_folio() in the\nevent that all the dirty data in the folio is erased (as nfs does).\n\nAlso add some tracepoints to log modifications to a dirty page.\n\nThis can be reproduced with something like:\n\n dd if=/dev/zero of=/xfstest.test/foo bs=1M count=1\n umount /xfstest.test\n mount /xfstest.test\n xfs_io -c \"w 0xbbbf 0xf96c\" \\\n -c \"truncate 0xbbbf\" \\\n -c \"mmap -r 0xb000 0x11000\" \\\n -c \"mr 0xb000 0x11000\" \\\n /xfstest.test/foo\n\nwith fscaching disabled (otherwise streaming writes are suppressed) and a\nchange to netfs_perform_write() to disallow streaming writes if the fd is\nopen O_RDWR:\n\n\tif (//(file-\u003ef_mode \u0026 FMODE_READ) || \u003c--- comment this out\n\t netfs_is_cache_enabled(ctx)) {\n\nIt should be reproducible even without this change, but if prevents the\nabove trivial xfs_io command from reproducing it.\n\nNote that the initial dd is important: the file must start out sufficiently\nlarge that the zero-point logic doesn\u0027t just clear the gaps because it\nknows there\u0027s nothing in the file to read yet. Unmounting and mounting is\nneeded to clear the pagecache (there are other ways to do that that may\nalso work).\n\nThis was initially reproduced with the generic/522 xfstest on some patches\nthat remove the FMODE_READ restriction."
}
],
"providerMetadata": {
"dateUpdated": "2026-07-19T15:39:42.770Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/31ba145faceb378fa01afcb8349e15ea7d95e542"
},
{
"url": "https://git.kernel.org/stable/c/fb6ec883b48b8789e5e690dcd440d2db941e840c"
},
{
"url": "https://git.kernel.org/stable/c/65ae8717abf36202fef02260b64b781d2d44a9bf"
},
{
"url": "https://git.kernel.org/stable/c/156ac2ec2ee77c44c4eb7439d6d165247ba12247"
}
],
"title": "netfs: Fix netfs_invalidate_folio() to clear dirty bit if all changes gone",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-64064",
"datePublished": "2026-07-19T15:39:42.770Z",
"dateReserved": "2026-07-19T07:54:57.030Z",
"dateUpdated": "2026-07-19T15:39:42.770Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-97554 (GCVE-0-2026-97554)
Vulnerability from cvelistv5
Published
2026-09-25 10:21
Modified
2026-10-30 12:37
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
smb: client: avoid using uninitialized SIDs in cifs_posix_to_fattr()
cifs_posix_to_fattr() ignores the return value of posix_info_parse().
When a malformed POSIX directory entry is encountered (e.g. invalid
SID lengths from an untrusted server), posix_info_parse() returns -1
without populating the 'parsed' struct. The uninitialized stack
memory in parsed.owner and parsed.group is then passed to
sid_to_id(), which processes the garbage bytes and passes them to
request_key() to construct a SID string, potentially leaking kernel
stack contents to the userspace idmap daemon.
Fix this by checking the return value and skipping the SID-to-id
mapping when parsing fails. The remaining fattr fields (timestamps,
mode, etc.) are populated directly from the 'info' pointer so they
are unaffected.
References
| URL | Tags | |||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 9934430e2178d5164eb1ac91a9b092f9e7e64745 Version: 9934430e2178d5164eb1ac91a9b092f9e7e64745 Version: 9934430e2178d5164eb1ac91a9b092f9e7e64745 Version: 9934430e2178d5164eb1ac91a9b092f9e7e64745 Version: 9934430e2178d5164eb1ac91a9b092f9e7e64745 Version: 9934430e2178d5164eb1ac91a9b092f9e7e64745 Version: dd80b98bdf0a4b3206739f3513b0518f27a7b4ef Version: d8e39c11f66125f49de55537a6efc8ecadf4a0f7 Version: 5.8.17 ≤ Version: 5.9.2 ≤ |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"fs/smb/client/readdir.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "1915b69e36906968e2b698699d0f219875ae846e",
"status": "affected",
"version": "9934430e2178d5164eb1ac91a9b092f9e7e64745",
"versionType": "git"
},
{
"lessThan": "604feb3e8141bf11f5afd48d36d401fee5af9536",
"status": "affected",
"version": "9934430e2178d5164eb1ac91a9b092f9e7e64745",
"versionType": "git"
},
{
"lessThan": "33106019c3be57b5fc6411cfaad6d98214a51265",
"status": "affected",
"version": "9934430e2178d5164eb1ac91a9b092f9e7e64745",
"versionType": "git"
},
{
"lessThan": "2be31f252ade791b84f7164991f14436aed1d4b9",
"status": "affected",
"version": "9934430e2178d5164eb1ac91a9b092f9e7e64745",
"versionType": "git"
},
{
"lessThan": "c9a8b60ce140a68d172452f418137fc7ddbae7db",
"status": "affected",
"version": "9934430e2178d5164eb1ac91a9b092f9e7e64745",
"versionType": "git"
},
{
"lessThan": "da6e25842431982d5a53cf00d925b98c690f4467",
"status": "affected",
"version": "9934430e2178d5164eb1ac91a9b092f9e7e64745",
"versionType": "git"
},
{
"status": "affected",
"version": "dd80b98bdf0a4b3206739f3513b0518f27a7b4ef",
"versionType": "git"
},
{
"status": "affected",
"version": "d8e39c11f66125f49de55537a6efc8ecadf4a0f7",
"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": [
"fs/smb/client/readdir.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.191",
"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.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.191",
"versionStartIncluding": "5.10",
"vulnerable": true
},
{
"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.57",
"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
},
{
"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\nsmb: client: avoid using uninitialized SIDs in cifs_posix_to_fattr()\n\ncifs_posix_to_fattr() ignores the return value of posix_info_parse().\nWhen a malformed POSIX directory entry is encountered (e.g. invalid\nSID lengths from an untrusted server), posix_info_parse() returns -1\nwithout populating the \u0027parsed\u0027 struct. The uninitialized stack\nmemory in parsed.owner and parsed.group is then passed to\nsid_to_id(), which processes the garbage bytes and passes them to\nrequest_key() to construct a SID string, potentially leaking kernel\nstack contents to the userspace idmap daemon.\n\nFix this by checking the return value and skipping the SID-to-id\nmapping when parsing fails. The remaining fattr fields (timestamps,\nmode, etc.) are populated directly from the \u0027info\u0027 pointer so they\nare unaffected."
}
],
"providerMetadata": {
"dateUpdated": "2026-10-30T12:37:18.935Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/1915b69e36906968e2b698699d0f219875ae846e"
},
{
"url": "https://git.kernel.org/stable/c/604feb3e8141bf11f5afd48d36d401fee5af9536"
},
{
"url": "https://git.kernel.org/stable/c/33106019c3be57b5fc6411cfaad6d98214a51265"
},
{
"url": "https://git.kernel.org/stable/c/2be31f252ade791b84f7164991f14436aed1d4b9"
},
{
"url": "https://git.kernel.org/stable/c/c9a8b60ce140a68d172452f418137fc7ddbae7db"
},
{
"url": "https://git.kernel.org/stable/c/da6e25842431982d5a53cf00d925b98c690f4467"
}
],
"title": "smb: client: avoid using uninitialized SIDs in cifs_posix_to_fattr()",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-97554",
"datePublished": "2026-09-25T10:21:45.851Z",
"dateReserved": "2026-09-24T16:01:01.154Z",
"dateUpdated": "2026-10-30T12:37:18.935Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-68430 (GCVE-0-2026-68430)
Vulnerability from cvelistv5
Published
2026-08-12 00:07
Modified
2026-08-19 16:35
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
drm/amdgpu/gfx8: drop unecessary BUG_ON()
There's no need to crash the kernel for this case.
(cherry picked from commit 4d7c25208ca612b754f3bf39e9f16e725b828891)
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 4e638ae9c1e7a2b85155f2dd91c8105ce109ea7e Version: 4e638ae9c1e7a2b85155f2dd91c8105ce109ea7e Version: 4e638ae9c1e7a2b85155f2dd91c8105ce109ea7e Version: 4e638ae9c1e7a2b85155f2dd91c8105ce109ea7e Version: 4e638ae9c1e7a2b85155f2dd91c8105ce109ea7e Version: 4e638ae9c1e7a2b85155f2dd91c8105ce109ea7e Version: 4e638ae9c1e7a2b85155f2dd91c8105ce109ea7e Version: 4e638ae9c1e7a2b85155f2dd91c8105ce109ea7e |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "69004f1f769f7f6e9e34f4390d98a12aa0b4ab98",
"status": "affected",
"version": "4e638ae9c1e7a2b85155f2dd91c8105ce109ea7e",
"versionType": "git"
},
{
"lessThan": "26ad939b402a754b0624840dfaeebd86d7ff2a22",
"status": "affected",
"version": "4e638ae9c1e7a2b85155f2dd91c8105ce109ea7e",
"versionType": "git"
},
{
"lessThan": "0027afe3dc97a4964a9ea0fb5a3457de06d85f5b",
"status": "affected",
"version": "4e638ae9c1e7a2b85155f2dd91c8105ce109ea7e",
"versionType": "git"
},
{
"lessThan": "ab05af6c345bc8460052c60de657ce6d4a2386f7",
"status": "affected",
"version": "4e638ae9c1e7a2b85155f2dd91c8105ce109ea7e",
"versionType": "git"
},
{
"lessThan": "2404600dca5c0979485c6f2d9c62bd356a98870a",
"status": "affected",
"version": "4e638ae9c1e7a2b85155f2dd91c8105ce109ea7e",
"versionType": "git"
},
{
"lessThan": "f70bd5235d9efc2ee2f70293eea51888c5f2a54d",
"status": "affected",
"version": "4e638ae9c1e7a2b85155f2dd91c8105ce109ea7e",
"versionType": "git"
},
{
"lessThan": "db85aa861b8214fa0d1d8405c01488f604a455a0",
"status": "affected",
"version": "4e638ae9c1e7a2b85155f2dd91c8105ce109ea7e",
"versionType": "git"
},
{
"lessThan": "84a1a8a952ab4b8c23c5dd1f2eea4049cb4914f5",
"status": "affected",
"version": "4e638ae9c1e7a2b85155f2dd91c8105ce109ea7e",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/gpu/drm/amd/amdgpu/gfx_v8_0.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.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.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.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\ndrm/amdgpu/gfx8: drop unecessary BUG_ON()\n\nThere\u0027s no need to crash the kernel for this case.\n\n(cherry picked from commit 4d7c25208ca612b754f3bf39e9f16e725b828891)"
}
],
"providerMetadata": {
"dateUpdated": "2026-08-19T16:35:27.984Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/69004f1f769f7f6e9e34f4390d98a12aa0b4ab98"
},
{
"url": "https://git.kernel.org/stable/c/26ad939b402a754b0624840dfaeebd86d7ff2a22"
},
{
"url": "https://git.kernel.org/stable/c/0027afe3dc97a4964a9ea0fb5a3457de06d85f5b"
},
{
"url": "https://git.kernel.org/stable/c/ab05af6c345bc8460052c60de657ce6d4a2386f7"
},
{
"url": "https://git.kernel.org/stable/c/2404600dca5c0979485c6f2d9c62bd356a98870a"
},
{
"url": "https://git.kernel.org/stable/c/f70bd5235d9efc2ee2f70293eea51888c5f2a54d"
},
{
"url": "https://git.kernel.org/stable/c/db85aa861b8214fa0d1d8405c01488f604a455a0"
},
{
"url": "https://git.kernel.org/stable/c/84a1a8a952ab4b8c23c5dd1f2eea4049cb4914f5"
}
],
"title": "drm/amdgpu/gfx8: drop unecessary BUG_ON()",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-68430",
"datePublished": "2026-08-12T00:07:15.927Z",
"dateReserved": "2026-07-30T09:28:09.393Z",
"dateUpdated": "2026-08-19T16:35:27.984Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-74624 (GCVE-0-2026-74624)
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: nf_conntrack: defer invalid log until after unlock
TCP and SCTP conntrack paths can emit invalid-packet logs while ct->lock
is still held.
When invalid logging is routed to nfnetlink_log and conntrack export is
enabled, the log path can re-enter conntrack netlink glue and dump the
same conntrack again. Protocol attribute dumping may take ct->lock, so
logging while holding that lock can deadlock.
Defer the TCP invalid logs by storing only the minimal log context while
ct->lock is held and emitting the log after unlocking. Also make the TCP
timeout-lowering invalid path return whether a log is needed, then emit
that log after unlocking.
Do the same for the SCTP invalid state-transition log that can be reached
while ct->lock is held.
Add a lockdep assertion to nf_ct_l4proto_log_invalid() so future callers
that log invalid conntracks while holding ct->lock are caught outside TCP
and SCTP as well.
References
| URL | Tags | |||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: d9a6f0d0df1899ff9086a57abc600e414f4b8cdd Version: d9a6f0d0df1899ff9086a57abc600e414f4b8cdd Version: d9a6f0d0df1899ff9086a57abc600e414f4b8cdd Version: d9a6f0d0df1899ff9086a57abc600e414f4b8cdd Version: d9a6f0d0df1899ff9086a57abc600e414f4b8cdd Version: d9a6f0d0df1899ff9086a57abc600e414f4b8cdd |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-74624",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "yes"
},
{
"Technical Impact": "partial"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T19:02:43.340591Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T19:06:02.842Z",
"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.c",
"net/netfilter/nf_conntrack_proto_sctp.c",
"net/netfilter/nf_conntrack_proto_tcp.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "ca97360eba4b3dc67f1804625542f4ccc774242a",
"status": "affected",
"version": "d9a6f0d0df1899ff9086a57abc600e414f4b8cdd",
"versionType": "git"
},
{
"lessThan": "63853eb20bba4e00b7cd0b8cfc19337bbaaf5037",
"status": "affected",
"version": "d9a6f0d0df1899ff9086a57abc600e414f4b8cdd",
"versionType": "git"
},
{
"lessThan": "9480fcf70a5aa9d320088a01c95df0e5e6391f4a",
"status": "affected",
"version": "d9a6f0d0df1899ff9086a57abc600e414f4b8cdd",
"versionType": "git"
},
{
"lessThan": "0424186d570aa4d1ad17f516afb86bd9eaa4f42e",
"status": "affected",
"version": "d9a6f0d0df1899ff9086a57abc600e414f4b8cdd",
"versionType": "git"
},
{
"lessThan": "c0224327b7cbed9d3198e8dbec847281053dcd06",
"status": "affected",
"version": "d9a6f0d0df1899ff9086a57abc600e414f4b8cdd",
"versionType": "git"
},
{
"lessThan": "2d19b95c9723001f214f7a47d67b09f46238f200",
"status": "affected",
"version": "d9a6f0d0df1899ff9086a57abc600e414f4b8cdd",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/netfilter/nf_conntrack_proto.c",
"net/netfilter/nf_conntrack_proto_sctp.c",
"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": "6.1"
},
{
"lessThan": "6.1",
"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": "6.1",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.152",
"versionStartIncluding": "6.1",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.104",
"versionStartIncluding": "6.1",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.45",
"versionStartIncluding": "6.1",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.9",
"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\nnetfilter: nf_conntrack: defer invalid log until after unlock\n\nTCP and SCTP conntrack paths can emit invalid-packet logs while ct-\u003elock\nis still held.\n\nWhen invalid logging is routed to nfnetlink_log and conntrack export is\nenabled, the log path can re-enter conntrack netlink glue and dump the\nsame conntrack again. Protocol attribute dumping may take ct-\u003elock, so\nlogging while holding that lock can deadlock.\n\nDefer the TCP invalid logs by storing only the minimal log context while\nct-\u003elock is held and emitting the log after unlocking. Also make the TCP\ntimeout-lowering invalid path return whether a log is needed, then emit\nthat log after unlocking.\n\nDo the same for the SCTP invalid state-transition log that can be reached\nwhile ct-\u003elock is held.\n\nAdd a lockdep assertion to nf_ct_l4proto_log_invalid() so future callers\nthat log invalid conntracks while holding ct-\u003elock are caught outside TCP\nand SCTP as well."
}
],
"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 hit in nf_conntrack_tcp_packet()/nf_conntrack_sctp_packet() from the NF_INET_PRE_ROUTING and LOCAL_OUT netfilter hooks on received or forwarded TCP/SCTP traffic, so a remote peer can trigger invalid conntrack handling with crafted packets to internet-facing NAT gateways, routers, and servers.\nAC:L - Once nf_conntrack_log_invalid, nflog binding, and NFULNL_CFG_F_CONNTRACK are enabled (the CVE-scoped configuration on monitored firewalls), an attacker deterministically deadlocks by sending invalid-sequence TCP or invalid-state SCTP packets on tracked flows without races or special memory layout.\nPR:N - Triggering the vulnerable conntrack path requires only the ability to send TCP/SCTP packets to a host already running connection tracking with invalid logging; no local account, CAP_NET_ADMIN, or netlink configuration privileges are needed on the attacker side.\nUI:N - Exploitation is driven entirely by network packet delivery and softirq packet processing; no victim must open files, mount filesystems, or perform any interactive action beyond normal network connectivity to the target.\nS:U - The deadlock confines impact to the same kernel networking authority processing the packet; it does not cross VM, container, or IOMMU boundaries to compromise a separate security domain.\nC:N - This is a recursive spinlock deadlock in conntrack invalid logging with no memory corruption, out-of-bounds access, use-after-free, or information-disclosure primitive.\nI:N - The bug causes a lock re-entry hang during logging only; it does not modify kernel or user data, provide arbitrary write primitives, or enable code execution.\nA:H - Re-acquiring ct-\u003elock while it is held deadlocks packet processing on the affected CPU in softirq context, can stall networking on that core, and may escalate to soft lockup or watchdog-induced kernel panic under sustained attack."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-25T05:40:47.114Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/ca97360eba4b3dc67f1804625542f4ccc774242a"
},
{
"url": "https://git.kernel.org/stable/c/63853eb20bba4e00b7cd0b8cfc19337bbaaf5037"
},
{
"url": "https://git.kernel.org/stable/c/9480fcf70a5aa9d320088a01c95df0e5e6391f4a"
},
{
"url": "https://git.kernel.org/stable/c/0424186d570aa4d1ad17f516afb86bd9eaa4f42e"
},
{
"url": "https://git.kernel.org/stable/c/c0224327b7cbed9d3198e8dbec847281053dcd06"
},
{
"url": "https://git.kernel.org/stable/c/2d19b95c9723001f214f7a47d67b09f46238f200"
}
],
"title": "netfilter: nf_conntrack: defer invalid log until after unlock",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-74624",
"datePublished": "2026-08-22T15:32:07.193Z",
"dateReserved": "2026-08-15T05:44:03.921Z",
"dateUpdated": "2026-10-16T19:06:02.842Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-74653 (GCVE-0-2026-74653)
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:
serial: 8250_of: clear stuck empty-FIFO RX-timeout on LPC32xx
The NXP LPC32xx UART (PORT_LPC3220) can latch an RX character-timeout
interrupt while the RX FIFO is empty: IIR reports UART_IIR_RX_TIMEOUT
(0x0c) but LSR.DR is clear. A character timeout is only cleared by
reading RHR, but serial8250_rx_chars() reads RHR only when LSR.DR is
set, so nothing ever clears the condition. The interrupt is
level-triggered and re-fires immediately, so on a single-core ARM926
the resulting interrupt storm livelocks the CPU.
It is reproducible when userspace repeatedly opens the front-panel port
(ttyS1): serial8250_do_set_termios() re-enables interrupts on unlock and
the handler then spins forever with iir=0xcc lsr=0x60 ier=0x05, tripping
the soft-lockup detector in serial8250_handle_irq_locked().
LPC32xx has no dedicated 8250 glue driver, it's driven by the generic
8250_of. Add a hardware specific handle_irq for PORT_LPC3220, wired up
in of_platform_serial_setup() the same way fsl8250_handle_irq is
installed. The handler follows dw8250_handle_irq(): on an RX timeout
with an empty FIFO (LSR.DR and LSR.BI clear) it does one throwaway RHR
read to clear the condition, then calls serial8250_handle_irq_locked().
No real received data is ever discarded, and it is a no-op on healthy
UARTs which never report a timeout with DR clear.
This is the same class of bug already worked around in other 8250 drivers;
see commit 424d79183af0 ("serial: 8250_dw: Avoid "too much work" from bogus rx timeout interrupt")
which reports the identical iir=0xcc/lsr=0x60. See also
UART_RX_TIMEOUT_QUIRK in 8250_omap, and the note in 8250_bcm7271.
References
| URL | Tags | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/tty/serial/8250/8250_of.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "cc325ce1c40a111824827532ac132afb3d1c342b",
"status": "affected",
"version": "e6e912c4964ce5976e508881207dfa96d5f856d7",
"versionType": "git"
},
{
"lessThan": "c321dc5172c8c66e21ffbeeb7a2ebb88ae6fd4c3",
"status": "affected",
"version": "e6e912c4964ce5976e508881207dfa96d5f856d7",
"versionType": "git"
},
{
"lessThan": "3ce24bc4d115336218e59b7e286fd3a79f4fc4c6",
"status": "affected",
"version": "e6e912c4964ce5976e508881207dfa96d5f856d7",
"versionType": "git"
},
{
"lessThan": "7795e8abedc86438cae0454602cbf9038b94bf38",
"status": "affected",
"version": "e6e912c4964ce5976e508881207dfa96d5f856d7",
"versionType": "git"
},
{
"lessThan": "1423415471274abda87024967d7fe2206ceee0ea",
"status": "affected",
"version": "e6e912c4964ce5976e508881207dfa96d5f856d7",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/tty/serial/8250/8250_of.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": "6.6.*",
"status": "unaffected",
"version": "6.6.160",
"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": "6.6.160",
"versionStartIncluding": "2.6.36",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.106",
"versionStartIncluding": "2.6.36",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.45",
"versionStartIncluding": "2.6.36",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.9",
"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\nserial: 8250_of: clear stuck empty-FIFO RX-timeout on LPC32xx\n\nThe NXP LPC32xx UART (PORT_LPC3220) can latch an RX character-timeout\ninterrupt while the RX FIFO is empty: IIR reports UART_IIR_RX_TIMEOUT\n(0x0c) but LSR.DR is clear. A character timeout is only cleared by\nreading RHR, but serial8250_rx_chars() reads RHR only when LSR.DR is\nset, so nothing ever clears the condition. The interrupt is\nlevel-triggered and re-fires immediately, so on a single-core ARM926\nthe resulting interrupt storm livelocks the CPU.\n\nIt is reproducible when userspace repeatedly opens the front-panel port\n(ttyS1): serial8250_do_set_termios() re-enables interrupts on unlock and\nthe handler then spins forever with iir=0xcc lsr=0x60 ier=0x05, tripping\nthe soft-lockup detector in serial8250_handle_irq_locked().\n\nLPC32xx has no dedicated 8250 glue driver, it\u0027s driven by the generic\n8250_of. Add a hardware specific handle_irq for PORT_LPC3220, wired up\nin of_platform_serial_setup() the same way fsl8250_handle_irq is\ninstalled. The handler follows dw8250_handle_irq(): on an RX timeout\nwith an empty FIFO (LSR.DR and LSR.BI clear) it does one throwaway RHR\nread to clear the condition, then calls serial8250_handle_irq_locked().\nNo real received data is ever discarded, and it is a no-op on healthy\nUARTs which never report a timeout with DR clear.\n\nThis is the same class of bug already worked around in other 8250 drivers;\nsee commit 424d79183af0 (\"serial: 8250_dw: Avoid \"too much work\" from bogus rx timeout interrupt\")\nwhich reports the identical iir=0xcc/lsr=0x60. See also\nUART_RX_TIMEOUT_QUIRK in 8250_omap, and the note in 8250_bcm7271."
}
],
"providerMetadata": {
"dateUpdated": "2026-10-21T12:46:06.161Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/cc325ce1c40a111824827532ac132afb3d1c342b"
},
{
"url": "https://git.kernel.org/stable/c/c321dc5172c8c66e21ffbeeb7a2ebb88ae6fd4c3"
},
{
"url": "https://git.kernel.org/stable/c/3ce24bc4d115336218e59b7e286fd3a79f4fc4c6"
},
{
"url": "https://git.kernel.org/stable/c/7795e8abedc86438cae0454602cbf9038b94bf38"
},
{
"url": "https://git.kernel.org/stable/c/1423415471274abda87024967d7fe2206ceee0ea"
}
],
"title": "serial: 8250_of: clear stuck empty-FIFO RX-timeout on LPC32xx",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-74653",
"datePublished": "2026-08-22T15:32:28.521Z",
"dateReserved": "2026-08-15T05:44:03.923Z",
"dateUpdated": "2026-10-21T12:46:06.161Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-43184 (GCVE-0-2026-43184)
Vulnerability from cvelistv5
Published
2026-05-06 11:27
Modified
2026-08-05 12:26
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
rnbd-srv: Zero the rsp buffer before using it
Before using the data buffer to send back the response message, zero it
completely. This prevents any stray bytes to be picked up by the client
side when there the message is exchanged between different protocol
versions.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 2de6c8de192b9341ffa5e84afe1ce6196d4eef41 Version: 2de6c8de192b9341ffa5e84afe1ce6196d4eef41 Version: 2de6c8de192b9341ffa5e84afe1ce6196d4eef41 Version: 2de6c8de192b9341ffa5e84afe1ce6196d4eef41 Version: 2de6c8de192b9341ffa5e84afe1ce6196d4eef41 Version: 2de6c8de192b9341ffa5e84afe1ce6196d4eef41 Version: 2de6c8de192b9341ffa5e84afe1ce6196d4eef41 Version: 2de6c8de192b9341ffa5e84afe1ce6196d4eef41 |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/block/rnbd/rnbd-srv.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "e4272754063d52c9ad0169865add8816ba696471",
"status": "affected",
"version": "2de6c8de192b9341ffa5e84afe1ce6196d4eef41",
"versionType": "git"
},
{
"lessThan": "e2cacec7d4291300a282feb3af8eba57b93b15aa",
"status": "affected",
"version": "2de6c8de192b9341ffa5e84afe1ce6196d4eef41",
"versionType": "git"
},
{
"lessThan": "b646e54d23b9b592d612a2036aab14e0f6c14206",
"status": "affected",
"version": "2de6c8de192b9341ffa5e84afe1ce6196d4eef41",
"versionType": "git"
},
{
"lessThan": "30868a6a5238849d554295aff3ce61d242d7fad8",
"status": "affected",
"version": "2de6c8de192b9341ffa5e84afe1ce6196d4eef41",
"versionType": "git"
},
{
"lessThan": "7aac0a30dcf41cdb510526740d9a2ab1520c5d98",
"status": "affected",
"version": "2de6c8de192b9341ffa5e84afe1ce6196d4eef41",
"versionType": "git"
},
{
"lessThan": "c94ede3c436dfbd9cedd9cb69f604f6fc901b6a2",
"status": "affected",
"version": "2de6c8de192b9341ffa5e84afe1ce6196d4eef41",
"versionType": "git"
},
{
"lessThan": "852475278ca5e96e0c0275950e1a84203e602b33",
"status": "affected",
"version": "2de6c8de192b9341ffa5e84afe1ce6196d4eef41",
"versionType": "git"
},
{
"lessThan": "69d26698e4fd44935510553809007151b2fe4db5",
"status": "affected",
"version": "2de6c8de192b9341ffa5e84afe1ce6196d4eef41",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/block/rnbd/rnbd-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.10.*",
"status": "unaffected",
"version": "5.10.252",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.202",
"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.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": "5.10.252",
"versionStartIncluding": "5.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.202",
"versionStartIncluding": "5.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.165",
"versionStartIncluding": "5.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.128",
"versionStartIncluding": "5.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.75",
"versionStartIncluding": "5.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.16",
"versionStartIncluding": "5.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.19.6",
"versionStartIncluding": "5.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.0",
"versionStartIncluding": "5.8",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nrnbd-srv: Zero the rsp buffer before using it\n\nBefore using the data buffer to send back the response message, zero it\ncompletely. This prevents any stray bytes to be picked up by the client\nside when there the message is exchanged between different protocol\nversions."
}
],
"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 - RNBD server is reached over the RTRS RDMA network transport, which listens for remote RDMA clients and dispatches their RNBD protocol messages. The vulnerable responses are generated from network-originated session-info/open requests.\nAC:L - No race or fragile timing is required; an attacker only needs to establish a normal RTRS/RNBD session and send the relevant request. The vulnerable buffers are used deterministically in the response path.\nPR:N - RTRS connection setup checks protocol magic/version and session naming, but there is no authentication before RNBD_MSG_SESS_INFO is processed. The leak is reachable before any remote block device is successfully opened.\nUI:N - Exploitation does not require any victim action after the RNBD/RTRS server is loaded and listening. A remote peer can initiate the protocol exchange directly.\nS:U - The vulnerability discloses memory from the same kernel/server security authority that processes the RNBD request. It does not cross a VM, IOMMU, or sandbox boundary.\nC:H - The server sends uninitialized bytes from unzeroed RTRS/RNBD response buffers back to the client in padding/reserved fields. Although each response is bounded, it is remotely repeatable across sessions and can expose stale kernel memory, so the higher confidentiality impact is chosen.\nI:N - The bug is an information disclosure caused by missing zero-initialization of response buffers. It does not provide a write primitive or alter server state beyond normal protocol behavior.\nA:N - The vulnerable path does not corrupt memory, panic, hang, or otherwise crash the server. It only leaks bytes in otherwise valid response messages."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-05T12:26:22.170Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/e4272754063d52c9ad0169865add8816ba696471"
},
{
"url": "https://git.kernel.org/stable/c/e2cacec7d4291300a282feb3af8eba57b93b15aa"
},
{
"url": "https://git.kernel.org/stable/c/b646e54d23b9b592d612a2036aab14e0f6c14206"
},
{
"url": "https://git.kernel.org/stable/c/30868a6a5238849d554295aff3ce61d242d7fad8"
},
{
"url": "https://git.kernel.org/stable/c/7aac0a30dcf41cdb510526740d9a2ab1520c5d98"
},
{
"url": "https://git.kernel.org/stable/c/c94ede3c436dfbd9cedd9cb69f604f6fc901b6a2"
},
{
"url": "https://git.kernel.org/stable/c/852475278ca5e96e0c0275950e1a84203e602b33"
},
{
"url": "https://git.kernel.org/stable/c/69d26698e4fd44935510553809007151b2fe4db5"
}
],
"title": "rnbd-srv: Zero the rsp buffer before using it",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-43184",
"datePublished": "2026-05-06T11:27:55.672Z",
"dateReserved": "2026-05-01T14:12:55.991Z",
"dateUpdated": "2026-08-05T12:26:22.170Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-93785 (GCVE-0-2026-93785)
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:
cifs: validate idmap key payload length
The cifs.idmap key type stores its payload length in key->datalen, which
is limited to U16_MAX. Accepting a larger key payload truncates the
recorded length and can make later users interpret the payload using
inconsistent bounds.
Reject oversized preparsed payloads before allocating or copying them.
This keeps key->datalen consistent with the stored data for both inline
and separately allocated idmap payloads.
References
| URL | Tags | ||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 21fed0d5b763b94a7d1568c27d0cce892ab8d43e Version: 21fed0d5b763b94a7d1568c27d0cce892ab8d43e Version: 21fed0d5b763b94a7d1568c27d0cce892ab8d43e Version: 21fed0d5b763b94a7d1568c27d0cce892ab8d43e Version: 21fed0d5b763b94a7d1568c27d0cce892ab8d43e Version: 21fed0d5b763b94a7d1568c27d0cce892ab8d43e Version: 21fed0d5b763b94a7d1568c27d0cce892ab8d43e |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"fs/smb/client/cifsacl.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "eeac976b74b4f697cfc517187b7cbfd72652dbbc",
"status": "affected",
"version": "21fed0d5b763b94a7d1568c27d0cce892ab8d43e",
"versionType": "git"
},
{
"lessThan": "125b05ac8ca8758950e4369c1542d57a162f504c",
"status": "affected",
"version": "21fed0d5b763b94a7d1568c27d0cce892ab8d43e",
"versionType": "git"
},
{
"lessThan": "945f6cde6bcf8f08f6fa5df8882b1b9582e55efa",
"status": "affected",
"version": "21fed0d5b763b94a7d1568c27d0cce892ab8d43e",
"versionType": "git"
},
{
"lessThan": "3a4a34a732e8a08309eed0a74314dbd9f2f1c972",
"status": "affected",
"version": "21fed0d5b763b94a7d1568c27d0cce892ab8d43e",
"versionType": "git"
},
{
"lessThan": "6cfeef221ac00d63c07f6122f58e6159bde69ca0",
"status": "affected",
"version": "21fed0d5b763b94a7d1568c27d0cce892ab8d43e",
"versionType": "git"
},
{
"lessThan": "8b12f65d7caf16d124098cb4895a203367d35b57",
"status": "affected",
"version": "21fed0d5b763b94a7d1568c27d0cce892ab8d43e",
"versionType": "git"
},
{
"lessThan": "455488cd5054bcc59db40fa1cc2c004031a5b2a5",
"status": "affected",
"version": "21fed0d5b763b94a7d1568c27d0cce892ab8d43e",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"fs/smb/client/cifsacl.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.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.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.222",
"versionStartIncluding": "3.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.189",
"versionStartIncluding": "3.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.158",
"versionStartIncluding": "3.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.111",
"versionStartIncluding": "3.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.53",
"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\ncifs: validate idmap key payload length\n\nThe cifs.idmap key type stores its payload length in key-\u003edatalen, which\nis limited to U16_MAX. Accepting a larger key payload truncates the\nrecorded length and can make later users interpret the payload using\ninconsistent bounds.\n\nReject oversized preparsed payloads before allocating or copying them.\nThis keeps key-\u003edatalen consistent with the stored data for both inline\nand separately allocated idmap payloads."
}
],
"providerMetadata": {
"dateUpdated": "2026-10-03T10:57:20.267Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/eeac976b74b4f697cfc517187b7cbfd72652dbbc"
},
{
"url": "https://git.kernel.org/stable/c/125b05ac8ca8758950e4369c1542d57a162f504c"
},
{
"url": "https://git.kernel.org/stable/c/945f6cde6bcf8f08f6fa5df8882b1b9582e55efa"
},
{
"url": "https://git.kernel.org/stable/c/3a4a34a732e8a08309eed0a74314dbd9f2f1c972"
},
{
"url": "https://git.kernel.org/stable/c/6cfeef221ac00d63c07f6122f58e6159bde69ca0"
},
{
"url": "https://git.kernel.org/stable/c/8b12f65d7caf16d124098cb4895a203367d35b57"
},
{
"url": "https://git.kernel.org/stable/c/455488cd5054bcc59db40fa1cc2c004031a5b2a5"
}
],
"title": "cifs: validate idmap key payload length",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-93785",
"datePublished": "2026-09-24T16:02:18.964Z",
"dateReserved": "2026-09-18T17:59:28.788Z",
"dateUpdated": "2026-10-03T10:57:20.267Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-80893 (GCVE-0-2026-80893)
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:
mm/hugetlb: fix swap entry corruption when clearing uffd-wp at fork()
copy_hugetlb_page_range() clears the uffd-wp bit of migration and hwpoison
entries with huge_pte_clear_uffd_wp(), which operates on the present-PTE
bit position. Swap entries keep the uffd-wp state elsewhere -- the
migration branch reads and sets it with pte_swp_uffd_wp() and
pte_swp_mkuffd_wp() -- and the present-PTE position falls into the swap
payload. On x86-64 it lands in the inverted swap offset, where a
naturally-aligned hugetlb PFN always has the affected bit set, so the
clear advances the encoded PFN by two pages.
No userfaultfd needs to be involved: the clear is guarded only by the
child VMA not being uffd-wp registered, so a plain fork() with an
in-flight hugetlb migration entry (or a poisoned hugetlb page) corrupts
the entry copied into the child. Instrumenting the clear and forking
after MADV_HWPOISON on a 2MB anon hugetlb page shows:
offset before=120e00
offset after =120e02
The fallout is mostly latent: rmap walks match migration entries by folio
range and remove_migration_pte() rebuilds the PTE from the folio, so a
within-folio PFN skew heals once migration completes. But any path that
re-encodes the corrupted offset -- e.g. hugetlb_change_protection()
rewriting a writable migration entry via
make_readable_migration_entry(swp_offset(entry)) -- propagates it.
Migration entries legitimately carry uffd-wp, so clear it with
pte_swp_clear_uffd_wp(), matching copy_nonpresent_pte() and
move_huge_pte().
A hwpoison entry, on the other hand, never carries the uffd-wp bit: it is
installed fresh by make_hwpoison_entry() (try_to_unmap_one() does not
preserve uffd-wp on the hwpoison path) and hugetlb_change_protection()
leaves hwpoison entries untouched. There was nothing to clear there, only
the corruption, so drop the clear entirely.
References
| URL | Tags | |||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: bc70fbf269fdff410b0b6d75c3770b9f59117b90 Version: bc70fbf269fdff410b0b6d75c3770b9f59117b90 Version: bc70fbf269fdff410b0b6d75c3770b9f59117b90 Version: bc70fbf269fdff410b0b6d75c3770b9f59117b90 Version: bc70fbf269fdff410b0b6d75c3770b9f59117b90 Version: bc70fbf269fdff410b0b6d75c3770b9f59117b90 |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"mm/hugetlb.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "f1b1311c0352873137768bac5a126e491271a747",
"status": "affected",
"version": "bc70fbf269fdff410b0b6d75c3770b9f59117b90",
"versionType": "git"
},
{
"lessThan": "69cb5825d9988c7944bc9f1dc08cb233655405a7",
"status": "affected",
"version": "bc70fbf269fdff410b0b6d75c3770b9f59117b90",
"versionType": "git"
},
{
"lessThan": "8b0de7005b148738d79d6c45594d566489948a68",
"status": "affected",
"version": "bc70fbf269fdff410b0b6d75c3770b9f59117b90",
"versionType": "git"
},
{
"lessThan": "2b9a07002c2f296aa6a9c591213933d3492e3089",
"status": "affected",
"version": "bc70fbf269fdff410b0b6d75c3770b9f59117b90",
"versionType": "git"
},
{
"lessThan": "2fa11c60c9c06bafc19cf4d9efdaa36a38079e87",
"status": "affected",
"version": "bc70fbf269fdff410b0b6d75c3770b9f59117b90",
"versionType": "git"
},
{
"lessThan": "83abe2fd5b3aeb3123b5408a5a91709c5538fb23",
"status": "affected",
"version": "bc70fbf269fdff410b0b6d75c3770b9f59117b90",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"mm/hugetlb.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.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.19",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.151",
"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/hugetlb: fix swap entry corruption when clearing uffd-wp at fork()\n\ncopy_hugetlb_page_range() clears the uffd-wp bit of migration and hwpoison\nentries with huge_pte_clear_uffd_wp(), which operates on the present-PTE\nbit position. Swap entries keep the uffd-wp state elsewhere -- the\nmigration branch reads and sets it with pte_swp_uffd_wp() and\npte_swp_mkuffd_wp() -- and the present-PTE position falls into the swap\npayload. On x86-64 it lands in the inverted swap offset, where a\nnaturally-aligned hugetlb PFN always has the affected bit set, so the\nclear advances the encoded PFN by two pages.\n\nNo userfaultfd needs to be involved: the clear is guarded only by the\nchild VMA not being uffd-wp registered, so a plain fork() with an\nin-flight hugetlb migration entry (or a poisoned hugetlb page) corrupts\nthe entry copied into the child. Instrumenting the clear and forking\nafter MADV_HWPOISON on a 2MB anon hugetlb page shows:\n\n offset before=120e00\n offset after =120e02\n\nThe fallout is mostly latent: rmap walks match migration entries by folio\nrange and remove_migration_pte() rebuilds the PTE from the folio, so a\nwithin-folio PFN skew heals once migration completes. But any path that\nre-encodes the corrupted offset -- e.g. hugetlb_change_protection()\nrewriting a writable migration entry via\nmake_readable_migration_entry(swp_offset(entry)) -- propagates it.\n\nMigration entries legitimately carry uffd-wp, so clear it with\npte_swp_clear_uffd_wp(), matching copy_nonpresent_pte() and\nmove_huge_pte().\n\nA hwpoison entry, on the other hand, never carries the uffd-wp bit: it is\ninstalled fresh by make_hwpoison_entry() (try_to_unmap_one() does not\npreserve uffd-wp on the hwpoison path) and hugetlb_change_protection()\nleaves hwpoison entries untouched. There was nothing to clear there, only\nthe corruption, so drop the clear entirely."
}
],
"providerMetadata": {
"dateUpdated": "2026-09-04T17:11:09.199Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/f1b1311c0352873137768bac5a126e491271a747"
},
{
"url": "https://git.kernel.org/stable/c/69cb5825d9988c7944bc9f1dc08cb233655405a7"
},
{
"url": "https://git.kernel.org/stable/c/8b0de7005b148738d79d6c45594d566489948a68"
},
{
"url": "https://git.kernel.org/stable/c/2b9a07002c2f296aa6a9c591213933d3492e3089"
},
{
"url": "https://git.kernel.org/stable/c/2fa11c60c9c06bafc19cf4d9efdaa36a38079e87"
},
{
"url": "https://git.kernel.org/stable/c/83abe2fd5b3aeb3123b5408a5a91709c5538fb23"
}
],
"title": "mm/hugetlb: fix swap entry corruption when clearing uffd-wp at fork()",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-80893",
"datePublished": "2026-09-04T17:11:09.199Z",
"dateReserved": "2026-08-26T14:34:25.800Z",
"dateUpdated": "2026-09-04T17:11:09.199Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-98358 (GCVE-0-2026-98358)
Vulnerability from cvelistv5
Published
2026-10-06 08:46
Modified
2026-10-19 09:18
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
IB/iser: reject a remote invalidation of an unregistered direction
A write command whose data is sent entirely as immediate data is not
registered. iser_reg_mem_fastreg() takes the DMA key path and leaves
rdma_reg[ISER_DIR_OUT].desc at NULL, while iser_dma_map_task_data() has
already set dir[ISER_DIR_OUT].
iser_check_remote_inv() looks at dir[] alone and hands the descriptor to
iser_inv_desc(), which reads desc->sig_protected. A target that answers
such a command with IB_WR_SEND_WITH_INV faults the initiator.
Leaving those commands unregistered is deliberate.
The same function already terminates the connection when a target sends
a remote invalidation the initiator did not ask for. A target that
invalidates a direction that was never registered is in the same class,
so give it the same answer.
Oops: general protection fault, probably for non-canonical address 0xdffffc0000000004: 0000 [#1] SMP KASAN NOPTI
KASAN: null-ptr-deref in range [0x0000000000000020-0x0000000000000027]
CPU: 0 UID: 0 PID: 40 Comm: kworker/u8:2 Not tainted 7.2.0-rc5-ISERHOST-gf5098b6bae76-dirty #3 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: rxe_wq do_work
RIP: 0010:iser_task_rsp+0x6d6/0xec0
Code: 48 c1 ea 03 80 3c 02 00 0f 85 ba 06 00 00 48 8b 9b 78 01 00 00 48 b8 00 00 00 00 00 fc ff df 48 8d 7b 20 48 89 fa 48 c1 ea 03 <0f> b6 04 02 84 c0 74 06 0f 8e 76 06 00 00 80 7b 20 00 0f 84 3d 04
RSP: 0018:ffff88811b008db8 EFLAGS: 00010202
RAX: dffffc0000000000 RBX: 0000000000000000 RCX: 0000000000001848
RDX: 0000000000000004 RSI: 1ffff11021587b12 RDI: 0000000000000020
RBP: ffff88810adc1ae4 R08: ffff888109b7f860 R09: ffffffff90a922c0
R10: ffff88810adc1a1c R11: 000000000000003c R12: ffff888109b7f800
R13: ffff88810adc1acc R14: ffff888109b7f820 R15: 0000000000000000
FS: 0000000000000000(0000) GS:ffff88818a676000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 00000000005afe2b CR3: 000000010af23005 CR4: 0000000000770ef0
PKRU: 55555554
Call Trace:
<IRQ>
__ib_process_cq+0xe1/0x390
ib_poll_handler+0x6e/0x200
irq_poll_softirq+0x1df/0x480
? clockevents_program_event+0x2ba/0x860
? __pfx_irq_poll_softirq+0x10/0x10
handle_softirqs+0x18e/0x590
? __pfx_handle_softirqs+0x10/0x10
? __hrtimer_rearm_deferred+0x156/0x450
do_softirq+0x3b/0x60
</IRQ>
<TASK>
__local_bh_enable_ip+0x61/0x70
__alloc_skb+0x732/0x890
? _raw_spin_lock_irqsave+0x85/0xe0
? __pfx___alloc_skb+0x10/0x10
? _raw_read_unlock_irqrestore+0x16/0x50
rxe_init_packet+0x16b/0x4f0
prepare_ack_packet+0xb8/0x830
rxe_receiver+0x499/0x9980
? __pfx_rxe_receiver+0x10/0x10
? rxe_completer+0x29e5/0x38c0
? hrtimer_start_range_ns_common+0x75f/0x1730
? hrtimer_start_range_ns+0xa6/0x2c0
? __pfx__raw_spin_lock_irqsave+0x10/0x10
? __pfx_rxe_receiver+0x10/0x10
do_work+0x144/0x470
process_one_work+0x633/0x1030
? assign_work+0x11d/0x370
worker_thread+0x45b/0xd10
? __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 ]---
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 59caaed7a72a0e3750dfb84636dae6b781559310 Version: 59caaed7a72a0e3750dfb84636dae6b781559310 Version: 59caaed7a72a0e3750dfb84636dae6b781559310 Version: 59caaed7a72a0e3750dfb84636dae6b781559310 Version: 59caaed7a72a0e3750dfb84636dae6b781559310 Version: 59caaed7a72a0e3750dfb84636dae6b781559310 Version: 59caaed7a72a0e3750dfb84636dae6b781559310 Version: 59caaed7a72a0e3750dfb84636dae6b781559310 |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/infiniband/ulp/iser/iser_initiator.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "198e4db9add54a50cce60a5d80b8f0ee5456b65a",
"status": "affected",
"version": "59caaed7a72a0e3750dfb84636dae6b781559310",
"versionType": "git"
},
{
"lessThan": "b9e37452915feaa8422af87dea5d0c16a7d1ff13",
"status": "affected",
"version": "59caaed7a72a0e3750dfb84636dae6b781559310",
"versionType": "git"
},
{
"lessThan": "19ddd4af7fce9200e70882f622011e9dd130f427",
"status": "affected",
"version": "59caaed7a72a0e3750dfb84636dae6b781559310",
"versionType": "git"
},
{
"lessThan": "9d145a2d8d6f8f2cc460b80df41870819048f2a0",
"status": "affected",
"version": "59caaed7a72a0e3750dfb84636dae6b781559310",
"versionType": "git"
},
{
"lessThan": "b4d278c91209931199db9c0836dc2e21a7593dad",
"status": "affected",
"version": "59caaed7a72a0e3750dfb84636dae6b781559310",
"versionType": "git"
},
{
"lessThan": "6ed3ebaff3345837f0528d85bd39ce573c7b9a41",
"status": "affected",
"version": "59caaed7a72a0e3750dfb84636dae6b781559310",
"versionType": "git"
},
{
"lessThan": "ceecf3f9c322fc6937a66682942a26ad13a34a07",
"status": "affected",
"version": "59caaed7a72a0e3750dfb84636dae6b781559310",
"versionType": "git"
},
{
"lessThan": "d85f0f0a7c85756fc992c70d869706f19dac9259",
"status": "affected",
"version": "59caaed7a72a0e3750dfb84636dae6b781559310",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/infiniband/ulp/iser/iser_initiator.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.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.112",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.54",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.8",
"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.5",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.222",
"versionStartIncluding": "4.5",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.189",
"versionStartIncluding": "4.5",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.158",
"versionStartIncluding": "4.5",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.112",
"versionStartIncluding": "4.5",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.54",
"versionStartIncluding": "4.5",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.8",
"versionStartIncluding": "4.5",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"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/iser: reject a remote invalidation of an unregistered direction\n\nA write command whose data is sent entirely as immediate data is not\nregistered. iser_reg_mem_fastreg() takes the DMA key path and leaves\nrdma_reg[ISER_DIR_OUT].desc at NULL, while iser_dma_map_task_data() has\nalready set dir[ISER_DIR_OUT].\n\niser_check_remote_inv() looks at dir[] alone and hands the descriptor to\niser_inv_desc(), which reads desc-\u003esig_protected. A target that answers\nsuch a command with IB_WR_SEND_WITH_INV faults the initiator.\nLeaving those commands unregistered is deliberate.\n\nThe same function already terminates the connection when a target sends\na remote invalidation the initiator did not ask for. A target that\ninvalidates a direction that was never registered is in the same class,\nso give it the same answer.\n\n Oops: general protection fault, probably for non-canonical address 0xdffffc0000000004: 0000 [#1] SMP KASAN NOPTI\n KASAN: null-ptr-deref in range [0x0000000000000020-0x0000000000000027]\n CPU: 0 UID: 0 PID: 40 Comm: kworker/u8:2 Not tainted 7.2.0-rc5-ISERHOST-gf5098b6bae76-dirty #3 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: rxe_wq do_work\n RIP: 0010:iser_task_rsp+0x6d6/0xec0\n Code: 48 c1 ea 03 80 3c 02 00 0f 85 ba 06 00 00 48 8b 9b 78 01 00 00 48 b8 00 00 00 00 00 fc ff df 48 8d 7b 20 48 89 fa 48 c1 ea 03 \u003c0f\u003e b6 04 02 84 c0 74 06 0f 8e 76 06 00 00 80 7b 20 00 0f 84 3d 04\n RSP: 0018:ffff88811b008db8 EFLAGS: 00010202\n RAX: dffffc0000000000 RBX: 0000000000000000 RCX: 0000000000001848\n RDX: 0000000000000004 RSI: 1ffff11021587b12 RDI: 0000000000000020\n RBP: ffff88810adc1ae4 R08: ffff888109b7f860 R09: ffffffff90a922c0\n R10: ffff88810adc1a1c R11: 000000000000003c R12: ffff888109b7f800\n R13: ffff88810adc1acc R14: ffff888109b7f820 R15: 0000000000000000\n FS: 0000000000000000(0000) GS:ffff88818a676000(0000) knlGS:0000000000000000\n CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033\n CR2: 00000000005afe2b CR3: 000000010af23005 CR4: 0000000000770ef0\n PKRU: 55555554\n Call Trace:\n \u003cIRQ\u003e\n __ib_process_cq+0xe1/0x390\n ib_poll_handler+0x6e/0x200\n irq_poll_softirq+0x1df/0x480\n ? clockevents_program_event+0x2ba/0x860\n ? __pfx_irq_poll_softirq+0x10/0x10\n handle_softirqs+0x18e/0x590\n ? __pfx_handle_softirqs+0x10/0x10\n ? __hrtimer_rearm_deferred+0x156/0x450\n do_softirq+0x3b/0x60\n \u003c/IRQ\u003e\n \u003cTASK\u003e\n __local_bh_enable_ip+0x61/0x70\n __alloc_skb+0x732/0x890\n ? _raw_spin_lock_irqsave+0x85/0xe0\n ? __pfx___alloc_skb+0x10/0x10\n ? _raw_read_unlock_irqrestore+0x16/0x50\n rxe_init_packet+0x16b/0x4f0\n prepare_ack_packet+0xb8/0x830\n rxe_receiver+0x499/0x9980\n ? __pfx_rxe_receiver+0x10/0x10\n ? rxe_completer+0x29e5/0x38c0\n ? hrtimer_start_range_ns_common+0x75f/0x1730\n ? hrtimer_start_range_ns+0xa6/0x2c0\n ? __pfx__raw_spin_lock_irqsave+0x10/0x10\n ? __pfx_rxe_receiver+0x10/0x10\n do_work+0x144/0x470\n process_one_work+0x633/0x1030\n ? assign_work+0x11d/0x370\n worker_thread+0x45b/0xd10\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 ]---"
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T09:18:08.867Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/198e4db9add54a50cce60a5d80b8f0ee5456b65a"
},
{
"url": "https://git.kernel.org/stable/c/b9e37452915feaa8422af87dea5d0c16a7d1ff13"
},
{
"url": "https://git.kernel.org/stable/c/19ddd4af7fce9200e70882f622011e9dd130f427"
},
{
"url": "https://git.kernel.org/stable/c/9d145a2d8d6f8f2cc460b80df41870819048f2a0"
},
{
"url": "https://git.kernel.org/stable/c/b4d278c91209931199db9c0836dc2e21a7593dad"
},
{
"url": "https://git.kernel.org/stable/c/6ed3ebaff3345837f0528d85bd39ce573c7b9a41"
},
{
"url": "https://git.kernel.org/stable/c/ceecf3f9c322fc6937a66682942a26ad13a34a07"
},
{
"url": "https://git.kernel.org/stable/c/d85f0f0a7c85756fc992c70d869706f19dac9259"
}
],
"title": "IB/iser: reject a remote invalidation of an unregistered direction",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-98358",
"datePublished": "2026-10-06T08:46:45.128Z",
"dateReserved": "2026-09-25T10:25:14.344Z",
"dateUpdated": "2026-10-19T09:18:08.867Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-72213 (GCVE-0-2026-72213)
Vulnerability from cvelistv5
Published
2026-08-15 05:54
Modified
2026-10-30 12:28
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
mm/hugetlb: fix hugetlb cgroup rsvd charge/uncharge mismatch
In alloc_hugetlb_folio(), a single h_cg pointer is used for both the rsvd
and non-rsvd hugetlb cgroup charges. When map_chg is set,
hugetlb_cgroup_charge_cgroup_rsvd() stores the charged cgroup in h_cg, but
the immediately following hugetlb_cgroup_charge_cgroup() overwrites h_cg
with the non-rsvd cgroup pointer.
As a result, hugetlb_cgroup_commit_charge_rsvd() stores the wrong
(non-rsvd) cgroup pointer into the folio's rsvd slot.
When the folio is later freed, free_huge_folio() unconditionally calls
both hugetlb_cgroup_uncharge_folio() and
hugetlb_cgroup_uncharge_folio_rsvd(). The rsvd uncharge reads back the
wrong cgroup from the folio and decrements a counter that was never
charged for that cgroup, causing a page_counter underflow:
page_counter underflow: -512 nr_pages=512
WARNING: mm/page_counter.c:61 at page_counter_cancel
Fix this by introducing a separate h_cg_rsvd pointer exclusively for the
rsvd charge path, keeping the rsvd and non-rsvd charges fully independent
through their charge, commit, and error uncharge paths.
References
| URL | Tags | |||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 08cf9faf7558020aed6a0da5810b824b07139dfa Version: 08cf9faf7558020aed6a0da5810b824b07139dfa Version: 08cf9faf7558020aed6a0da5810b824b07139dfa Version: 08cf9faf7558020aed6a0da5810b824b07139dfa Version: 08cf9faf7558020aed6a0da5810b824b07139dfa Version: 08cf9faf7558020aed6a0da5810b824b07139dfa |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-72213",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "partial"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T18:43:53.609919Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T18:45:01.945Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"mm/hugetlb.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "f8dfdf725bccb0ae41eead2f6da8183727218855",
"status": "affected",
"version": "08cf9faf7558020aed6a0da5810b824b07139dfa",
"versionType": "git"
},
{
"lessThan": "043c509f2488033c68c46d2de2af082fcd568612",
"status": "affected",
"version": "08cf9faf7558020aed6a0da5810b824b07139dfa",
"versionType": "git"
},
{
"lessThan": "5c32ae4a91fb5f4941328e0c1720a7fa4189c3bd",
"status": "affected",
"version": "08cf9faf7558020aed6a0da5810b824b07139dfa",
"versionType": "git"
},
{
"lessThan": "1697d253f51cf5e3825a3423ff49e128a3502ab2",
"status": "affected",
"version": "08cf9faf7558020aed6a0da5810b824b07139dfa",
"versionType": "git"
},
{
"lessThan": "b785f2bd9496facedc0a031be09cddcd1d3c84d3",
"status": "affected",
"version": "08cf9faf7558020aed6a0da5810b824b07139dfa",
"versionType": "git"
},
{
"lessThan": "15807d0ddde37407af72859426b654f3d1972b00",
"status": "affected",
"version": "08cf9faf7558020aed6a0da5810b824b07139dfa",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"mm/hugetlb.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.191",
"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.1.191",
"versionStartIncluding": "5.7",
"vulnerable": true
},
{
"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.101",
"versionStartIncluding": "5.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.40",
"versionStartIncluding": "5.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.5",
"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\nmm/hugetlb: fix hugetlb cgroup rsvd charge/uncharge mismatch\n\nIn alloc_hugetlb_folio(), a single h_cg pointer is used for both the rsvd\nand non-rsvd hugetlb cgroup charges. When map_chg is set,\nhugetlb_cgroup_charge_cgroup_rsvd() stores the charged cgroup in h_cg, but\nthe immediately following hugetlb_cgroup_charge_cgroup() overwrites h_cg\nwith the non-rsvd cgroup pointer.\n\nAs a result, hugetlb_cgroup_commit_charge_rsvd() stores the wrong\n(non-rsvd) cgroup pointer into the folio\u0027s rsvd slot.\n\nWhen the folio is later freed, free_huge_folio() unconditionally calls\nboth hugetlb_cgroup_uncharge_folio() and\nhugetlb_cgroup_uncharge_folio_rsvd(). The rsvd uncharge reads back the\nwrong cgroup from the folio and decrements a counter that was never\ncharged for that cgroup, causing a page_counter underflow:\n\n page_counter underflow: -512 nr_pages=512\n WARNING: mm/page_counter.c:61 at page_counter_cancel\n\nFix this by introducing a separate h_cg_rsvd pointer exclusively for the\nrsvd charge path, keeping the rsvd and non-rsvd charges fully independent\nthrough their charge, commit, and error uncharge paths."
}
],
"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 bug is in alloc_hugetlb_folio()/free_huge_folio() and is reached only via local MM paths (mmap/munmap, hugetlb page faults, fallocate, memfd MFD_HUGETLB, MAP_HUGETLB) that syzbot triggered through hugetlbfs inode eviction, not via any network-facing kernel service.\nAC:L - An unprivileged attacker can reliably trigger the mismatch by creating hugetlbfs mappings without reservations (MAP_NORESERVE or fault-before-reserve), faulting in huge pages to run alloc_hugetlb_folio() with map_chg set, then closing/unmapping to free folios and hit the bad rsvd uncharge.\nPR:L - Triggering requires only an unprivileged local process that can use hugetlb memory (hugetlbfs/MAP_HUGETLB/memfd) under a hugetlb cgroup; no init-namespace root or special driver capabilities are needed, and cgroup hugetlb limits are controllable from user namespaces.\nUI:N - Exploitation is fully attacker-driven through normal syscalls (mmap, write/fault, close/unlink) and does not require any victim user action beyond the attacker operating on their own mappings.\nS:U - Impact is confined to kernel hugetlb/cgroup page_counter accounting within the same host kernel security domain; it does not cross VM, container runtime, or IOMMU boundaries.\nC:N - The flaw corrupts hugetlb cgroup reservation counters and emits a WARN on underflow; it does not read or disclose kernel memory, pointers, or other confidential data to the attacker.\nI:H - page_counter underflow forcibly resets hugetlb cgroup reservation usage to zero, corrupting kernel accounting so an attacker can bypass hugetlb.rsvd cgroup limits and consume hugepage resources beyond enforced quotas in multi-tenant/container deployments.\nA:H - free_huge_folio() unconditionally hits the bad rsvd uncharge and triggers a kernel WARNING/page_counter underflow during hugepage teardown; syzbot classified this as DoS and repeated alloc/free cycles can disrupt hugetlb availability for other workloads when limits are bypassed."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-30T12:28:57.670Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/f8dfdf725bccb0ae41eead2f6da8183727218855"
},
{
"url": "https://git.kernel.org/stable/c/043c509f2488033c68c46d2de2af082fcd568612"
},
{
"url": "https://git.kernel.org/stable/c/5c32ae4a91fb5f4941328e0c1720a7fa4189c3bd"
},
{
"url": "https://git.kernel.org/stable/c/1697d253f51cf5e3825a3423ff49e128a3502ab2"
},
{
"url": "https://git.kernel.org/stable/c/b785f2bd9496facedc0a031be09cddcd1d3c84d3"
},
{
"url": "https://git.kernel.org/stable/c/15807d0ddde37407af72859426b654f3d1972b00"
}
],
"title": "mm/hugetlb: fix hugetlb cgroup rsvd charge/uncharge mismatch",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-72213",
"datePublished": "2026-08-15T05:54:07.854Z",
"dateReserved": "2026-08-09T03:40:39.912Z",
"dateUpdated": "2026-10-30T12:28:57.670Z",
"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-72110 (GCVE-0-2026-72110)
Vulnerability from cvelistv5
Published
2026-08-15 05:52
Modified
2026-10-16 18:44
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
bpf,fork: wipe ->bpf_storage before bailouts that access it
Currently, copy_process() can bail out to free_task() before p->bpf_storage
has been initialized, with this call graph (shown here for the
!CONFIG_MEMCG case):
copy_process
dup_task_struct
arch_dup_task_struct
[copies the entire task_struct, including ->bpf_storage member]
[RLIMIT_NPROC check fails]
delayed_free_task
free_task
bpf_task_storage_free
rcu_dereference(task->bpf_storage)
bpf_local_storage_destroy
In this case, the nascent task's ->bpf_storage member that
bpf_local_storage_destroy() operates on is a plain copy of the parent's
->bpf_storage pointer, not a real initialized pointer.
This leads to badness (kernel hangs, UAF).
This is reachable as long as the process calling fork() has been inserted
into a task storage map.
References
| URL | Tags | ||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: a10787e6d58c24b51e91c19c6d16c5da89fcaa4b Version: a10787e6d58c24b51e91c19c6d16c5da89fcaa4b Version: a10787e6d58c24b51e91c19c6d16c5da89fcaa4b Version: a10787e6d58c24b51e91c19c6d16c5da89fcaa4b Version: a10787e6d58c24b51e91c19c6d16c5da89fcaa4b Version: a10787e6d58c24b51e91c19c6d16c5da89fcaa4b Version: a10787e6d58c24b51e91c19c6d16c5da89fcaa4b |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-72110",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T18:41:35.831908Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T18:44:56.143Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"kernel/fork.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "7df67a4799067a59e6a2d53f8059a6be6e73e678",
"status": "affected",
"version": "a10787e6d58c24b51e91c19c6d16c5da89fcaa4b",
"versionType": "git"
},
{
"lessThan": "aff686efd38728e06daf12417a0d7ed454ce4cff",
"status": "affected",
"version": "a10787e6d58c24b51e91c19c6d16c5da89fcaa4b",
"versionType": "git"
},
{
"lessThan": "c3fd6f28c7ce1142a3b23dbb840eaa4777de1d74",
"status": "affected",
"version": "a10787e6d58c24b51e91c19c6d16c5da89fcaa4b",
"versionType": "git"
},
{
"lessThan": "9cff220ddb65b022cc668bb652200742476e744c",
"status": "affected",
"version": "a10787e6d58c24b51e91c19c6d16c5da89fcaa4b",
"versionType": "git"
},
{
"lessThan": "c4f626ddf2350652ad2f79daf1f10847f3f6eabd",
"status": "affected",
"version": "a10787e6d58c24b51e91c19c6d16c5da89fcaa4b",
"versionType": "git"
},
{
"lessThan": "43f0005f81b8ce3be962d653cde8db9022f1e9b0",
"status": "affected",
"version": "a10787e6d58c24b51e91c19c6d16c5da89fcaa4b",
"versionType": "git"
},
{
"lessThan": "9b51a6155d14389876916726430da30eabb1d4ed",
"status": "affected",
"version": "a10787e6d58c24b51e91c19c6d16c5da89fcaa4b",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"kernel/fork.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.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.15.217",
"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.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\nbpf,fork: wipe -\u003ebpf_storage before bailouts that access it\n\nCurrently, copy_process() can bail out to free_task() before p-\u003ebpf_storage\nhas been initialized, with this call graph (shown here for the\n!CONFIG_MEMCG case):\n\ncopy_process\n dup_task_struct\n arch_dup_task_struct\n [copies the entire task_struct, including -\u003ebpf_storage member]\n [RLIMIT_NPROC check fails]\n delayed_free_task\n free_task\n bpf_task_storage_free\n rcu_dereference(task-\u003ebpf_storage)\n bpf_local_storage_destroy\n\nIn this case, the nascent task\u0027s -\u003ebpf_storage member that\nbpf_local_storage_destroy() operates on is a plain copy of the parent\u0027s\n-\u003ebpf_storage pointer, not a real initialized pointer.\nThis leads to badness (kernel hangs, UAF).\n\nThis is reachable as long as the process calling fork() has been inserted\ninto a task storage map."
}
],
"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 via fork()/clone()/clone3() into copy_process() and free_task()-\u003ebpf_task_storage_free(); per kernel guidance BPF/fork paths are Local and no network-facing handler can drive this early-bailout teardown.\nAC:L - The attacker controls all conditions: dup_task_struct copies parent -\u003ebpf_storage, then they can deterministically force early copy_process failure (setrlimit(RLIMIT_NPROC) plus fork, fork-until-EAGAIN, or nr_threads exhaustion) to hit bpf_local_storage_destroy on the copied pointer.\nPR:L - Exploitation needs only a local process already inserted into a BPF task storage map (sched_ext/tracing BPF on servers, or BPF loaded via user-namespace CAP_BPF/unprivileged BPF); fork itself needs no real-root capability, so PR:L per user-namespace guidance.\nUI:N - No victim action is required; the attacker triggers the failed fork on a process they run and control the bailout timing themselves.\nS:U - Impact is in-kernel UAF/heap corruption and denial of service on the parent task\u0027s BPF local storage; this is standard kernel memory corruption without VM, container, or IOMMU boundary crossing.\nC:H - Destroying the parent\u0027s live bpf_local_storage via the child\u0027s stale -\u003ebpf_storage pointer is a use-after-free; freed bpf_local_storage/bpf_local_storage_elem objects can be reclaimed for arbitrary kernel memory disclosure per UAF guidance.\nI:H - bpf_local_storage_destroy() unlinks and frees parent storage still referenced by the live forking task, enabling heap grooming and attacker-controlled writes over freed BPF local storage structures for privilege escalation.\nA:H - The fix commit reports kernel hangs and UAF; tearing down active BPF task local storage during failed fork can oops, panic, or deadlock the system, satisfying High availability impact for kernel crashes/UAF."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-23T12:46:50.580Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/7df67a4799067a59e6a2d53f8059a6be6e73e678"
},
{
"url": "https://git.kernel.org/stable/c/aff686efd38728e06daf12417a0d7ed454ce4cff"
},
{
"url": "https://git.kernel.org/stable/c/c3fd6f28c7ce1142a3b23dbb840eaa4777de1d74"
},
{
"url": "https://git.kernel.org/stable/c/9cff220ddb65b022cc668bb652200742476e744c"
},
{
"url": "https://git.kernel.org/stable/c/c4f626ddf2350652ad2f79daf1f10847f3f6eabd"
},
{
"url": "https://git.kernel.org/stable/c/43f0005f81b8ce3be962d653cde8db9022f1e9b0"
},
{
"url": "https://git.kernel.org/stable/c/9b51a6155d14389876916726430da30eabb1d4ed"
}
],
"title": "bpf,fork: wipe -\u003ebpf_storage before bailouts that access it",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-72110",
"datePublished": "2026-08-15T05:52:51.805Z",
"dateReserved": "2026-08-09T03:40:39.906Z",
"dateUpdated": "2026-10-16T18:44:56.143Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-89593 (GCVE-0-2026-89593)
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:
hugetlb: only adjust reservation during unmapping if mapcount is 0
Since df7a6d1f6405, __unmap_hugepage_range can adjust reservations. In
the case of folio mapped in both a parent and a child, if the parent
unmaps the range first, the reservation adjustment will result in an
underflow of the reserved count. Once the child unmaps the range, the
count is restored. Change __unmap_hugepage_range() to check the mapcount
before adjusting the reservation.
References
| URL | Tags | |
|---|---|---|
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"mm/hugetlb.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "b0b1b9ca80b795ed2223e76dd787db7067121fb9",
"status": "affected",
"version": "df7a6d1f64056aec572162c5d35ed9ff86ece6f3",
"versionType": "git"
},
{
"lessThan": "a3c65af20cceb7f997847727636b4017326f845d",
"status": "affected",
"version": "df7a6d1f64056aec572162c5d35ed9ff86ece6f3",
"versionType": "git"
},
{
"lessThan": "0f001491e5a2ec69aa9d5dd6b799e5742245f9ea",
"status": "affected",
"version": "df7a6d1f64056aec572162c5d35ed9ff86ece6f3",
"versionType": "git"
},
{
"lessThan": "5120b1e048d48596ffaec1a8412012a91adba73b",
"status": "affected",
"version": "df7a6d1f64056aec572162c5d35ed9ff86ece6f3",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"mm/hugetlb.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.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.110",
"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\nhugetlb: only adjust reservation during unmapping if mapcount is 0\n\nSince df7a6d1f6405, __unmap_hugepage_range can adjust reservations. In\nthe case of folio mapped in both a parent and a child, if the parent\nunmaps the range first, the reservation adjustment will result in an\nunderflow of the reserved count. Once the child unmaps the range, the\ncount is restored. Change __unmap_hugepage_range() to check the mapcount\nbefore adjusting the reservation."
}
],
"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 bug is in __unmap_hugepage_range() on munmap/madvise of a private MAP_HUGETLB VMA after fork, reached only via local mmap/fault/fork/unmap syscalls, not from any network protocol or remote packet path.\nAC:L - Triggering is a deterministic sequence: MAP_PRIVATE|MAP_ANONYMOUS|MAP_HUGETLB mmap, fault the page, fork, then munmap in the parent while the child keeps the mapping. The reporter\u0027s reproducer underflows HugePages_Rsvd on every run with no race.\nPR:L - mmap(MAP_ANONYMOUS|MAP_HUGETLB) uses hugetlb_file_setup(HUGETLB_ANONHUGE_INODE) with no CAP_IPC_LOCK check. An unprivileged local user on a host with hugepages (typical for VMs, databases, DPDK, and HPC) can exercise this path, including from a user namespace.\nUI:N - The attacker creates the private hugetlb mapping, forks, and unmaps in their own processes; no action by another user or administrator is required.\nS:U - Impact is corruption of the host kernel\u0027s global hugetlb reservation counter (h-\u003eresv_huge_pages) within the same kernel security domain; it does not escape a VM, bypass an IOMMU, or cross another authority.\nC:N - The flaw only underflows and wraps the hugepage reservation counter; it does not provide an out-of-bounds read, use-after-free, or other primitive that discloses kernel memory or confidential data.\nI:H - Parent unmap while a child still maps the folio restores the reserve map, then hugetlb_vm_op_close() decrements resv_huge_pages from zero and wraps it to ULONG_MAX, corrupting global reservation accounting so later allocations can steal hugepages reserved for other tenants and bypass reservation guarantees.\nA:H - With resv_huge_pages wrapped, available_huge_pages() and gather_surplus_pages() treat the pool as having extra pages, so other hugepage users (QEMU, databases, DPDK) can be denied reserved pages and SIGBUS. The attacker controls the child lifetime, so broken accounting can persist and remain desynchronized."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T08:49:25.740Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/b0b1b9ca80b795ed2223e76dd787db7067121fb9"
},
{
"url": "https://git.kernel.org/stable/c/a3c65af20cceb7f997847727636b4017326f845d"
},
{
"url": "https://git.kernel.org/stable/c/0f001491e5a2ec69aa9d5dd6b799e5742245f9ea"
},
{
"url": "https://git.kernel.org/stable/c/5120b1e048d48596ffaec1a8412012a91adba73b"
}
],
"title": "hugetlb: only adjust reservation during unmapping if mapcount is 0",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-89593",
"datePublished": "2026-09-11T19:44:56.557Z",
"dateReserved": "2026-09-11T19:38:34.730Z",
"dateUpdated": "2026-10-19T08:49:25.740Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-98130 (GCVE-0-2026-98130)
Vulnerability from cvelistv5
Published
2026-09-25 10:36
Modified
2026-10-19 09:14
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
sctp: fix a TOCTOU race in SCTP_CMD_TIMER_START
The SCTP_CMD_TIMER_START handler checks timer_pending() before calling
timer_reduce(). The timer can expire and detach between these operations,
causing timer_reduce() to rearm the timer without taking the association
reference required for the newly armed timer.
The timer callback later unconditionally drops its association reference,
which can leave the association reference count unbalanced and result in
use-after-free during association teardown.
Use the return value of timer_reduce() to determine whether the timer was
actually armed. Take the association reference only when timer_reduce()
successfully starts a new timer, closing the race between checking the
timer state and rearming it.
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: 20a785aa52c82246055a089e55df9dac47d67da1 Version: 20a785aa52c82246055a089e55df9dac47d67da1 Version: 20a785aa52c82246055a089e55df9dac47d67da1 Version: 20a785aa52c82246055a089e55df9dac47d67da1 Version: 20a785aa52c82246055a089e55df9dac47d67da1 Version: 20a785aa52c82246055a089e55df9dac47d67da1 Version: 20a785aa52c82246055a089e55df9dac47d67da1 Version: 20a785aa52c82246055a089e55df9dac47d67da1 Version: 9c0a4652f750afe3b4468cbcd9335b244ce2facd Version: 70989e501fbce502198d82da88358ce453575a05 Version: 085bb270b4b1168c93afb37bbafc881207d15443 Version: 4.19.126 ≤ Version: 5.4.44 ≤ Version: 5.6.16 ≤ |
||
{
"containers": {
"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": "cbf2df9aac4202f9fb0b361a7fe8c79b29fad92c",
"status": "affected",
"version": "20a785aa52c82246055a089e55df9dac47d67da1",
"versionType": "git"
},
{
"lessThan": "3205a20f837f5b1f009427ac3d9f706bf8a6fbec",
"status": "affected",
"version": "20a785aa52c82246055a089e55df9dac47d67da1",
"versionType": "git"
},
{
"lessThan": "755d70ca845fd9b87c7b338ae6ae832b08cd0005",
"status": "affected",
"version": "20a785aa52c82246055a089e55df9dac47d67da1",
"versionType": "git"
},
{
"lessThan": "09e7f9290d63178f56095d5c18fb9f9470153db5",
"status": "affected",
"version": "20a785aa52c82246055a089e55df9dac47d67da1",
"versionType": "git"
},
{
"lessThan": "e42ba56281ca3ae2dcb3558bebee9a1c9a4831d9",
"status": "affected",
"version": "20a785aa52c82246055a089e55df9dac47d67da1",
"versionType": "git"
},
{
"lessThan": "00b841bac10230c557be6b38efc48508198fe23e",
"status": "affected",
"version": "20a785aa52c82246055a089e55df9dac47d67da1",
"versionType": "git"
},
{
"lessThan": "3d698d1e6c8bc41e3e1707777a016f1bdd07842d",
"status": "affected",
"version": "20a785aa52c82246055a089e55df9dac47d67da1",
"versionType": "git"
},
{
"lessThan": "2188569e7e1b0bc3f3b557dc97ab7a02befc11c8",
"status": "affected",
"version": "20a785aa52c82246055a089e55df9dac47d67da1",
"versionType": "git"
},
{
"status": "affected",
"version": "9c0a4652f750afe3b4468cbcd9335b244ce2facd",
"versionType": "git"
},
{
"status": "affected",
"version": "70989e501fbce502198d82da88358ce453575a05",
"versionType": "git"
},
{
"status": "affected",
"version": "085bb270b4b1168c93afb37bbafc881207d15443",
"versionType": "git"
},
{
"lessThan": "4.20",
"status": "affected",
"version": "4.19.126",
"versionType": "semver"
},
{
"lessThan": "5.5",
"status": "affected",
"version": "5.4.44",
"versionType": "semver"
},
{
"lessThan": "5.7",
"status": "affected",
"version": "5.6.16",
"versionType": "semver"
}
]
},
{
"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": "5.7"
},
{
"lessThan": "5.7",
"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.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.222",
"versionStartIncluding": "5.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.189",
"versionStartIncluding": "5.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.158",
"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.53",
"versionStartIncluding": "5.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.7",
"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": "4.19.126",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "5.4.44",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "5.6.16",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nsctp: fix a TOCTOU race in SCTP_CMD_TIMER_START\n\nThe SCTP_CMD_TIMER_START handler checks timer_pending() before calling\ntimer_reduce(). The timer can expire and detach between these operations,\ncausing timer_reduce() to rearm the timer without taking the association\nreference required for the newly armed timer.\n\nThe timer callback later unconditionally drops its association reference,\nwhich can leave the association reference count unbalanced and result in\nuse-after-free during association teardown.\n\nUse the return value of timer_reduce() to determine whether the timer was\nactually armed. Take the association reference only when timer_reduce()\nsuccessfully starts a new timer, closing the race between checking the\ntimer state and rearming it.\n\nThis issue was reported by Nico Yip (@_cyeaa_) working with TrendAI Zero\nDay Initiative."
}
],
"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 - A remote SCTP peer\u0027s restart COOKIE-ECHO goes through sctp_sf_do_5_2_4_dupcook()/sctp_sf_do_dupcook_a() in SHUTDOWN_SENT and on to sctp_sf_do_9_2_start_shutdown(). That queues SCTP_CMD_TIMER_START for T2-shutdown while T2 is already armed, which reaches the racy timer_pending()/timer_reduce() pair in sctp_cmd_interpreter(). SCTP runs over routable IP.\nAC:H - The peer must time its COOKIE-ECHO so that T2 expires on another CPU in the window between timer_pending() and timer_reduce(), which is two adjacent statements. The attacker can retry by timing packets around T2 retransmissions, but cannot control when the kernel timer fires relative to softirq processing. The target association must also be in SHUTDOWN_SENT with its socket closing.\nPR:N - SCTP association setup and the restart COOKIE-ECHO path in sctp_sf_do_dupcook_a() need no authentication. The attacker is just the unauthenticated peer of the association.\nUI:N - No victim action is needed beyond the SCTP service normally closing an association, which puts it in SHUTDOWN_SENT. The attacker sends all the triggering packets.\nS:U - The corruption is confined to the kernel\u0027s own sctp_association object. No security boundary such as a VM or IOMMU is crossed.\nC:H - Re-arming the timer without sctp_association_hold() lets sctp_generate_timeout_event() call sctp_association_put() one time too many. The association is then freed while still referenced, a use-after-free of a large slab object whose reclaimed contents can be used to leak kernel memory.\nI:H - The freed sctp_association holds function-relevant state such as timers, transports and the outqueue. Later timer callbacks and teardown writes into reclaimed memory give a write primitive that could be used to hijack control flow.\nA:H - The unbalanced refcount causes a refcount underflow or use-after-free during association teardown or a later timer callback, crashing the kernel."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T09:14:23.404Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/cbf2df9aac4202f9fb0b361a7fe8c79b29fad92c"
},
{
"url": "https://git.kernel.org/stable/c/3205a20f837f5b1f009427ac3d9f706bf8a6fbec"
},
{
"url": "https://git.kernel.org/stable/c/755d70ca845fd9b87c7b338ae6ae832b08cd0005"
},
{
"url": "https://git.kernel.org/stable/c/09e7f9290d63178f56095d5c18fb9f9470153db5"
},
{
"url": "https://git.kernel.org/stable/c/e42ba56281ca3ae2dcb3558bebee9a1c9a4831d9"
},
{
"url": "https://git.kernel.org/stable/c/00b841bac10230c557be6b38efc48508198fe23e"
},
{
"url": "https://git.kernel.org/stable/c/3d698d1e6c8bc41e3e1707777a016f1bdd07842d"
},
{
"url": "https://git.kernel.org/stable/c/2188569e7e1b0bc3f3b557dc97ab7a02befc11c8"
}
],
"title": "sctp: fix a TOCTOU race in SCTP_CMD_TIMER_START",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-98130",
"datePublished": "2026-09-25T10:36:10.243Z",
"dateReserved": "2026-09-25T10:25:14.318Z",
"dateUpdated": "2026-10-19T09:14:23.404Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-74611 (GCVE-0-2026-74611)
Vulnerability from cvelistv5
Published
2026-08-22 15:31
Modified
2026-10-30 12:30
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
tls: rx: restore msg_iter before TLS 1.3 optimistic retry
tls_decrypt_sg() advances msg->msg_iter when it maps user pages for
the optimistic TLS 1.3 zero-copy path. If the decrypted record turns
out not to be unpadded application data, tls_decrypt_sw() retries into
a kernel skb, but leaves the iterator advanced.
The subsequent copy from the skb then writes decrypted bytes again at
a later point in the caller iovecs while recvmsg() reports only the
post-retry length. A TLS peer can trigger this after the receiver
enables TLS_RX_EXPECT_NO_PAD.
Revert the iterator by the number of bytes consumed by the optimistic
mapping before retrying without zero-copy.
Add a selftest which sends a TLS 1.3 control record with
TLS_RX_EXPECT_NO_PAD enabled and verifies that recvmsg() does not
overwrite later iovecs beyond the returned length.
References
| URL | Tags | |||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: ce61327ce989b63c0bd1cc7afee00e218ee696ac Version: ce61327ce989b63c0bd1cc7afee00e218ee696ac Version: ce61327ce989b63c0bd1cc7afee00e218ee696ac Version: ce61327ce989b63c0bd1cc7afee00e218ee696ac Version: ce61327ce989b63c0bd1cc7afee00e218ee696ac Version: ce61327ce989b63c0bd1cc7afee00e218ee696ac |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-74611",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "yes"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T19:02:18.342764Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T19:06:01.215Z",
"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",
"tools/testing/selftests/net/tls.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "97004f3c17371ee1b259887298711e0604666688",
"status": "affected",
"version": "ce61327ce989b63c0bd1cc7afee00e218ee696ac",
"versionType": "git"
},
{
"lessThan": "c71bacacd59166adbea423a04e7474b0e8245b84",
"status": "affected",
"version": "ce61327ce989b63c0bd1cc7afee00e218ee696ac",
"versionType": "git"
},
{
"lessThan": "3c4e21b1bf8e666a1c141e0f5813ece929570deb",
"status": "affected",
"version": "ce61327ce989b63c0bd1cc7afee00e218ee696ac",
"versionType": "git"
},
{
"lessThan": "68787940274ec89f41dc91b1a68ee1a16a90735f",
"status": "affected",
"version": "ce61327ce989b63c0bd1cc7afee00e218ee696ac",
"versionType": "git"
},
{
"lessThan": "3c837266a734e2a22b24d2d567404a501d405835",
"status": "affected",
"version": "ce61327ce989b63c0bd1cc7afee00e218ee696ac",
"versionType": "git"
},
{
"lessThan": "1c8629651cb54f7b51db8fc0b1a9944e4a4b0f5e",
"status": "affected",
"version": "ce61327ce989b63c0bd1cc7afee00e218ee696ac",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/tls/tls_sw.c",
"tools/testing/selftests/net/tls.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.191",
"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.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.191",
"versionStartIncluding": "6.0",
"vulnerable": true
},
{
"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.45",
"versionStartIncluding": "6.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.9",
"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\ntls: rx: restore msg_iter before TLS 1.3 optimistic retry\n\ntls_decrypt_sg() advances msg-\u003emsg_iter when it maps user pages for\nthe optimistic TLS 1.3 zero-copy path. If the decrypted record turns\nout not to be unpadded application data, tls_decrypt_sw() retries into\na kernel skb, but leaves the iterator advanced.\n\nThe subsequent copy from the skb then writes decrypted bytes again at\na later point in the caller iovecs while recvmsg() reports only the\npost-retry length. A TLS peer can trigger this after the receiver\nenables TLS_RX_EXPECT_NO_PAD.\n\nRevert the iterator by the number of bytes consumed by the optimistic\nmapping before retrying without zero-copy.\n\nAdd a selftest which sends a TLS 1.3 control record with\nTLS_RX_EXPECT_NO_PAD enabled and verifies that recvmsg() does not\noverwrite later iovecs beyond the returned 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 - The bug is in kTLS software RX (tls_decrypt_sw/tls_sw_recvmsg) and is driven by TLS 1.3 records received from a remote TCP peer; per kernel CNA guidance, kTLS flaws triggered by peer ciphertext on an established connection are Network-reachable (e.g., malicious client to nginx/HAProxy/NVMe-oF-TLS server).\nAC:L - Once the receiver has TLS 1.3 kTLS RX with TLS_RX_EXPECT_NO_PAD, a remote peer can deterministically trigger the optimistic-decrypt retry by sending a non-application-data inner record (handshake/alert/KeyUpdate) or padded data; no race, special heap layout, or rare kernel build is required.\nPR:N - Exploitation requires only being the remote TLS peer on an established kTLS connection; the attacker needs no credentials or Linux capabilities on the victim host. TLS_RX_EXPECT_NO_PAD is a receiver-side performance option set by the service, not an attacker privilege gate.\nUI:N - No victim user action beyond normal automated server operation (maintaining a TLS session and calling recvmsg on kTLS sockets). The attacker triggers the flaw solely by sending protocol-valid TLS records over the network.\nS:U - The out-of-bounds write corrupts user-space iovec buffers of the process owning the kTLS socket within the same security authority; it does not cross a VM, IOMMU, or sandbox boundary to another security domain.\nC:H - skb_copy_datagram_msg writes decrypted peer-controlled bytes past the recvmsg-reported length into adjacent user buffers. This memory corruption can be leveraged for information disclosure via heap/stack grooming even though the immediate primitive is a write.\nI:H - The remote peer controls the decrypted payload written out-of-bounds (up to a full TLS record, roughly 16 KiB) into later iovecs while recvmsg under-reports bytes copied, giving a reliable user-space memory corruption primitive suitable for control-flow or data hijack in privileged daemons.\nA:H - Corrupting adjacent application buffers in kTLS-enabled daemons (web proxies, storage targets, RPC endpoints) can crash workers or destabilize the service; the silent mismatch between returned length and bytes written also enables persistent denial of service on long-lived connections."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-30T12:30:14.199Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/97004f3c17371ee1b259887298711e0604666688"
},
{
"url": "https://git.kernel.org/stable/c/c71bacacd59166adbea423a04e7474b0e8245b84"
},
{
"url": "https://git.kernel.org/stable/c/3c4e21b1bf8e666a1c141e0f5813ece929570deb"
},
{
"url": "https://git.kernel.org/stable/c/68787940274ec89f41dc91b1a68ee1a16a90735f"
},
{
"url": "https://git.kernel.org/stable/c/3c837266a734e2a22b24d2d567404a501d405835"
},
{
"url": "https://git.kernel.org/stable/c/1c8629651cb54f7b51db8fc0b1a9944e4a4b0f5e"
}
],
"title": "tls: rx: restore msg_iter before TLS 1.3 optimistic retry",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-74611",
"datePublished": "2026-08-22T15:31:57.534Z",
"dateReserved": "2026-08-15T05:44:03.920Z",
"dateUpdated": "2026-10-30T12:30:14.199Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-31731 (GCVE-0-2026-31731)
Vulnerability from cvelistv5
Published
2026-05-01 14:14
Modified
2026-10-19 19:06
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
thermal: core: Address thermal zone removal races with resume
Since thermal_zone_pm_complete() and thermal_zone_device_resume()
re-initialize the poll_queue delayed work for the given thermal zone,
the cancel_delayed_work_sync() in thermal_zone_device_unregister()
may miss some already running work items and the thermal zone may
be freed prematurely [1].
There are two failing scenarios that both start with
running thermal_pm_notify_complete() right before invoking
thermal_zone_device_unregister() for one of the thermal zones.
In the first scenario, there is a work item already running for
the given thermal zone when thermal_pm_notify_complete() calls
thermal_zone_pm_complete() for that thermal zone and it continues to
run when thermal_zone_device_unregister() starts. Since the poll_queue
delayed work has been re-initialized by thermal_pm_notify_complete(), the
running work item will be missed by the cancel_delayed_work_sync() in
thermal_zone_device_unregister() and if it continues to run past the
freeing of the thermal zone object, a use-after-free will occur.
In the second scenario, thermal_zone_device_resume() queued up by
thermal_pm_notify_complete() runs right after the thermal_zone_exit()
called by thermal_zone_device_unregister() has returned. The poll_queue
delayed work is re-initialized by it before cancel_delayed_work_sync() is
called by thermal_zone_device_unregister(), so it may continue to run
after the freeing of the thermal zone object, which also leads to a
use-after-free.
Address the first failing scenario by ensuring that no thermal work
items will be running when thermal_pm_notify_complete() is called.
For this purpose, first move the cancel_delayed_work() call from
thermal_zone_pm_complete() to thermal_zone_pm_prepare() to prevent
new work from entering the workqueue going forward. Next, switch
over to using a dedicated workqueue for thermal events and update
the code in thermal_pm_notify() to flush that workqueue after
thermal_pm_notify_prepare() has returned which will take care of
all leftover thermal work already on the workqueue (that leftover
work would do nothing useful anyway because all of the thermal zones
have been flagged as suspended).
The second failing scenario is addressed by adding a tz->state check
to thermal_zone_device_resume() to prevent it from re-initializing
the poll_queue delayed work if the thermal zone is going away.
Note that the above changes will also facilitate relocating the suspend
and resume of thermal zones closer to the suspend and resume of devices,
respectively.
References
| URL | Tags | |
|---|---|---|
Impacted products
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-31731",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T15:12:52.594804Z",
"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:06:07.291Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/thermal/thermal_core.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "1a6d2b001eb730d85f00da39ae7db6f3b4edc540",
"status": "affected",
"version": "5a5efdaffda5d23717d9117cf36cda9eafcf2fae",
"versionType": "git"
},
{
"lessThan": "2dbe93f344f10b432b95a23304006be805c097a1",
"status": "affected",
"version": "5a5efdaffda5d23717d9117cf36cda9eafcf2fae",
"versionType": "git"
},
{
"lessThan": "c4593f1654f7dea3bcf9bb1851ded86311d4f370",
"status": "affected",
"version": "5a5efdaffda5d23717d9117cf36cda9eafcf2fae",
"versionType": "git"
},
{
"lessThan": "45b859b0728267a6199ee5002d62e6c6f3e8c89d",
"status": "affected",
"version": "5a5efdaffda5d23717d9117cf36cda9eafcf2fae",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/thermal/thermal_core.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.83",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.22",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.19.*",
"status": "unaffected",
"version": "6.19.12",
"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.83",
"versionStartIncluding": "6.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.22",
"versionStartIncluding": "6.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.19.12",
"versionStartIncluding": "6.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.0",
"versionStartIncluding": "6.8",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nthermal: core: Address thermal zone removal races with resume\n\nSince thermal_zone_pm_complete() and thermal_zone_device_resume()\nre-initialize the poll_queue delayed work for the given thermal zone,\nthe cancel_delayed_work_sync() in thermal_zone_device_unregister()\nmay miss some already running work items and the thermal zone may\nbe freed prematurely [1].\n\nThere are two failing scenarios that both start with\nrunning thermal_pm_notify_complete() right before invoking\nthermal_zone_device_unregister() for one of the thermal zones.\n\nIn the first scenario, there is a work item already running for\nthe given thermal zone when thermal_pm_notify_complete() calls\nthermal_zone_pm_complete() for that thermal zone and it continues to\nrun when thermal_zone_device_unregister() starts. Since the poll_queue\ndelayed work has been re-initialized by thermal_pm_notify_complete(), the\nrunning work item will be missed by the cancel_delayed_work_sync() in\nthermal_zone_device_unregister() and if it continues to run past the\nfreeing of the thermal zone object, a use-after-free will occur.\n\nIn the second scenario, thermal_zone_device_resume() queued up by\nthermal_pm_notify_complete() runs right after the thermal_zone_exit()\ncalled by thermal_zone_device_unregister() has returned. The poll_queue\ndelayed work is re-initialized by it before cancel_delayed_work_sync() is\ncalled by thermal_zone_device_unregister(), so it may continue to run\nafter the freeing of the thermal zone object, which also leads to a\nuse-after-free.\n\nAddress the first failing scenario by ensuring that no thermal work\nitems will be running when thermal_pm_notify_complete() is called.\nFor this purpose, first move the cancel_delayed_work() call from\nthermal_zone_pm_complete() to thermal_zone_pm_prepare() to prevent\nnew work from entering the workqueue going forward. Next, switch\nover to using a dedicated workqueue for thermal events and update\nthe code in thermal_pm_notify() to flush that workqueue after\nthermal_pm_notify_prepare() has returned which will take care of\nall leftover thermal work already on the workqueue (that leftover\nwork would do nothing useful anyway because all of the thermal zones\nhave been flagged as suspended).\n\nThe second failing scenario is addressed by adding a tz-\u003estate check\nto thermal_zone_device_resume() to prevent it from re-initializing\nthe poll_queue delayed work if the thermal zone is going away.\n\nNote that the above changes will also facilitate relocating the suspend\nand resume of thermal zones closer to the suspend and resume of devices,\nrespectively."
}
],
"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 code is reached through local power-management and device lifecycle paths, specifically resume notification racing with thermal zone unregister. It is not reachable from network packet handling or user-namespace-only subsystems.\nAC:L - The race can be stimulated repeatedly by driving resume completion and device/driver removal paths, and syzbot reproduced the UAF through such lifecycle concurrency. Under the required rule, this is Low because the attacker can influence both sides in a local scenario.\nPR:L - Exploitation requires local access to exercise PM/hotplug or device-management paths; there is no unauthenticated remote path. Where raw kernel knobs are root-owned, PR:L is the higher-severity defensible choice for local authenticated deployments.\nUI:N - No separate victim action is required once the attacker can drive the local lifecycle operations. The race is between kernel workqueue, PM notifier, and unregister paths.\nS:U - The impact remains within the kernel\u2019s own security authority. This is standard kernel memory corruption, not a VM escape, IOMMU bypass, or cross-scope boundary violation.\nC:H - This is a use-after-free of a thermal zone object containing locks, work, state, callbacks, and pointers. Per kernel UAF guidance, reclaimed-object control can support high-impact information disclosure.\nI:H - The stale work can operate on freed and potentially reallocated kernel memory, including reinitializing embedded work and using object fields/callbacks. Per UAF guidance, this is high integrity impact due to potential memory corruption and control-flow abuse.\nA:H - Syzbot observed a KASAN slab-use-after-free in thermal_zone_device_check, and the stale work can dereference freed kernel memory. This can reliably crash or panic the kernel."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-05T12:24:52.873Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/1a6d2b001eb730d85f00da39ae7db6f3b4edc540"
},
{
"url": "https://git.kernel.org/stable/c/2dbe93f344f10b432b95a23304006be805c097a1"
},
{
"url": "https://git.kernel.org/stable/c/c4593f1654f7dea3bcf9bb1851ded86311d4f370"
},
{
"url": "https://git.kernel.org/stable/c/45b859b0728267a6199ee5002d62e6c6f3e8c89d"
}
],
"title": "thermal: core: Address thermal zone removal races with resume",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-31731",
"datePublished": "2026-05-01T14:14:30.177Z",
"dateReserved": "2026-03-09T15:48:24.137Z",
"dateUpdated": "2026-10-19T19:06:07.291Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-74614 (GCVE-0-2026-74614)
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:
vsock/virtio: read virtqueues under worker locks
Commit bd50c5dc182b ("vsock/virtio: add support for device
suspend/resume") made the *_run flags transition from false to true when
restore installs replacement virtqueues. The RX, TX and event workers
read their virtqueue before locking and checking the corresponding flag,
so a worker delayed across freeze and restore can observe the replacement
queue's running state while retaining a pointer to the deleted queue.
Read each virtqueue under its mutex after checking the run flag, keeping
the pointer and state in the same queue generation.
References
| URL | Tags | ||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 762c251c7f5c4ee5bef71460c6e822ed293fd69f Version: bd50c5dc182b0a52599f87b429f9a5a9cbfc9b1c Version: bd50c5dc182b0a52599f87b429f9a5a9cbfc9b1c Version: bd50c5dc182b0a52599f87b429f9a5a9cbfc9b1c Version: bd50c5dc182b0a52599f87b429f9a5a9cbfc9b1c Version: bd50c5dc182b0a52599f87b429f9a5a9cbfc9b1c Version: bd50c5dc182b0a52599f87b429f9a5a9cbfc9b1c Version: 5.15.138 ≤ |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-74614",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T19:02:27.223007Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T19:06:01.847Z",
"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": "941329ce14c5f481223a10d1d4c8b57ea7f3048a",
"status": "affected",
"version": "762c251c7f5c4ee5bef71460c6e822ed293fd69f",
"versionType": "git"
},
{
"lessThan": "29dd10583bf9d2744cd84b862e4257c0a5699570",
"status": "affected",
"version": "bd50c5dc182b0a52599f87b429f9a5a9cbfc9b1c",
"versionType": "git"
},
{
"lessThan": "a1fb0c5b8a7c2753758aeced40971f99449dde0c",
"status": "affected",
"version": "bd50c5dc182b0a52599f87b429f9a5a9cbfc9b1c",
"versionType": "git"
},
{
"lessThan": "eae099c764c7ebdb842eb1f638913e310bdd6513",
"status": "affected",
"version": "bd50c5dc182b0a52599f87b429f9a5a9cbfc9b1c",
"versionType": "git"
},
{
"lessThan": "bd43a7ec668be428265b3209eb43647aedcf720a",
"status": "affected",
"version": "bd50c5dc182b0a52599f87b429f9a5a9cbfc9b1c",
"versionType": "git"
},
{
"lessThan": "1cecb4202afdbeddcf29d59baf596ac6ab753f7f",
"status": "affected",
"version": "bd50c5dc182b0a52599f87b429f9a5a9cbfc9b1c",
"versionType": "git"
},
{
"lessThan": "ebac8f6b1ef0e9278afe204b8692a7479988dace",
"status": "affected",
"version": "bd50c5dc182b0a52599f87b429f9a5a9cbfc9b1c",
"versionType": "git"
},
{
"lessThan": "5.15.216",
"status": "affected",
"version": "5.15.138",
"versionType": "semver"
}
]
},
{
"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": "5.19"
},
{
"lessThan": "5.19",
"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.138",
"vulnerable": true
},
{
"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.152",
"versionStartIncluding": "5.19",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.104",
"versionStartIncluding": "5.19",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.45",
"versionStartIncluding": "5.19",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.9",
"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\nvsock/virtio: read virtqueues under worker locks\n\nCommit bd50c5dc182b (\"vsock/virtio: add support for device\nsuspend/resume\") made the *_run flags transition from false to true when\nrestore installs replacement virtqueues. The RX, TX and event workers\nread their virtqueue before locking and checking the corresponding flag,\nso a worker delayed across freeze and restore can observe the replacement\nqueue\u0027s running state while retaining a pointer to the deleted queue.\n\nRead each virtqueue under its mutex after checking the run flag, keeping\nthe pointer and state in the same queue generation."
}
],
"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 reached via AF_VSOCK sockets and virtio virtqueue completions, not via routable network protocols; per kernel CNA guidance vsock and virtio guest-driver bugs are scored Local even when the hypervisor is the peer.\nAC:L - An attacker or malicious host controls both sides of the race by flooding vsock/virtqueue traffic to queue RX/TX/event workers while virtio_vsock_freeze/restore deletes and replaces virtqueues, making the stale pre-lock virtqueue pointer race reliable and repeatable.\nPR:N - No guest privileges are required in the highest-impact scenario: a malicious hypervisor or host-initiated suspend/migrate triggers freeze/restore while virtio completions queue workers, matching confidential-computing models where the host is untrusted and holds no guest credentials.\nUI:N - Vulnerable RX/TX/event workers run automatically from virtqueue IRQ callbacks on a dedicated workqueue; no victim must mount filesystems, open files, or take deliberate action beyond normal virtio-vsock device operation and VM lifecycle events.\nS:U - Corruption is confined to the guest kernel virtio-vsock driver; exploited impact stays within the guest security boundary and does not cross to the hypervisor (guest-to-host escape would involve vhost-vsock on the host, not this guest-side driver).\nC:H - Use-after-free of a deleted virtqueue: virtqueue_disable_cb, virtqueue_get_buf, and virtqueue_enable_cb dereference freed vring_virtqueue slab memory, enabling attacker-controlled reuse and arbitrary kernel memory disclosure typical of virtio UAF bugs.\nI:H - Corrupted virtqueue metadata permits out-of-bounds ring/index manipulation and further virtqueue operations, furnishing heap corruption and arbitrary-write primitives suitable for guest ring-0 code execution and privilege escalation.\nA:H - Operating on freed virtqueues triggers KASAN slab-use-after-free and kernel BUG/oops/panic (as in the related virtio-vsock freeze bug CVE-2026-74613), fully denying guest availability even when full exploitation is not attempted."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-25T05:40:40.984Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/941329ce14c5f481223a10d1d4c8b57ea7f3048a"
},
{
"url": "https://git.kernel.org/stable/c/29dd10583bf9d2744cd84b862e4257c0a5699570"
},
{
"url": "https://git.kernel.org/stable/c/a1fb0c5b8a7c2753758aeced40971f99449dde0c"
},
{
"url": "https://git.kernel.org/stable/c/eae099c764c7ebdb842eb1f638913e310bdd6513"
},
{
"url": "https://git.kernel.org/stable/c/bd43a7ec668be428265b3209eb43647aedcf720a"
},
{
"url": "https://git.kernel.org/stable/c/1cecb4202afdbeddcf29d59baf596ac6ab753f7f"
},
{
"url": "https://git.kernel.org/stable/c/ebac8f6b1ef0e9278afe204b8692a7479988dace"
}
],
"title": "vsock/virtio: read virtqueues under worker locks",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-74614",
"datePublished": "2026-08-22T15:31:59.800Z",
"dateReserved": "2026-08-15T05:44:03.920Z",
"dateUpdated": "2026-10-16T19:06:01.847Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-93134 (GCVE-0-2026-93134)
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:
printk: Fix possible console use-after-free
When emitting a record via legacy printing, it is possible that a handover
to another legacy printing context occurs. When a context has performed a
handover, the console SRCU read lock is released and the pointer to the
console struct might now be invalid. Therefore, after calling
nbcon_legacy_emit_next_record() or console_emit_next_record(), it is
necessary to check if a handover occurred _before_ further @con usage.
Sashiko pointed out that console_flush_one_record() was not doing this.
In console_flush_one_record(), after emitting a record, move the further
usage of @con after the handover check.
References
| URL | Tags | |
|---|---|---|
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"kernel/printk/printk.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "f0104a7b730de32eefb3d4a27279592b5504ad59",
"status": "affected",
"version": "c158834b223fbfab3a14855ac203b8d9cddbbefd",
"versionType": "git"
},
{
"lessThan": "fbf9bb81b21537ede387a31cc586f1d2ce66a74e",
"status": "affected",
"version": "c158834b223fbfab3a14855ac203b8d9cddbbefd",
"versionType": "git"
},
{
"lessThan": "8f194dee0c0d1223255bae1429e1939882f540fc",
"status": "affected",
"version": "c158834b223fbfab3a14855ac203b8d9cddbbefd",
"versionType": "git"
},
{
"lessThan": "36630cafbeede0b64c370edb2f7b4094327ee1e0",
"status": "affected",
"version": "c158834b223fbfab3a14855ac203b8d9cddbbefd",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"kernel/printk/printk.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\nprintk: Fix possible console use-after-free\n\nWhen emitting a record via legacy printing, it is possible that a handover\nto another legacy printing context occurs. When a context has performed a\nhandover, the console SRCU read lock is released and the pointer to the\nconsole struct might now be invalid. Therefore, after calling\nnbcon_legacy_emit_next_record() or console_emit_next_record(), it is\nnecessary to check if a handover occurred _before_ further @con usage.\n\nSashiko pointed out that console_flush_one_record() was not doing this.\n\nIn console_flush_one_record(), after emitting a record, move the further\nusage of @con after the handover check."
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T09:06:07.190Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/f0104a7b730de32eefb3d4a27279592b5504ad59"
},
{
"url": "https://git.kernel.org/stable/c/fbf9bb81b21537ede387a31cc586f1d2ce66a74e"
},
{
"url": "https://git.kernel.org/stable/c/8f194dee0c0d1223255bae1429e1939882f540fc"
},
{
"url": "https://git.kernel.org/stable/c/36630cafbeede0b64c370edb2f7b4094327ee1e0"
}
],
"title": "printk: Fix possible console use-after-free",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-93134",
"datePublished": "2026-09-17T16:11:36.077Z",
"dateReserved": "2026-09-17T16:02:15.087Z",
"dateUpdated": "2026-10-19T09:06:07.190Z",
"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-89987 (GCVE-0-2026-89987)
Vulnerability from cvelistv5
Published
2026-09-16 10:33
Modified
2026-10-30 12:33
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
mm/huge_memory: transfer the pmd dirty bit to the folio on zap
zap_huge_pmd_folio() propagates the pmd young bit to the folio for the
file case, but not the dirty bit. The pte path does propagate it, in
zap_present_folio_ptes() and so does the pmd split path, in
__split_huge_pmd_locked().
For most file mappings the omission is harmless, because writing to a
shared file mapping goes through page_mkwrite(), which dirties the folio.
tmpfs is different: it has no page_mkwrite(), and vma_wants_writenotify()
is false for it, so a *read* fault on a MAP_SHARED tmpfs mapping installs
a writable pmd via do_read_fault(). do_read_fault() does not call
fault_dirty_shared_page(), so subsequent stores through that mapping set
only the hardware dirty bit in the pmd and never call folio_mark_dirty().
A shmem folio allocated by a fault is marked uptodate but not dirty (see
the clear: block in shmem_get_folio_gfp()), so PG_dirty is never set at
all.
Unmapping such a folio - munmap(), or exit_mmap() when the process dies -
then loses the only record that it was written, because zap_huge_pmd()
drops the pmd without transferring the dirty bit. Reclaim afterwards sees
a clean shmem folio: the whole swap-out block in shrink_folio_list() is
inside "if (folio_test_dirty(folio))", so pageout() is skipped and the
folio falls into __remove_mapping(). There, folio_is_file_lru() is false
for a swapbacked folio, so no shadow entry is created and
__filemap_remove_folio(folio, NULL) simply empties the i_pages slot. The
data is freed without ever being written to swap, and the next fault on
that index returns a freshly zeroed folio.
This is silent data loss for any process that keeps state in a MAP_SHARED
tmpfs segment across an unmap - for example a cache handed from one
process generation to the next through /dev/shm. It requires the folio to
be PMD-mapped, so it only shows up once shmem THP is enabled (which is
what we did in Meta fleet and started noticing crashes); with THP off the
pte path transfers the dirty bit correctly. It also only becomes visible
when swap is enabled, because with no swap device shmem folios (which are
on the anon LRU) are not scanned by reclaim at all, so the clean folio is
never dropped.
Reproduced on x86_64 with a tmpfs mounted huge=within_size: read-fault a
2MB-backed region, write a known pattern through the resulting mapping,
munmap, force reclaim of the cgroup, then re-map and read back. Without
this patch the region reads back as zeros and vmstat shows zswpout 0 - the
data was discarded rather than swapped. With this patch the region reads
back correctly and the pages are swapped out as expected. With
huge=never, or when the first touch is a write, the test passes either
way.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: b5072380eb619786990cd9eab3ade05d09ccd89e Version: b5072380eb619786990cd9eab3ade05d09ccd89e Version: b5072380eb619786990cd9eab3ade05d09ccd89e Version: b5072380eb619786990cd9eab3ade05d09ccd89e Version: b5072380eb619786990cd9eab3ade05d09ccd89e Version: b5072380eb619786990cd9eab3ade05d09ccd89e Version: b5072380eb619786990cd9eab3ade05d09ccd89e Version: b5072380eb619786990cd9eab3ade05d09ccd89e |
||
{
"containers": {
"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": "79d8c89baa10612c1675972a632c65cdbe0936f6",
"status": "affected",
"version": "b5072380eb619786990cd9eab3ade05d09ccd89e",
"versionType": "git"
},
{
"lessThan": "13f4910d81b62a214cdb28b47237198fa96078a2",
"status": "affected",
"version": "b5072380eb619786990cd9eab3ade05d09ccd89e",
"versionType": "git"
},
{
"lessThan": "7a4c3f7b47ba34b021a7747081f330bfb76a4271",
"status": "affected",
"version": "b5072380eb619786990cd9eab3ade05d09ccd89e",
"versionType": "git"
},
{
"lessThan": "6e904f9e8cb0e39f60e1cdbea679f89346a563c2",
"status": "affected",
"version": "b5072380eb619786990cd9eab3ade05d09ccd89e",
"versionType": "git"
},
{
"lessThan": "fd720d3906877b3d2118cd480027e4bc6648f0c5",
"status": "affected",
"version": "b5072380eb619786990cd9eab3ade05d09ccd89e",
"versionType": "git"
},
{
"lessThan": "effe3cc6d4fdd407457eb30f7b0ef094393f0d64",
"status": "affected",
"version": "b5072380eb619786990cd9eab3ade05d09ccd89e",
"versionType": "git"
},
{
"lessThan": "9435cddf1378d149d826bd7bd1448a44bf96868d",
"status": "affected",
"version": "b5072380eb619786990cd9eab3ade05d09ccd89e",
"versionType": "git"
},
{
"lessThan": "fe6cf984939d8e12cb33a99673c8d026c5135e68",
"status": "affected",
"version": "b5072380eb619786990cd9eab3ade05d09ccd89e",
"versionType": "git"
}
]
},
{
"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": "4.8"
},
{
"lessThan": "4.8",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.273",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.224",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.191",
"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.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.273",
"versionStartIncluding": "4.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.224",
"versionStartIncluding": "4.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.191",
"versionStartIncluding": "4.8",
"vulnerable": true
},
{
"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.52",
"versionStartIncluding": "4.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.5",
"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\nmm/huge_memory: transfer the pmd dirty bit to the folio on zap\n\nzap_huge_pmd_folio() propagates the pmd young bit to the folio for the\nfile case, but not the dirty bit. The pte path does propagate it, in\nzap_present_folio_ptes() and so does the pmd split path, in\n__split_huge_pmd_locked().\n\nFor most file mappings the omission is harmless, because writing to a\nshared file mapping goes through page_mkwrite(), which dirties the folio. \ntmpfs is different: it has no page_mkwrite(), and vma_wants_writenotify()\nis false for it, so a *read* fault on a MAP_SHARED tmpfs mapping installs\na writable pmd via do_read_fault(). do_read_fault() does not call\nfault_dirty_shared_page(), so subsequent stores through that mapping set\nonly the hardware dirty bit in the pmd and never call folio_mark_dirty(). \nA shmem folio allocated by a fault is marked uptodate but not dirty (see\nthe clear: block in shmem_get_folio_gfp()), so PG_dirty is never set at\nall.\n\nUnmapping such a folio - munmap(), or exit_mmap() when the process dies -\nthen loses the only record that it was written, because zap_huge_pmd()\ndrops the pmd without transferring the dirty bit. Reclaim afterwards sees\na clean shmem folio: the whole swap-out block in shrink_folio_list() is\ninside \"if (folio_test_dirty(folio))\", so pageout() is skipped and the\nfolio falls into __remove_mapping(). There, folio_is_file_lru() is false\nfor a swapbacked folio, so no shadow entry is created and\n__filemap_remove_folio(folio, NULL) simply empties the i_pages slot. The\ndata is freed without ever being written to swap, and the next fault on\nthat index returns a freshly zeroed folio.\n\nThis is silent data loss for any process that keeps state in a MAP_SHARED\ntmpfs segment across an unmap - for example a cache handed from one\nprocess generation to the next through /dev/shm. It requires the folio to\nbe PMD-mapped, so it only shows up once shmem THP is enabled (which is\nwhat we did in Meta fleet and started noticing crashes); with THP off the\npte path transfers the dirty bit correctly. It also only becomes visible\nwhen swap is enabled, because with no swap device shmem folios (which are\non the anon LRU) are not scanned by reclaim at all, so the clean folio is\nnever dropped.\n\nReproduced on x86_64 with a tmpfs mounted huge=within_size: read-fault a\n2MB-backed region, write a known pattern through the resulting mapping,\nmunmap, force reclaim of the cgroup, then re-map and read back. Without\nthis patch the region reads back as zeros and vmstat shows zswpout 0 - the\ndata was discarded rather than swapped. With this patch the region reads\nback correctly and the pages are swapped out as expected. With\nhuge=never, or when the first touch is a write, the test passes either\nway."
}
],
"providerMetadata": {
"dateUpdated": "2026-10-30T12:33:41.932Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/79d8c89baa10612c1675972a632c65cdbe0936f6"
},
{
"url": "https://git.kernel.org/stable/c/13f4910d81b62a214cdb28b47237198fa96078a2"
},
{
"url": "https://git.kernel.org/stable/c/7a4c3f7b47ba34b021a7747081f330bfb76a4271"
},
{
"url": "https://git.kernel.org/stable/c/6e904f9e8cb0e39f60e1cdbea679f89346a563c2"
},
{
"url": "https://git.kernel.org/stable/c/fd720d3906877b3d2118cd480027e4bc6648f0c5"
},
{
"url": "https://git.kernel.org/stable/c/effe3cc6d4fdd407457eb30f7b0ef094393f0d64"
},
{
"url": "https://git.kernel.org/stable/c/9435cddf1378d149d826bd7bd1448a44bf96868d"
},
{
"url": "https://git.kernel.org/stable/c/fe6cf984939d8e12cb33a99673c8d026c5135e68"
}
],
"title": "mm/huge_memory: transfer the pmd dirty bit to the folio on zap",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-89987",
"datePublished": "2026-09-16T10:33:02.270Z",
"dateReserved": "2026-09-11T19:38:34.779Z",
"dateUpdated": "2026-10-30T12:33:41.932Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-74723 (GCVE-0-2026-74723)
Vulnerability from cvelistv5
Published
2026-08-22 15:33
Modified
2026-10-30 12:30
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
btrfs: lzo: reject inline extents without valid headers
[BUG]
For a crafted btrfs image, the following KASAN can be triggered when
reading an inline lzo compressed file extent:
BUG: KASAN: slab-out-of-bounds in lzo_decompress+0x57d/0x700
Read of size 4 at addr ffff888006f2e644 by task btrfs_lzo_inlin/77
Call Trace:
<TASK>
dump_stack_lvl+0x5b/0x70
print_report+0xd1/0x610
kasan_report+0xe0/0x110
__asan_report_load_n_noabort+0x13/0x20
lzo_decompress+0x57d/0x700
btrfs_decompress+0x140/0x1c0
uncompress_inline+0x147/0x1b0
btrfs_get_extent+0xb23/0x10a0
btrfs_do_readpage.constprop.0+0x538/0x1ac0
btrfs_readahead+0x32f/0x5f0
read_pages+0x16f/0x850
page_cache_ra_unbounded+0x296/0x490
do_page_cache_ra+0xd9/0x130
page_cache_sync_ra+0x3ee/0x6f0
filemap_get_pages+0x306/0x15c0
filemap_read+0x329/0xd00
btrfs_file_read_iter+0x1f8/0x2b0
vfs_read+0x4ef/0x720
ksys_read+0xf8/0x1d0
__x64_sys_read+0x71/0xb0
x64_sys_call+0x1ab0/0x1b70
do_syscall_64+0x61/0x470
entry_SYSCALL_64_after_hwframe+0x4b/0x53
</TASK>
[CAUSE]
For an inline lzo compressed file extent, there should always be one lzo
header, recording the total length of the compressed data, followed by
one segment header, recording the compressed lzo payload.
But if a crafted inline lzo compressed file extent contains only an lzo
header, without the segment header or payload, lzo_decompress() will
still try to read the segment header, causing a read beyond the item
boundary.
Furthermore if the inline lzo compressed file extent is the first item
of the leaf, it will be at the extent buffer boundary. The above
out-of-boundary read will go beyond the extent buffer boundary,
triggering the above KASAN report.
[FIX]
Validate the total length of the inlined lzo compressed file extent, to
make sure there is at least one LZO header and one segment header, and a
non-zero payload.
[ Rework the commit message to remove slop ]
References
| URL | Tags | |||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: a6fa6fae40ec336c7df6155255ae64ebef43a8bc Version: a6fa6fae40ec336c7df6155255ae64ebef43a8bc Version: a6fa6fae40ec336c7df6155255ae64ebef43a8bc Version: a6fa6fae40ec336c7df6155255ae64ebef43a8bc Version: a6fa6fae40ec336c7df6155255ae64ebef43a8bc Version: a6fa6fae40ec336c7df6155255ae64ebef43a8bc |
||
{
"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": "0b824d657d2403e8dbe4257d62825e66f79dcf8c",
"status": "affected",
"version": "a6fa6fae40ec336c7df6155255ae64ebef43a8bc",
"versionType": "git"
},
{
"lessThan": "5d00c9c1c951ae82d498eabbdfff973252a05c50",
"status": "affected",
"version": "a6fa6fae40ec336c7df6155255ae64ebef43a8bc",
"versionType": "git"
},
{
"lessThan": "fd150d7c8e0ad9d721c011cfd4cc0f3c65bd6834",
"status": "affected",
"version": "a6fa6fae40ec336c7df6155255ae64ebef43a8bc",
"versionType": "git"
},
{
"lessThan": "056876c9db1e969bfcf7d8583c7696cc0dd080df",
"status": "affected",
"version": "a6fa6fae40ec336c7df6155255ae64ebef43a8bc",
"versionType": "git"
},
{
"lessThan": "fc50b475ad27f50b4dcc98fc4c44e8802bc1b248",
"status": "affected",
"version": "a6fa6fae40ec336c7df6155255ae64ebef43a8bc",
"versionType": "git"
},
{
"lessThan": "0fa78ef637deb5dbe341582f88553a4bce496de0",
"status": "affected",
"version": "a6fa6fae40ec336c7df6155255ae64ebef43a8bc",
"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": "2.6.38"
},
{
"lessThan": "2.6.38",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.191",
"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.1.191",
"versionStartIncluding": "2.6.38",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.160",
"versionStartIncluding": "2.6.38",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.114",
"versionStartIncluding": "2.6.38",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.57",
"versionStartIncluding": "2.6.38",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.9",
"versionStartIncluding": "2.6.38",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"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\nbtrfs: lzo: reject inline extents without valid headers\n\n[BUG]\nFor a crafted btrfs image, the following KASAN can be triggered when\nreading an inline lzo compressed file extent:\n\n BUG: KASAN: slab-out-of-bounds in lzo_decompress+0x57d/0x700\n Read of size 4 at addr ffff888006f2e644 by task btrfs_lzo_inlin/77\n\n Call Trace:\n \u003cTASK\u003e\n dump_stack_lvl+0x5b/0x70\n print_report+0xd1/0x610\n kasan_report+0xe0/0x110\n __asan_report_load_n_noabort+0x13/0x20\n lzo_decompress+0x57d/0x700\n btrfs_decompress+0x140/0x1c0\n uncompress_inline+0x147/0x1b0\n btrfs_get_extent+0xb23/0x10a0\n btrfs_do_readpage.constprop.0+0x538/0x1ac0\n btrfs_readahead+0x32f/0x5f0\n read_pages+0x16f/0x850\n page_cache_ra_unbounded+0x296/0x490\n do_page_cache_ra+0xd9/0x130\n page_cache_sync_ra+0x3ee/0x6f0\n filemap_get_pages+0x306/0x15c0\n filemap_read+0x329/0xd00\n btrfs_file_read_iter+0x1f8/0x2b0\n vfs_read+0x4ef/0x720\n ksys_read+0xf8/0x1d0\n __x64_sys_read+0x71/0xb0\n x64_sys_call+0x1ab0/0x1b70\n do_syscall_64+0x61/0x470\n entry_SYSCALL_64_after_hwframe+0x4b/0x53\n \u003c/TASK\u003e\n\n[CAUSE]\nFor an inline lzo compressed file extent, there should always be one lzo\nheader, recording the total length of the compressed data, followed by\none segment header, recording the compressed lzo payload.\n\nBut if a crafted inline lzo compressed file extent contains only an lzo\nheader, without the segment header or payload, lzo_decompress() will\nstill try to read the segment header, causing a read beyond the item\nboundary.\n\nFurthermore if the inline lzo compressed file extent is the first item\nof the leaf, it will be at the extent buffer boundary. The above\nout-of-boundary read will go beyond the extent buffer boundary,\ntriggering the above KASAN report.\n\n[FIX]\nValidate the total length of the inlined lzo compressed file extent, to\nmake sure there is at least one LZO header and one segment header, and a\nnon-zero payload.\n\n[ Rework the commit message to remove slop ]"
}
],
"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 storage servers exporting a btrfs volume via nfsd or ksmbd, remote client read I/O reaches uncompress_inline\u2192lzo_decompress on the server kernel; crafted inline LZO extents in a mounted image are parsed without local syscall access.\nAC:L - A btrfs image with an inline LZO extent containing only the 4-byte total header deterministically drives get_unaligned_le32 past the kmalloc copy in lzo_decompress(); tree-checker skips compressed-inline validation so mount succeeds and a normal read triggers the slab OOB.\nPR:N - Triggering requires only read access to exported btrfs content (nfsd/ksmbd read, loop-mount with CAP_SYS_ADMIN in a user namespace, or udisks-assisted mount); creating the malformed metadata needs offline image crafting, not init-namespace root on the victim.\nUI:N - Exploitation is the attacker\u0027s own read against an already-mounted/exported btrfs volume containing the crafted extent; no separate victim must mount media, click a dialog, or perform other interaction beyond the attacker\u0027s read/open.\nS:U - The slab out-of-bounds read and any resulting kernel memory misuse stay within the host kernel security domain; no VM escape, IOMMU bypass, or sandbox boundary is crossed.\nC:H - get_unaligned_le32 reads up to four bytes past the kmalloc buffer holding the inline extent, leaking adjacent slab contents that can include kernel pointers and enable further kernel memory disclosure.\nI:H - Slab-out-of-bounds access is kernel memory corruption; adjacent kmalloc objects can be groomed and the disclosed pointers chained into arbitrary write or control-flow hijack primitives during repeated reads.\nA:H - KASAN reports slab-out-of-bounds in lzo_decompress on read; the invalid access can fault into adjacent slab objects and oops the kernel, and repeated reads can destabilize or hang the host."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-30T12:30:23.837Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/0b824d657d2403e8dbe4257d62825e66f79dcf8c"
},
{
"url": "https://git.kernel.org/stable/c/5d00c9c1c951ae82d498eabbdfff973252a05c50"
},
{
"url": "https://git.kernel.org/stable/c/fd150d7c8e0ad9d721c011cfd4cc0f3c65bd6834"
},
{
"url": "https://git.kernel.org/stable/c/056876c9db1e969bfcf7d8583c7696cc0dd080df"
},
{
"url": "https://git.kernel.org/stable/c/fc50b475ad27f50b4dcc98fc4c44e8802bc1b248"
},
{
"url": "https://git.kernel.org/stable/c/0fa78ef637deb5dbe341582f88553a4bce496de0"
}
],
"title": "btrfs: lzo: reject inline extents without valid headers",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-74723",
"datePublished": "2026-08-22T15:33:15.196Z",
"dateReserved": "2026-08-15T05:44:03.929Z",
"dateUpdated": "2026-10-30T12:30:23.837Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-98432 (GCVE-0-2026-98432)
Vulnerability from cvelistv5
Published
2026-10-15 12:08
Modified
2026-11-03 06:08
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
ipv4: free inet_opt and ireq_opt after an RCU grace period
tcp_v4_syn_recv_sock() transfers ownership of ireq->ireq_opt to the
child socket (newinet->inet_opt) without copying it.
Another cpu can concurrently process a retransmitted SYN for the same
request socket, and send a SYNACK from tcp_check_req().
tcp_v4_send_synack() and inet_csk_route_req() read ireq->ireq_opt
under rcu_read_lock() only, and ip_build_and_send_pkt() and
ip_options_build() then read opt->optlen twice.
Note that the SYNACK timer itself is not an issue: it holds a
reference on its request socket, and inet_csk_reqsk_queue_drop()
calls timer_delete_sync() before the child can be freed.
Since commit 079096f103fa ("tcp/dccp: install syn_recv requests
into ehash table"), request sockets are processed without holding
the listener lock, so nothing prevents the child socket from being
freed while the SYNACK is still being built. TCP child sockets do
not have SOCK_RCU_FREE, and inet_sock_destruct() frees inet_opt
with a plain kfree(), leading to a use-after-free in
ip_options_build().
A similar issue exists with request socket migration
(net.ipv4.tcp_migrate_req=1, or a BPF_SK_REUSEPORT_SELECT_OR_MIGRATE
program). reqsk_timer_handler() clones the request socket with
inet_reqsk_clone(), so that the old request socket and its clone
share the same ireq_opt, then reqsk_migrate_reset() clears the
pointer in the old one. Another cpu holding a reference on the old
request socket can still be using these options (sending a SYNACK,
or creating a child in tcp_v4_syn_recv_sock()) when the clone is
freed, and tcp_v4_reqsk_destructor() also uses a plain kfree().
Readers already use RCU, and other paths replacing inet_opt
(do_ip_setsockopt(), cipso_v4_sock_setattr()...) already use
kfree_rcu(). Use kfree_rcu() in inet_sock_destruct() and
tcp_v4_reqsk_destructor() as well.
IPv6 is not affected by the first issue, because tcp_v6_syn_recv_sock()
duplicates the options. tcp_v6_reqsk_destructor() has the same
migration issue with ipv6_opt, which is only set by CALIPSO. This
will be addressed in a separate patch.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 079096f103faca2dd87342cca6f23d4b34da8871 Version: 079096f103faca2dd87342cca6f23d4b34da8871 Version: 079096f103faca2dd87342cca6f23d4b34da8871 Version: 079096f103faca2dd87342cca6f23d4b34da8871 Version: 079096f103faca2dd87342cca6f23d4b34da8871 Version: 079096f103faca2dd87342cca6f23d4b34da8871 Version: 079096f103faca2dd87342cca6f23d4b34da8871 Version: 079096f103faca2dd87342cca6f23d4b34da8871 |
||
{
"containers": {
"adp": [
{
"providerMetadata": {
"dateUpdated": "2026-11-03T06:08:32.425Z",
"orgId": "af854a3a-2127-422b-91ae-364da2661108",
"shortName": "CVE"
},
"references": [
{
"url": "http://www.openwall.com/lists/oss-security/2026/10/30/1"
},
{
"url": "http://www.openwall.com/lists/oss-security/2026/10/30/6"
},
{
"url": "http://www.openwall.com/lists/oss-security/2026/10/31/5"
},
{
"url": "http://www.openwall.com/lists/oss-security/2026/11/03/1"
}
],
"title": "CVE Program Container"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/ipv4/af_inet.c",
"net/ipv4/tcp_ipv4.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "b3b027ef0cd322bfa839b9aaf5b27551eea54cf6",
"status": "affected",
"version": "079096f103faca2dd87342cca6f23d4b34da8871",
"versionType": "git"
},
{
"lessThan": "95a8c8fa9f27dce64c40c41c062de7728bf34ab5",
"status": "affected",
"version": "079096f103faca2dd87342cca6f23d4b34da8871",
"versionType": "git"
},
{
"lessThan": "89b5b1eb7d633c33832b7ff2c02e19a144705036",
"status": "affected",
"version": "079096f103faca2dd87342cca6f23d4b34da8871",
"versionType": "git"
},
{
"lessThan": "742f73df544e03744f2981c467d6542fe8172a2a",
"status": "affected",
"version": "079096f103faca2dd87342cca6f23d4b34da8871",
"versionType": "git"
},
{
"lessThan": "11a03ce3c4a62d84c10ccdfe47f8075006498568",
"status": "affected",
"version": "079096f103faca2dd87342cca6f23d4b34da8871",
"versionType": "git"
},
{
"lessThan": "a47406c769f72c070386985488f1c4d057df86b2",
"status": "affected",
"version": "079096f103faca2dd87342cca6f23d4b34da8871",
"versionType": "git"
},
{
"lessThan": "26d4c36d318cffbbd160884a0e4cec0da4da4936",
"status": "affected",
"version": "079096f103faca2dd87342cca6f23d4b34da8871",
"versionType": "git"
},
{
"lessThan": "e3f33b0a1d89d738e2b913dab519226eaf76e15b",
"status": "affected",
"version": "079096f103faca2dd87342cca6f23d4b34da8871",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/ipv4/af_inet.c",
"net/ipv4/tcp_ipv4.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.272",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.223",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.190",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.159",
"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.10",
"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.272",
"versionStartIncluding": "4.4",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.223",
"versionStartIncluding": "4.4",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.190",
"versionStartIncluding": "4.4",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.159",
"versionStartIncluding": "4.4",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.113",
"versionStartIncluding": "4.4",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.56",
"versionStartIncluding": "4.4",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.10",
"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\nipv4: free inet_opt and ireq_opt after an RCU grace period\n\ntcp_v4_syn_recv_sock() transfers ownership of ireq-\u003eireq_opt to the\nchild socket (newinet-\u003einet_opt) without copying it.\n\nAnother cpu can concurrently process a retransmitted SYN for the same\nrequest socket, and send a SYNACK from tcp_check_req().\ntcp_v4_send_synack() and inet_csk_route_req() read ireq-\u003eireq_opt\nunder rcu_read_lock() only, and ip_build_and_send_pkt() and\nip_options_build() then read opt-\u003eoptlen twice.\n\nNote that the SYNACK timer itself is not an issue: it holds a\nreference on its request socket, and inet_csk_reqsk_queue_drop()\ncalls timer_delete_sync() before the child can be freed.\n\nSince commit 079096f103fa (\"tcp/dccp: install syn_recv requests\ninto ehash table\"), request sockets are processed without holding\nthe listener lock, so nothing prevents the child socket from being\nfreed while the SYNACK is still being built. TCP child sockets do\nnot have SOCK_RCU_FREE, and inet_sock_destruct() frees inet_opt\nwith a plain kfree(), leading to a use-after-free in\nip_options_build().\n\nA similar issue exists with request socket migration\n(net.ipv4.tcp_migrate_req=1, or a BPF_SK_REUSEPORT_SELECT_OR_MIGRATE\nprogram). reqsk_timer_handler() clones the request socket with\ninet_reqsk_clone(), so that the old request socket and its clone\nshare the same ireq_opt, then reqsk_migrate_reset() clears the\npointer in the old one. Another cpu holding a reference on the old\nrequest socket can still be using these options (sending a SYNACK,\nor creating a child in tcp_v4_syn_recv_sock()) when the clone is\nfreed, and tcp_v4_reqsk_destructor() also uses a plain kfree().\n\nReaders already use RCU, and other paths replacing inet_opt\n(do_ip_setsockopt(), cipso_v4_sock_setattr()...) already use\nkfree_rcu(). Use kfree_rcu() in inet_sock_destruct() and\ntcp_v4_reqsk_destructor() as well.\n\nIPv6 is not affected by the first issue, because tcp_v6_syn_recv_sock()\nduplicates the options. tcp_v6_reqsk_destructor() has the same\nmigration issue with ipv6_opt, which is only set by CALIPSO. This\nwill be addressed in a separate 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 - An unauthenticated peer supplies IPv4 Record Route or Timestamp bytes in a TCP SYN; ip_rcv_options() and tcp_v4_save_options() store them in ireq_opt. Its retransmitted SYN follows tcp_v4_rcv()-\u003etcp_check_req()-\u003etcp_rtx_synack()-\u003etcp_v4_send_synack(), racing frees in patched inet_sock_destruct() or tcp_v4_reqsk_destructor().\nAC:L - On an accepting server, the peer can repeatedly create an option-bearing request and race a retransmitted SYN against completing and tearing down that same TCP connection. Both racing sides are attacker-induced; multicore scheduling and heap grooming do not constitute conditions outside the attacker\u0027s influence.\nPR:N - tcp_v4_rcv() reaches tcp_check_req() and tcp_v4_send_synack() during the TCP handshake, before application authentication. The target performs no capability or credential check on the peer\u0027s valid IPv4 Record Route or Timestamp option.\nUI:N - The peer sends the option-bearing SYN, retransmitted SYN, and handshake or teardown packets to an already listening service; no victim user must mount, open, or approve anything.\nS:U - The stale ip_options_rcu object is consumed and corrupts memory within the same host kernel in ip_build_and_send_pkt() and ip_options_build(); no separate security authority is crossed.\nC:H - After inet_sock_destruct() frees inet_opt, ip_options_build() copies opt-\u003e__data for the stale opt-\u003eoptlen into the network-bound SYNACK. Reclaiming the object can therefore disclose adjacent kernel heap contents directly to the peer.\nI:H - Reclaiming the freed ip_options_rcu lets stale optlen and srr, rr, or ts offsets steer ip_options_build() memcpy and address or timestamp writes, permitting out-of-bounds kernel writes and potential control-flow corruption.\nA:H - A reclaimed optlen can make ip_build_and_send_pkt() call skb_push() beyond the SYNACK headroom, invoking skb_under_panic(); the stale-offset writes in ip_options_build() can also oops the kernel."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-24T14:08:46.326Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/b3b027ef0cd322bfa839b9aaf5b27551eea54cf6"
},
{
"url": "https://git.kernel.org/stable/c/95a8c8fa9f27dce64c40c41c062de7728bf34ab5"
},
{
"url": "https://git.kernel.org/stable/c/89b5b1eb7d633c33832b7ff2c02e19a144705036"
},
{
"url": "https://git.kernel.org/stable/c/742f73df544e03744f2981c467d6542fe8172a2a"
},
{
"url": "https://git.kernel.org/stable/c/11a03ce3c4a62d84c10ccdfe47f8075006498568"
},
{
"url": "https://git.kernel.org/stable/c/a47406c769f72c070386985488f1c4d057df86b2"
},
{
"url": "https://git.kernel.org/stable/c/26d4c36d318cffbbd160884a0e4cec0da4da4936"
},
{
"url": "https://git.kernel.org/stable/c/e3f33b0a1d89d738e2b913dab519226eaf76e15b"
}
],
"title": "ipv4: free inet_opt and ireq_opt after an RCU grace period",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-98432",
"datePublished": "2026-10-15T12:08:22.205Z",
"dateReserved": "2026-09-25T10:25:14.348Z",
"dateUpdated": "2026-11-03T06:08:32.425Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-97945 (GCVE-0-2026-97945)
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/mm: Fix user-space data loss with MADV_FREE and THP
Some of users of Polars (a data analytics library) have lost production
data from this bug. They seem to have just the right combination of
huge pages, MADV_FREE and heavy reclaim pressure.
pmd_modify() masks the old value with (_HPAGE_CHG_MASK & ~_PAGE_DIRTY),
silently discarding the hardware dirty bit. The subsequent
pmd_mksaveddirty() call is supposed to transfer _PAGE_DIRTY into
_PAGE_SAVED_DIRTY when write-protecting, but the dirty bit was already
stripped from the value, so there is nothing left to transfer.
Contrast with pte_modify(), which keeps _PAGE_DIRTY_BITS in its mask,
and pud_modify(), which keeps _HPAGE_CHG_MASK untouched: pmd_modify()
is the odd one out. Any pmd_modify() on a writable, dirty PMD loses
the dirty state.
One visible consequence is data loss with MADV_FREE on PMD-mapped THP:
memset(buf, 0x5A, size); // PMD-mapped THP, PMD dirty
madvise(buf, size, MADV_FREE); // PMD cleaned but left writable,
// folio marked lazyfree
memset(buf, 0x5A, size); // hardware sets _PAGE_DIRTY again
mprotect(buf, size, PROT_READ); // pmd_modify() drops the dirty bit
mprotect(buf, size, PROT_READ|PROT_WRITE);
// ... memory pressure ...
Reclaim (e.g. under memcg pressure) then finds the lazyfree folio with
no dirty bit set anywhere and frees it in
__discard_anon_folio_pmd_locked(), even though the data was rewritten
after MADV_FREE; subsequent reads fault in fresh zero pages. NUMA
hinting alone can trigger the same loss, as do_huge_pmd_numa_page()
restores the PMD through pmd_modify() as well.
PMD-mapped file THPs are affected too: mprotect()/NUMA hinting dropping
the dirty bit means rewritten data is never written back.
Fix it by keeping _PAGE_DIRTY in the preserved mask, exactly like
pte_modify() and pud_modify() do. The existing
pmd_mksaveddirty()/pmd_clear_saveddirty() pair then performs the
hardware-dirty <-> saved-dirty transition based on the write bit,
preserving the shadow-stack encoding rules.
References
| URL | Tags | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"arch/x86/include/asm/pgtable.h"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "b5dec6dfb593d81fec15ba43c4fe5d58f10a49a2",
"status": "affected",
"version": "bb3aadf7d446aaf22c725b274e2c194ac5cb2111",
"versionType": "git"
},
{
"lessThan": "e4d569fe2f436a9b58c048fefabf56eab68c1b7e",
"status": "affected",
"version": "bb3aadf7d446aaf22c725b274e2c194ac5cb2111",
"versionType": "git"
},
{
"lessThan": "55ddbc2ca6d5db64d44c3fb8f8705b4d39eb30b7",
"status": "affected",
"version": "bb3aadf7d446aaf22c725b274e2c194ac5cb2111",
"versionType": "git"
},
{
"lessThan": "a5ad97cbcfcec31430268441c10eedde73200177",
"status": "affected",
"version": "bb3aadf7d446aaf22c725b274e2c194ac5cb2111",
"versionType": "git"
},
{
"lessThan": "f7491d7c81db0e7c304a7bd757a76d2fbeaff80e",
"status": "affected",
"version": "bb3aadf7d446aaf22c725b274e2c194ac5cb2111",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"arch/x86/include/asm/pgtable.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.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.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.2.7",
"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\nx86/mm: Fix user-space data loss with MADV_FREE and THP\n\nSome of users of Polars (a data analytics library) have lost production\ndata from this bug. They seem to have just the right combination of\nhuge pages, MADV_FREE and heavy reclaim pressure.\n\npmd_modify() masks the old value with (_HPAGE_CHG_MASK \u0026 ~_PAGE_DIRTY),\nsilently discarding the hardware dirty bit. The subsequent\npmd_mksaveddirty() call is supposed to transfer _PAGE_DIRTY into\n_PAGE_SAVED_DIRTY when write-protecting, but the dirty bit was already\nstripped from the value, so there is nothing left to transfer.\n\nContrast with pte_modify(), which keeps _PAGE_DIRTY_BITS in its mask,\nand pud_modify(), which keeps _HPAGE_CHG_MASK untouched: pmd_modify()\nis the odd one out. Any pmd_modify() on a writable, dirty PMD loses\nthe dirty state.\n\nOne visible consequence is data loss with MADV_FREE on PMD-mapped THP:\n\n memset(buf, 0x5A, size); // PMD-mapped THP, PMD dirty\n madvise(buf, size, MADV_FREE); // PMD cleaned but left writable,\n // folio marked lazyfree\n memset(buf, 0x5A, size); // hardware sets _PAGE_DIRTY again\n mprotect(buf, size, PROT_READ); // pmd_modify() drops the dirty bit\n mprotect(buf, size, PROT_READ|PROT_WRITE);\n // ... memory pressure ...\n\nReclaim (e.g. under memcg pressure) then finds the lazyfree folio with\nno dirty bit set anywhere and frees it in\n__discard_anon_folio_pmd_locked(), even though the data was rewritten\nafter MADV_FREE; subsequent reads fault in fresh zero pages. NUMA\nhinting alone can trigger the same loss, as do_huge_pmd_numa_page()\nrestores the PMD through pmd_modify() as well.\n\nPMD-mapped file THPs are affected too: mprotect()/NUMA hinting dropping\nthe dirty bit means rewritten data is never written back.\n\nFix it by keeping _PAGE_DIRTY in the preserved mask, exactly like\npte_modify() and pud_modify() do. The existing\npmd_mksaveddirty()/pmd_clear_saveddirty() pair then performs the\nhardware-dirty \u003c-\u003e saved-dirty transition based on the write bit,\npreserving the shadow-stack encoding rules."
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T09:11:11.655Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/b5dec6dfb593d81fec15ba43c4fe5d58f10a49a2"
},
{
"url": "https://git.kernel.org/stable/c/e4d569fe2f436a9b58c048fefabf56eab68c1b7e"
},
{
"url": "https://git.kernel.org/stable/c/55ddbc2ca6d5db64d44c3fb8f8705b4d39eb30b7"
},
{
"url": "https://git.kernel.org/stable/c/a5ad97cbcfcec31430268441c10eedde73200177"
},
{
"url": "https://git.kernel.org/stable/c/f7491d7c81db0e7c304a7bd757a76d2fbeaff80e"
}
],
"title": "x86/mm: Fix user-space data loss with MADV_FREE and THP",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-97945",
"datePublished": "2026-09-25T10:22:55.981Z",
"dateReserved": "2026-09-25T10:18:58.204Z",
"dateUpdated": "2026-10-19T09:11:11.655Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-98359 (GCVE-0-2026-98359)
Vulnerability from cvelistv5
Published
2026-10-06 08:46
Modified
2026-10-19 09:18
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
RDMA/core: Reject unregistering netdevs in ib_get_eth_speed
ib_device_get_netdev() intentionally returns a referenced net_device even
when it is unregistering, so matching and cleanup callers can still find
the association. The reference keeps struct net_device allocated, but does
not guarantee that the device remains operational.
ib_get_eth_speed() uses the returned device operationally by invoking its
ethtool callback. Although that call is made under RTNL, the function does
not verify the registration state first. An asynchronous RDMA port query
can therefore call into a netdev after NETDEV_UNREGISTER and ndo_uninit
have completed.
Check for NETREG_REGISTERED while holding RTNL and return -ENODEV for a
device which is being unregistered. Keeping RTNL across the check and the
ethtool operation prevents unregister from starting between them.
Keep the speed fallback and warning under RTNL as well, so the warning can
safely read netdev->name. Drop the netdev reference before releasing RTNL
once all accesses to the device are complete.
References
| URL | Tags | |||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: d41861942fc55c14b6280d9568a0d0112037f065 Version: d41861942fc55c14b6280d9568a0d0112037f065 Version: d41861942fc55c14b6280d9568a0d0112037f065 Version: d41861942fc55c14b6280d9568a0d0112037f065 Version: d41861942fc55c14b6280d9568a0d0112037f065 Version: d41861942fc55c14b6280d9568a0d0112037f065 |
||
{
"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": "be4b44c8b47c67a04c08b1a0aba18006b749ae6a",
"status": "affected",
"version": "d41861942fc55c14b6280d9568a0d0112037f065",
"versionType": "git"
},
{
"lessThan": "45c60ffc79771bad154f224a05753191cf1b37bc",
"status": "affected",
"version": "d41861942fc55c14b6280d9568a0d0112037f065",
"versionType": "git"
},
{
"lessThan": "520cd057f138ed8dbe8e05f0eae3a8ed4c5d3a5e",
"status": "affected",
"version": "d41861942fc55c14b6280d9568a0d0112037f065",
"versionType": "git"
},
{
"lessThan": "a219459fbd1b2598e63c81a52847eba6c28b72d2",
"status": "affected",
"version": "d41861942fc55c14b6280d9568a0d0112037f065",
"versionType": "git"
},
{
"lessThan": "5bd42f74ec3b4f4687fb600f367af0828d513b3c",
"status": "affected",
"version": "d41861942fc55c14b6280d9568a0d0112037f065",
"versionType": "git"
},
{
"lessThan": "ef9fbe1b93f3b617b96e86d5cd76b3fa44514cb5",
"status": "affected",
"version": "d41861942fc55c14b6280d9568a0d0112037f065",
"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.14"
},
{
"lessThan": "4.14",
"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.112",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.54",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.8",
"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": "4.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.158",
"versionStartIncluding": "4.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.112",
"versionStartIncluding": "4.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.54",
"versionStartIncluding": "4.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.8",
"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/core: Reject unregistering netdevs in ib_get_eth_speed\n\nib_device_get_netdev() intentionally returns a referenced net_device even\nwhen it is unregistering, so matching and cleanup callers can still find\nthe association. The reference keeps struct net_device allocated, but does\nnot guarantee that the device remains operational.\n\nib_get_eth_speed() uses the returned device operationally by invoking its\nethtool callback. Although that call is made under RTNL, the function does\nnot verify the registration state first. An asynchronous RDMA port query\ncan therefore call into a netdev after NETDEV_UNREGISTER and ndo_uninit\nhave completed.\n\nCheck for NETREG_REGISTERED while holding RTNL and return -ENODEV for a\ndevice which is being unregistered. Keeping RTNL across the check and the\nethtool operation prevents unregister from starting between them.\n\nKeep the speed fallback and warning under RTNL as well, so the warning can\nsafely read netdev-\u003ename. Drop the netdev reference before releasing RTNL\nonce all accesses to the device are complete."
}
],
"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 - ib_get_eth_speed() is reached via ib_query_port() -\u003e driver query_port (rxe_query_port, siw_query_port, irdma, bnxt_re, hns, mana, erdma...) from local uverbs QUERY_PORT ioctls on /dev/infiniband/uverbs*, RDMA_NLDEV_CMD_PORT_GET netlink or the ib cache work; no remote peer supplies data to this path.\nAC:H - The faulty call needs the port\u0027s bound netdev to be between NETDEV_UNREGISTER/ndo_uninit and the queued ib_unregister_device_queued() teardown. The querying user can hammer query_port, but unregistering that netdev is an admin or driver action they cannot arrange on demand.\nPR:L - The query side needs no capability: RDMA_NLDEV_CMD_PORT_GET has no RDMA_NL_ADMIN_PERM flag, and uverbs query_port only needs an open uverbs device. Binding rxe/siw via RDMA_NLDEV_CMD_NEWLINK needs init-ns CAP_NET_ADMIN, so the attacker relies on an existing RoCE/iWARP port.\nUI:N - No victim action is needed. The attacker only issues port queries, and the unregister event is a system state change (counted under AC:H), not a user being tricked into doing something.\nS:U - The bug and its impact are both in the host kernel. No VM, IOMMU or sandbox boundary is crossed.\nC:H - __ethtool_get_link_ksettings() runs on a netdev whose ndo_uninit has already run. For example, ipvlan_ethtool_get_link_ksettings() dereferences ipvlan-\u003ephy_dev after ipvlan_port_put() dropped the port\u0027s phy_dev reference, which lets freed net_device memory be read.\nI:H - The stale or freed lower net_device is used to load and call ethtool_ops-\u003eget_link_ksettings through a function pointer. A use-after-free that reaches an indirect call can be groomed toward control-flow hijack.\nA:H - syzbot hit this as a kernel crash. Calling ethtool callbacks on a torn-down device (freed pcpu/port state in macvlan/ipvlan/team uninit) oopses the kernel."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T09:18:09.934Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/be4b44c8b47c67a04c08b1a0aba18006b749ae6a"
},
{
"url": "https://git.kernel.org/stable/c/45c60ffc79771bad154f224a05753191cf1b37bc"
},
{
"url": "https://git.kernel.org/stable/c/520cd057f138ed8dbe8e05f0eae3a8ed4c5d3a5e"
},
{
"url": "https://git.kernel.org/stable/c/a219459fbd1b2598e63c81a52847eba6c28b72d2"
},
{
"url": "https://git.kernel.org/stable/c/5bd42f74ec3b4f4687fb600f367af0828d513b3c"
},
{
"url": "https://git.kernel.org/stable/c/ef9fbe1b93f3b617b96e86d5cd76b3fa44514cb5"
}
],
"title": "RDMA/core: Reject unregistering netdevs in ib_get_eth_speed",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-98359",
"datePublished": "2026-10-06T08:46:45.938Z",
"dateReserved": "2026-09-25T10:25:14.344Z",
"dateUpdated": "2026-10-19T09:18:09.934Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-64435 (GCVE-0-2026-64435)
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:
audit: Fix data races of skb_queue_len() readers on audit_queue
Multiple readers access audit_queue.qlen via skb_queue_len() without
holding the queue lock or using READ_ONCE(), while kauditd writes to
this field via the skb_dequeue() → __skb_unlink() path with WRITE_ONCE()
protected by a spinlock. This constitutes data races.
All affected skb_queue_len(&audit_queue) call sites:
- kauditd_thread() wait_event_freezable() condition
- audit_receive_msg() AUDIT_GET handler (s.backlog assignment)
- audit_receive() backlog check
- audit_log_start() backlog check and pr_warn()
KCSAN reports the following conflicting access pattern (one example):
==================================================================
BUG: KCSAN: data-race in audit_log_start / skb_dequeue
write (marked) to 0xffffffff8512ee20 of 4 bytes by task 661 on cpu 57:
skb_dequeue+0x70/0xf0
kauditd_send_queue+0x71/0x220
kauditd_thread+0x1cb/0x430
kthread+0x1c2/0x210
ret_from_fork+0x162/0x1a0
ret_from_fork_asm+0x1a/0x30
read to 0xffffffff8512ee20 of 4 bytes by task 36586 on cpu 1:
audit_log_start+0x2a0/0x6b0
audit_core_dumps+0x64/0xa0
do_coredump+0x14b/0x1260
get_signal+0xeb2/0xf70
arch_do_signal_or_restart+0x41/0x170
exit_to_user_mode_loop+0xa2/0x1c0
do_syscall_64+0x1a3/0x1c0
entry_SYSCALL_64_after_hwframe+0x76/0xe0
value changed: 0x00000001 -> 0x00000000
==================================================================
Resolve the race by switching to lockless helper skb_queue_len_lockless(),
which internally uses READ_ONCE() and properly pairs with the WRITE_ONCE()
write accesses already present on the writer side.
[PM: line length tweak]
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 3197542482df22c2a131d4a813280bd7c54cedf5 Version: 3197542482df22c2a131d4a813280bd7c54cedf5 Version: 3197542482df22c2a131d4a813280bd7c54cedf5 Version: 3197542482df22c2a131d4a813280bd7c54cedf5 Version: 3197542482df22c2a131d4a813280bd7c54cedf5 Version: 3197542482df22c2a131d4a813280bd7c54cedf5 Version: 3197542482df22c2a131d4a813280bd7c54cedf5 Version: 3197542482df22c2a131d4a813280bd7c54cedf5 |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-64435",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "yes"
},
{
"Technical Impact": "partial"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T15:40:38.595570Z",
"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:38:28.743Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"kernel/audit.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "69f98fff30bdaa72b0cb0e7e078ab6456a0a59b0",
"status": "affected",
"version": "3197542482df22c2a131d4a813280bd7c54cedf5",
"versionType": "git"
},
{
"lessThan": "b35597bdae1a5d8395da4b9baa993b9b71f74d68",
"status": "affected",
"version": "3197542482df22c2a131d4a813280bd7c54cedf5",
"versionType": "git"
},
{
"lessThan": "e575dabb805252e3113fdc3f56f6ecacfde422d0",
"status": "affected",
"version": "3197542482df22c2a131d4a813280bd7c54cedf5",
"versionType": "git"
},
{
"lessThan": "7ff42312ccde549f8c698723822c7db35107a39b",
"status": "affected",
"version": "3197542482df22c2a131d4a813280bd7c54cedf5",
"versionType": "git"
},
{
"lessThan": "a3d85dec60bb0622360fc176b2a51abdbe2ff0ad",
"status": "affected",
"version": "3197542482df22c2a131d4a813280bd7c54cedf5",
"versionType": "git"
},
{
"lessThan": "fe997a84a385f840b593ead92e575503a5046cee",
"status": "affected",
"version": "3197542482df22c2a131d4a813280bd7c54cedf5",
"versionType": "git"
},
{
"lessThan": "c5186201fa7030289cc4fe23fae87a3fcb566856",
"status": "affected",
"version": "3197542482df22c2a131d4a813280bd7c54cedf5",
"versionType": "git"
},
{
"lessThan": "c9a71daaecb2fb1d8c704545cc0b1c920b9bf5d7",
"status": "affected",
"version": "3197542482df22c2a131d4a813280bd7c54cedf5",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"kernel/audit.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\naudit: Fix data races of skb_queue_len() readers on audit_queue\n\nMultiple readers access audit_queue.qlen via skb_queue_len() without\nholding the queue lock or using READ_ONCE(), while kauditd writes to\nthis field via the skb_dequeue() \u2192 __skb_unlink() path with WRITE_ONCE()\nprotected by a spinlock. This constitutes data races.\n\nAll affected skb_queue_len(\u0026audit_queue) call sites:\n - kauditd_thread() wait_event_freezable() condition\n - audit_receive_msg() AUDIT_GET handler (s.backlog assignment)\n - audit_receive() backlog check\n - audit_log_start() backlog check and pr_warn()\n\nKCSAN reports the following conflicting access pattern (one example):\n==================================================================\nBUG: KCSAN: data-race in audit_log_start / skb_dequeue\n\nwrite (marked) to 0xffffffff8512ee20 of 4 bytes by task 661 on cpu 57:\n skb_dequeue+0x70/0xf0\n kauditd_send_queue+0x71/0x220\n kauditd_thread+0x1cb/0x430\n kthread+0x1c2/0x210\n ret_from_fork+0x162/0x1a0\n ret_from_fork_asm+0x1a/0x30\n\nread to 0xffffffff8512ee20 of 4 bytes by task 36586 on cpu 1:\n audit_log_start+0x2a0/0x6b0\n audit_core_dumps+0x64/0xa0\n do_coredump+0x14b/0x1260\n get_signal+0xeb2/0xf70\n arch_do_signal_or_restart+0x41/0x170\n exit_to_user_mode_loop+0xa2/0x1c0\n do_syscall_64+0x1a3/0x1c0\n entry_SYSCALL_64_after_hwframe+0x76/0xe0\n\nvalue changed: 0x00000001 -\u003e 0x00000000\n==================================================================\n\nResolve the race by switching to lockless helper skb_queue_len_lockless(),\nwhich internally uses READ_ONCE() and properly pairs with the WRITE_ONCE()\nwrite accesses already present on the writer side.\n\n[PM: line length tweak]"
}
],
"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 - Unauthenticated packets matching a pre-existing nftables audit-level logging or xtables AUDIT rule reach audit_log_start() through the network receive and netfilter paths.\nAC:L - Parallel matching traffic invokes the vulnerable readers while feeding and waking kauditd, allowing the attacker to repeatedly drive both sides of the race.\nPR:N - The audit rule must already be configured, but the remote attacker needs no credentials or capabilities to send matching packets.\nUI:N - No victim action is required after the affected network-audit configuration is active.\nS:U - The race and its effects remain within the host kernel and its audit security authority.\nC:N - The raced value is only the 32-bit queue length; no pointer, packet contents, or adjacent memory is disclosed.\nI:L - An incorrect backlog decision can delay or discard audit records, causing limited corruption of the security audit trail without an arbitrary-write primitive.\nA:H - In hardened systems using AUDIT_FAIL_PANIC, a raced queue length interpreted as exceeding the limit from the GFP_ATOMIC packet-audit path calls audit_log_lost() and can panic the kernel."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-17T04:55:36.444Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/69f98fff30bdaa72b0cb0e7e078ab6456a0a59b0"
},
{
"url": "https://git.kernel.org/stable/c/b35597bdae1a5d8395da4b9baa993b9b71f74d68"
},
{
"url": "https://git.kernel.org/stable/c/e575dabb805252e3113fdc3f56f6ecacfde422d0"
},
{
"url": "https://git.kernel.org/stable/c/7ff42312ccde549f8c698723822c7db35107a39b"
},
{
"url": "https://git.kernel.org/stable/c/a3d85dec60bb0622360fc176b2a51abdbe2ff0ad"
},
{
"url": "https://git.kernel.org/stable/c/fe997a84a385f840b593ead92e575503a5046cee"
},
{
"url": "https://git.kernel.org/stable/c/c5186201fa7030289cc4fe23fae87a3fcb566856"
},
{
"url": "https://git.kernel.org/stable/c/c9a71daaecb2fb1d8c704545cc0b1c920b9bf5d7"
}
],
"title": "audit: Fix data races of skb_queue_len() readers on audit_queue",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-64435",
"datePublished": "2026-07-25T08:51:09.688Z",
"dateReserved": "2026-07-19T15:36:31.787Z",
"dateUpdated": "2026-10-19T20:38:28.743Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-98127 (GCVE-0-2026-98127)
Vulnerability from cvelistv5
Published
2026-09-25 10:36
Modified
2026-10-21 12:54
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
smb/client: validate new EOF for insert range
smb3_insert_range() does not check if the new file size
(i_size + len) is valid. This allows FALLOC_FL_INSERT_RANGE to bypass
RLIMIT_FSIZE, exceed s_maxbytes, or produce a size outside the loff_t
range.
Use check_add_overflow() to calculate the new EOF. Validate it with
inode_newsize_ok() before modifying the file.
Reproducer, using a file on a CIFS mount:
bash -c '
FILE=/mnt/cifs/repro
trap "" SIGXFSZ
ulimit -f 3072 # RLIMIT_FSIZE = 3 MiB
# A regular write is stopped at 3 MiB.
dd if=/dev/zero of="$FILE" bs=1M count=4 status=none
stat -c "size after write: %s" "$FILE"
# Insert 2 MiB into a 2 MiB file.
truncate -s 2M "$FILE"
fallocate -i -o 0 -l 2M "$FILE"
stat -c "size after insert: %s" "$FILE"
'
Before this change, the regular write stops at the 3 MiB limit, but
insert range grows the file to 4 MiB:
dd: error writing '/mnt/cifs/repro': File too large
size after write: 3145728
size after insert: 4194304
After this change, insert range also fails at the limit and leaves the
2 MiB file unchanged:
dd: error writing '/mnt/cifs/repro': File too large
size after write: 3145728
fallocate: fallocate failed: File too large
size after insert: 2097152
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": "b7f2e33d9f5db7b8e6e5e0a5a93d0c5e31870356",
"status": "affected",
"version": "7fe6fe95b936084dce6eedcc2cccadf96eafae73",
"versionType": "git"
},
{
"lessThan": "7c2c69045aa76ccaa7f16f1478eb312130ce4951",
"status": "affected",
"version": "7fe6fe95b936084dce6eedcc2cccadf96eafae73",
"versionType": "git"
},
{
"lessThan": "bc7602b9082ef195d913c4c16fa9853dd262333e",
"status": "affected",
"version": "7fe6fe95b936084dce6eedcc2cccadf96eafae73",
"versionType": "git"
},
{
"lessThan": "f8cbfe3a3fcee7d991fd223f660f3e5df13221cf",
"status": "affected",
"version": "7fe6fe95b936084dce6eedcc2cccadf96eafae73",
"versionType": "git"
},
{
"lessThan": "1519dc88c87f5346dae0464d7d6da1b6bf1f6e8e",
"status": "affected",
"version": "7fe6fe95b936084dce6eedcc2cccadf96eafae73",
"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": "5.13"
},
{
"lessThan": "5.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.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.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.7",
"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\nsmb/client: validate new EOF for insert range\n\nsmb3_insert_range() does not check if the new file size\n(i_size + len) is valid. This allows FALLOC_FL_INSERT_RANGE to bypass\nRLIMIT_FSIZE, exceed s_maxbytes, or produce a size outside the loff_t\nrange.\n\nUse check_add_overflow() to calculate the new EOF. Validate it with\ninode_newsize_ok() before modifying the file.\n\nReproducer, using a file on a CIFS mount:\n\n\tbash -c \u0027\n\t\tFILE=/mnt/cifs/repro\n\n\t\ttrap \"\" SIGXFSZ\n\t\tulimit -f 3072\t\t# RLIMIT_FSIZE = 3 MiB\n\n\t\t# A regular write is stopped at 3 MiB.\n\t\tdd if=/dev/zero of=\"$FILE\" bs=1M count=4 status=none\n\t\tstat -c \"size after write: %s\" \"$FILE\"\n\n\t\t# Insert 2 MiB into a 2 MiB file.\n\t\ttruncate -s 2M \"$FILE\"\n\t\tfallocate -i -o 0 -l 2M \"$FILE\"\n\t\tstat -c \"size after insert: %s\" \"$FILE\"\n\t\u0027\n\nBefore this change, the regular write stops at the 3 MiB limit, but\ninsert range grows the file to 4 MiB:\n\n\tdd: error writing \u0027/mnt/cifs/repro\u0027: File too large\n\tsize after write: 3145728\n\tsize after insert: 4194304\n\nAfter this change, insert range also fails at the limit and leaves the\n2 MiB file unchanged:\n\n\tdd: error writing \u0027/mnt/cifs/repro\u0027: File too large\n\tsize after write: 3145728\n\tfallocate: fallocate failed: File too large\n\tsize after insert: 2097152"
}
],
"providerMetadata": {
"dateUpdated": "2026-10-21T12:54:38.540Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/b7f2e33d9f5db7b8e6e5e0a5a93d0c5e31870356"
},
{
"url": "https://git.kernel.org/stable/c/7c2c69045aa76ccaa7f16f1478eb312130ce4951"
},
{
"url": "https://git.kernel.org/stable/c/bc7602b9082ef195d913c4c16fa9853dd262333e"
},
{
"url": "https://git.kernel.org/stable/c/f8cbfe3a3fcee7d991fd223f660f3e5df13221cf"
},
{
"url": "https://git.kernel.org/stable/c/1519dc88c87f5346dae0464d7d6da1b6bf1f6e8e"
}
],
"title": "smb/client: validate new EOF for insert range",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-98127",
"datePublished": "2026-09-25T10:36:08.406Z",
"dateReserved": "2026-09-25T10:25:14.318Z",
"dateUpdated": "2026-10-21T12:54:38.540Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-97561 (GCVE-0-2026-97561)
Vulnerability from cvelistv5
Published
2026-09-25 10:21
Modified
2026-10-30 12:37
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
smb: client: honor forceuid/forcegid when mapping SIDs to uid/gid
When the administrator mounts with forceuid or forcegid (uid=/gid=
mount options), they expect all files to appear owned by the specified
user/group. However, several code paths unconditionally called
sid_to_id() to overwrite cf_uid/cf_gid with server-provided values,
ignoring the administrator's explicit override:
- smb311_posix_info_to_fattr() (stat via POSIX extensions)
- cifs_posix_to_fattr() (readdir via POSIX extensions)
- parse_sec_desc() (CIFS ACL ownership mapping)
This allowed an untrusted server to dictate local file ownership even
when the mount was configured to force specific uid/gid values.
Fix all three call sites to check CIFS_MOUNT_OVERR_UID and
CIFS_MOUNT_OVERR_GID before calling sid_to_id(), following the
same pattern already used by cifs_unix_basic_to_fattr() for unix
extensions.
References
| URL | Tags | |||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 9409ae58e0759d010b347e7b19ebc90ab5d4b98f Version: 9409ae58e0759d010b347e7b19ebc90ab5d4b98f Version: 9409ae58e0759d010b347e7b19ebc90ab5d4b98f Version: 9409ae58e0759d010b347e7b19ebc90ab5d4b98f Version: 9409ae58e0759d010b347e7b19ebc90ab5d4b98f Version: 9409ae58e0759d010b347e7b19ebc90ab5d4b98f |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"fs/smb/client/cifsacl.c",
"fs/smb/client/inode.c",
"fs/smb/client/readdir.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "89a3b4704af2208e381c55037ff2d1e2365b83e4",
"status": "affected",
"version": "9409ae58e0759d010b347e7b19ebc90ab5d4b98f",
"versionType": "git"
},
{
"lessThan": "be6eccccec867c22d7c65fab4ea4e91ec3d5b8c6",
"status": "affected",
"version": "9409ae58e0759d010b347e7b19ebc90ab5d4b98f",
"versionType": "git"
},
{
"lessThan": "bc35de451c128d399ad185d6269f8847e97cd1c9",
"status": "affected",
"version": "9409ae58e0759d010b347e7b19ebc90ab5d4b98f",
"versionType": "git"
},
{
"lessThan": "6ac7a29691558bed18e2df1780636b8aa0fd13d5",
"status": "affected",
"version": "9409ae58e0759d010b347e7b19ebc90ab5d4b98f",
"versionType": "git"
},
{
"lessThan": "e1b74f8f8c1d13190b09fe623b729d36b7ac22a8",
"status": "affected",
"version": "9409ae58e0759d010b347e7b19ebc90ab5d4b98f",
"versionType": "git"
},
{
"lessThan": "18a72975e9f35aadecc75b031f693f2d1f49308f",
"status": "affected",
"version": "9409ae58e0759d010b347e7b19ebc90ab5d4b98f",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"fs/smb/client/cifsacl.c",
"fs/smb/client/inode.c",
"fs/smb/client/readdir.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": "6.1.*",
"status": "unaffected",
"version": "6.1.191",
"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.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.191",
"versionStartIncluding": "3.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.160",
"versionStartIncluding": "3.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.114",
"versionStartIncluding": "3.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.57",
"versionStartIncluding": "3.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.7",
"versionStartIncluding": "3.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "3.0",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nsmb: client: honor forceuid/forcegid when mapping SIDs to uid/gid\n\nWhen the administrator mounts with forceuid or forcegid (uid=/gid=\nmount options), they expect all files to appear owned by the specified\nuser/group. However, several code paths unconditionally called\nsid_to_id() to overwrite cf_uid/cf_gid with server-provided values,\nignoring the administrator\u0027s explicit override:\n\n - smb311_posix_info_to_fattr() (stat via POSIX extensions)\n - cifs_posix_to_fattr() (readdir via POSIX extensions)\n - parse_sec_desc() (CIFS ACL ownership mapping)\n\nThis allowed an untrusted server to dictate local file ownership even\nwhen the mount was configured to force specific uid/gid values.\n\nFix all three call sites to check CIFS_MOUNT_OVERR_UID and\nCIFS_MOUNT_OVERR_GID before calling sid_to_id(), following the\nsame pattern already used by cifs_unix_basic_to_fattr() for unix\nextensions."
}
],
"providerMetadata": {
"dateUpdated": "2026-10-30T12:37:25.329Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/89a3b4704af2208e381c55037ff2d1e2365b83e4"
},
{
"url": "https://git.kernel.org/stable/c/be6eccccec867c22d7c65fab4ea4e91ec3d5b8c6"
},
{
"url": "https://git.kernel.org/stable/c/bc35de451c128d399ad185d6269f8847e97cd1c9"
},
{
"url": "https://git.kernel.org/stable/c/6ac7a29691558bed18e2df1780636b8aa0fd13d5"
},
{
"url": "https://git.kernel.org/stable/c/e1b74f8f8c1d13190b09fe623b729d36b7ac22a8"
},
{
"url": "https://git.kernel.org/stable/c/18a72975e9f35aadecc75b031f693f2d1f49308f"
}
],
"title": "smb: client: honor forceuid/forcegid when mapping SIDs to uid/gid",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-97561",
"datePublished": "2026-09-25T10:21:50.067Z",
"dateReserved": "2026-09-24T16:01:01.155Z",
"dateUpdated": "2026-10-30T12:37:25.329Z",
"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-64116 (GCVE-0-2026-64116)
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: add NULL check for idev in ipv6_hop_ioam()
Reported by Sashiko:
The function ipv6_hop_ioam() accesses
__in6_dev_get(skb->dev)->cnf.ioam6_enabled without validating the returned
idev pointer. Because addrconf_ifdown() can concurrently clear dev->ip6_ptr
via RCU, __in6_dev_get() can return NULL during interface teardown, which
could cause a NULL pointer dereference when processing an IOAM Hop-by-Hop
option.
Let's add a check and use SKB_DROP_REASON_IPV6DISABLED accordingly.
References
| URL | Tags | ||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 9ee11f0fff205b4b3df9750bff5e94f97c71b6a0 Version: 9ee11f0fff205b4b3df9750bff5e94f97c71b6a0 Version: 9ee11f0fff205b4b3df9750bff5e94f97c71b6a0 Version: 9ee11f0fff205b4b3df9750bff5e94f97c71b6a0 Version: 9ee11f0fff205b4b3df9750bff5e94f97c71b6a0 Version: 9ee11f0fff205b4b3df9750bff5e94f97c71b6a0 Version: 9ee11f0fff205b4b3df9750bff5e94f97c71b6a0 |
||
{
"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": "c7e8971abd70e9d022f1c251ba2508f8dc7f2db8",
"status": "affected",
"version": "9ee11f0fff205b4b3df9750bff5e94f97c71b6a0",
"versionType": "git"
},
{
"lessThan": "09cbfd4b81ae90963dadb1de99b63b702e73290a",
"status": "affected",
"version": "9ee11f0fff205b4b3df9750bff5e94f97c71b6a0",
"versionType": "git"
},
{
"lessThan": "1dca7e491f070ac49b3d934f16ee953a53b37f38",
"status": "affected",
"version": "9ee11f0fff205b4b3df9750bff5e94f97c71b6a0",
"versionType": "git"
},
{
"lessThan": "902daac307eb7e1955ce05b071950f3cba88c963",
"status": "affected",
"version": "9ee11f0fff205b4b3df9750bff5e94f97c71b6a0",
"versionType": "git"
},
{
"lessThan": "abdd03229414b5a52943b65a60f34b84cea5ac59",
"status": "affected",
"version": "9ee11f0fff205b4b3df9750bff5e94f97c71b6a0",
"versionType": "git"
},
{
"lessThan": "cf75eb6617042c8cff6112daeed7791809fc9dd2",
"status": "affected",
"version": "9ee11f0fff205b4b3df9750bff5e94f97c71b6a0",
"versionType": "git"
},
{
"lessThan": "d4ea0dfd75011b78cebf3808f98ac4c4f51a6fb9",
"status": "affected",
"version": "9ee11f0fff205b4b3df9750bff5e94f97c71b6a0",
"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": "5.15"
},
{
"lessThan": "5.15",
"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.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.15.210",
"versionStartIncluding": "5.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.176",
"versionStartIncluding": "5.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.143",
"versionStartIncluding": "5.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.92",
"versionStartIncluding": "5.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.34",
"versionStartIncluding": "5.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.0.11",
"versionStartIncluding": "5.15",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1",
"versionStartIncluding": "5.15",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nipv6: ioam: add NULL check for idev in ipv6_hop_ioam()\n\nReported by Sashiko:\n\nThe function ipv6_hop_ioam() accesses\n__in6_dev_get(skb-\u003edev)-\u003ecnf.ioam6_enabled without validating the returned\nidev pointer. Because addrconf_ifdown() can concurrently clear dev-\u003eip6_ptr\nvia RCU, __in6_dev_get() can return NULL during interface teardown, which\ncould cause a NULL pointer dereference when processing an IOAM Hop-by-Hop\noption.\n\nLet\u0027s add a check and use SKB_DROP_REASON_IPV6DISABLED accordingly."
}
],
"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 IPv6 receive path (ipv6_rcv \u2192 ip6_rcv_core \u2192 ipv6_parse_hopopts \u2192 ipv6_hop_ioam), triggered by a remotely deliverable IPv6 packet with a Hop-by-Hop IOAM option.\nAC:L - An attacker can reliably win the TOCTOU race by flooding IOAM Hop-by-Hop packets while concurrently unregistering the netdev (e.g., via user namespace with CAP_NET_ADMIN and `ip link del`), controlling both sides of the race.\nPR:N - No kernel privileges are required to send crafted IPv6 packets; interface unregister also occurs during normal container/pod lifecycle on shared cloud hosts without attacker admin action.\nUI:N - Exploitation requires only sending network packets during interface teardown and does not depend on any victim user action.\nS:U - Impact is a kernel NULL dereference and crash on the receiving host; it does not cross a VM, container, or IOMMU security boundary.\nC:N - The fault is a NULL pointer read at a fixed offset (idev-\u003ecnf.ioam6_enabled), causing an immediate page fault with no controlled or bounded information disclosure.\nI:N - This is a read-side NULL dereference only; there is no memory corruption, arbitrary write, or code execution primitive.\nA:H - A successful trigger causes a kernel NULL pointer dereference, producing an oops or panic and denying service on the affected system."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-05T12:39:25.437Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/c7e8971abd70e9d022f1c251ba2508f8dc7f2db8"
},
{
"url": "https://git.kernel.org/stable/c/09cbfd4b81ae90963dadb1de99b63b702e73290a"
},
{
"url": "https://git.kernel.org/stable/c/1dca7e491f070ac49b3d934f16ee953a53b37f38"
},
{
"url": "https://git.kernel.org/stable/c/902daac307eb7e1955ce05b071950f3cba88c963"
},
{
"url": "https://git.kernel.org/stable/c/abdd03229414b5a52943b65a60f34b84cea5ac59"
},
{
"url": "https://git.kernel.org/stable/c/cf75eb6617042c8cff6112daeed7791809fc9dd2"
},
{
"url": "https://git.kernel.org/stable/c/d4ea0dfd75011b78cebf3808f98ac4c4f51a6fb9"
}
],
"title": "ipv6: ioam: add NULL check for idev in ipv6_hop_ioam()",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-64116",
"datePublished": "2026-07-19T15:40:16.240Z",
"dateReserved": "2026-07-19T07:54:57.035Z",
"dateUpdated": "2026-08-05T12:39:25.437Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-72405 (GCVE-0-2026-72405)
Vulnerability from cvelistv5
Published
2026-08-15 05:56
Modified
2026-10-30 12:29
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
net: udp_tunnel: prevent double queueing in udp_tunnel_nic_device_sync
Yue Sun reported a use-after-free and debugobjects warning in
udp_tunnel_nic_device_sync_work() during concurrent device operations.
The workqueue core clears the internal pending bit before invoking the
worker. At that point, a concurrent thread can queue the work again.
When the already running worker eventually clears the work_pending flag
to 0, it mistakenly clears the flag for the newly queued instance.
udp_tunnel_nic_unregister() then observes work_pending as 0 and frees
the structure while the second work item is still active in the queue,
leading to UAF.
Fix this by returning early in udp_tunnel_nic_device_sync() if
work_pending is already set, preventing redundant work queueing.
References
| URL | Tags | |||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: cc4e3835eff474aa274d6e1d18f69d9d296d3b76 Version: cc4e3835eff474aa274d6e1d18f69d9d296d3b76 Version: cc4e3835eff474aa274d6e1d18f69d9d296d3b76 Version: cc4e3835eff474aa274d6e1d18f69d9d296d3b76 Version: cc4e3835eff474aa274d6e1d18f69d9d296d3b76 Version: cc4e3835eff474aa274d6e1d18f69d9d296d3b76 |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-72405",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T18:49:07.638343Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T18:55:21.945Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/ipv4/udp_tunnel_nic.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "d59d3b19e1cd1a01a6db59705327387a30aed153",
"status": "affected",
"version": "cc4e3835eff474aa274d6e1d18f69d9d296d3b76",
"versionType": "git"
},
{
"lessThan": "f49ed02fd8c98da823fdd7b00d64a8cc1d1883ac",
"status": "affected",
"version": "cc4e3835eff474aa274d6e1d18f69d9d296d3b76",
"versionType": "git"
},
{
"lessThan": "cee6688e5731c0591643521716d1a1a5c1a98bf8",
"status": "affected",
"version": "cc4e3835eff474aa274d6e1d18f69d9d296d3b76",
"versionType": "git"
},
{
"lessThan": "9075efb9b2c1d9d7a8285c937b64aa93ca0c41b7",
"status": "affected",
"version": "cc4e3835eff474aa274d6e1d18f69d9d296d3b76",
"versionType": "git"
},
{
"lessThan": "54292b167466cdf42176b7b6f01da66c184deb12",
"status": "affected",
"version": "cc4e3835eff474aa274d6e1d18f69d9d296d3b76",
"versionType": "git"
},
{
"lessThan": "ecf69d4b43370c587e48d4d70289dbdb7e039d4d",
"status": "affected",
"version": "cc4e3835eff474aa274d6e1d18f69d9d296d3b76",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/ipv4/udp_tunnel_nic.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": "6.1.*",
"status": "unaffected",
"version": "6.1.191",
"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.1.191",
"versionStartIncluding": "5.9",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.160",
"versionStartIncluding": "5.9",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.97",
"versionStartIncluding": "5.9",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.40",
"versionStartIncluding": "5.9",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.5",
"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\nnet: udp_tunnel: prevent double queueing in udp_tunnel_nic_device_sync\n\nYue Sun reported a use-after-free and debugobjects warning in\nudp_tunnel_nic_device_sync_work() during concurrent device operations.\n\nThe workqueue core clears the internal pending bit before invoking the\nworker. At that point, a concurrent thread can queue the work again.\nWhen the already running worker eventually clears the work_pending flag\nto 0, it mistakenly clears the flag for the newly queued instance.\nudp_tunnel_nic_unregister() then observes work_pending as 0 and frees\nthe structure while the second work item is still active in the queue,\nleading to UAF.\n\nFix this by returning early in udp_tunnel_nic_device_sync() if\nwork_pending is already set, preventing redundant work queueing."
}
],
"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 netlink/RTNL paths (VXLAN/Geneve tunnel socket create/delete, netdev feature updates, or netdev unregister) that queue udp_tunnel_nic_device_sync; remote UDP/VXLAN packets do not enter this offload management code.\nAC:L - An attacker can reliably win the race by running concurrent tunnel create/delete or netdev operations in multiple threads; both the double-queue and the premature free depend on attacker-controlled timing, not on uncontrollable system state.\nPR:L - Triggering udp_tunnel_notify_add/del_rx_port requires CAP_NET_ADMIN (e.g. ip link add/del vxlan/geneve), which unprivileged users can obtain in a user/network namespace via unshare; no remote or pre-auth network path exists.\nUI:N - Exploitation requires only programmatic tunnel or netdev manipulation via netlink; no victim user action such as opening a file or mounting a filesystem is needed.\nS:U - Impact is kernel heap corruption and potential privilege escalation within the same kernel/host security domain; it does not by itself cross a VM, container, or IOMMU boundary to another authority.\nC:H - The flaw is a use-after-free of struct udp_tunnel_nic; freed offload state can be reallocated and read through the still-queued work handler, enabling arbitrary kernel memory disclosure.\nI:H - UAF on the udp_tunnel_nic work item and its entries allows heap grooming and corrupting kernel objects/driver callbacks, supporting arbitrary write and potential kernel code execution.\nA:H - Use-after-free in a workqueue handler on a shared offload path can cause kernel oops/panic or wedged NIC offload during concurrent tunnel churn, producing total loss of availability."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-30T12:29:18.903Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/d59d3b19e1cd1a01a6db59705327387a30aed153"
},
{
"url": "https://git.kernel.org/stable/c/f49ed02fd8c98da823fdd7b00d64a8cc1d1883ac"
},
{
"url": "https://git.kernel.org/stable/c/cee6688e5731c0591643521716d1a1a5c1a98bf8"
},
{
"url": "https://git.kernel.org/stable/c/9075efb9b2c1d9d7a8285c937b64aa93ca0c41b7"
},
{
"url": "https://git.kernel.org/stable/c/54292b167466cdf42176b7b6f01da66c184deb12"
},
{
"url": "https://git.kernel.org/stable/c/ecf69d4b43370c587e48d4d70289dbdb7e039d4d"
}
],
"title": "net: udp_tunnel: prevent double queueing in udp_tunnel_nic_device_sync",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-72405",
"datePublished": "2026-08-15T05:56:29.466Z",
"dateReserved": "2026-08-09T03:40:39.925Z",
"dateUpdated": "2026-10-30T12:29:18.903Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-97563 (GCVE-0-2026-97563)
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: reject out-of-bounds DataOffset in CIFSSMBRead()
The SMB1 synchronous read helper CIFSSMBRead() validates the server's
DataLength against CIFSMaxBufSize and the caller's count, but never
validates DataOffset. The copy source is formed as
&pSMBr->hdr.Protocol + le16_to_cpu(pSMBr->DataOffset)
and memcpy()'d for DataLength bytes with no check that the
[DataOffset, DataOffset + DataLength) range lies within the response
actually received from the server.
A malicious or compromised SMB1 server can return a response carrying
an in-range DataLength and a large DataOffset, driving the source
pointer past the end of the response buffer. The memcpy() then copies
adjacent kernel heap into the caller's read buffer (information
disclosure), or reads unmapped memory and oopses (denial of service).
SMB1 is not negotiated by default; reaching this code requires an
explicit vers=1.0 mount.
Both DataOffset and the received response length recorded in
rsp_iov.iov_len are relative to the start of the SMB header, so reject
the response unless DataOffset + DataLength fits within that length,
using overflow-safe arithmetic, before forming the source pointer.
The response length has been validated by the previous patch, so the
DataOffset and DataLength fields can be read safely here.
While here, make data_length unsigned. It holds a length derived from
unsigned on-the-wire fields and is only ever compared against unsigned
quantities; print it with %u accordingly, and add __func__ to the
cifs_dbg() calls in this function.
References
Impacted products
{
"containers": {
"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": "667feba13e78d16393aacb15869f70970f422227",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "5be5bdda5863eacc964b609ba927764f253431b3",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"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.12"
},
{
"lessThan": "2.6.12",
"status": "unaffected",
"version": "0",
"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": "7.2.7",
"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\nsmb: client: reject out-of-bounds DataOffset in CIFSSMBRead()\n\nThe SMB1 synchronous read helper CIFSSMBRead() validates the server\u0027s\nDataLength against CIFSMaxBufSize and the caller\u0027s count, but never\nvalidates DataOffset. The copy source is formed as\n\n\t\u0026pSMBr-\u003ehdr.Protocol + le16_to_cpu(pSMBr-\u003eDataOffset)\n\nand memcpy()\u0027d for DataLength bytes with no check that the\n[DataOffset, DataOffset + DataLength) range lies within the response\nactually received from the server.\n\nA malicious or compromised SMB1 server can return a response carrying\nan in-range DataLength and a large DataOffset, driving the source\npointer past the end of the response buffer. The memcpy() then copies\nadjacent kernel heap into the caller\u0027s read buffer (information\ndisclosure), or reads unmapped memory and oopses (denial of service).\nSMB1 is not negotiated by default; reaching this code requires an\nexplicit vers=1.0 mount.\n\nBoth DataOffset and the received response length recorded in\nrsp_iov.iov_len are relative to the start of the SMB header, so reject\nthe response unless DataOffset + DataLength fits within that length,\nusing overflow-safe arithmetic, before forming the source pointer.\nThe response length has been validated by the previous patch, so the\nDataOffset and DataLength fields can be read safely here.\n\nWhile here, make data_length unsigned. It holds a length derived from\nunsigned on-the-wire fields and is only ever compared against unsigned\nquantities; print it with %u accordingly, and add __func__ to the\ncifs_dbg() calls in this function."
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T09:09:26.197Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/667feba13e78d16393aacb15869f70970f422227"
},
{
"url": "https://git.kernel.org/stable/c/5be5bdda5863eacc964b609ba927764f253431b3"
}
],
"title": "smb: client: reject out-of-bounds DataOffset in CIFSSMBRead()",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-97563",
"datePublished": "2026-09-25T10:21:51.261Z",
"dateReserved": "2026-09-24T16:01:01.155Z",
"dateUpdated": "2026-10-19T09:09:26.197Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-63830 (GCVE-0-2026-63830)
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:
net: skmsg: preserve sg.copy across SG transforms
The sk_msg sg.copy bitmap is part of the scatterlist entry ownership
state. A set bit tells sk_msg_compute_data_pointers() not to expose the
entry through writable BPF ctx->data. This protects entries backed by
pages that are not private to the sk_msg, such as splice-backed file
page-cache pages.
Several sk_msg transform paths move, copy, split, or compact
msg->sg.data[] entries without moving the matching sg.copy bit. This can
make an externally backed entry arrive at a new slot with a clear copy
bit. A later SK_MSG verdict can then expose sg_virt(sge) as writable
ctx->data and BPF stores can modify the original page cache.
Keep sg.copy synchronized with sg.data[] whenever entries are
transferred, shifted, split, or copied into a new sk_msg. Clear the bit
when an entry is replaced by a newly allocated private page or freed.
This covers the BPF pull/push/pop helpers, sk_msg_shift_left/right(),
sk_msg_xfer(), and tls_split_open_record(), including the partial tail
entry created during TLS open-record splitting.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: d3b18ad31f93d0b6bae105c679018a1ba7daa9ca Version: d3b18ad31f93d0b6bae105c679018a1ba7daa9ca Version: d3b18ad31f93d0b6bae105c679018a1ba7daa9ca Version: d3b18ad31f93d0b6bae105c679018a1ba7daa9ca Version: d3b18ad31f93d0b6bae105c679018a1ba7daa9ca Version: d3b18ad31f93d0b6bae105c679018a1ba7daa9ca Version: d3b18ad31f93d0b6bae105c679018a1ba7daa9ca Version: d3b18ad31f93d0b6bae105c679018a1ba7daa9ca |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-63830",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "yes"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T15:31:17.853447Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"problemTypes": [
{
"descriptions": [
{
"cweId": "CWE-269",
"description": "CWE-269 Improper Privilege Management",
"lang": "en",
"type": "CWE"
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T20:07:49.188Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"include/linux/skmsg.h",
"net/core/filter.c",
"net/core/skmsg.c",
"net/tls/tls_sw.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "f126eed589eec6f201405abbc398844042ef6d57",
"status": "affected",
"version": "d3b18ad31f93d0b6bae105c679018a1ba7daa9ca",
"versionType": "git"
},
{
"lessThan": "31a110642b5fb5e61940cbcfb503445ac4f28017",
"status": "affected",
"version": "d3b18ad31f93d0b6bae105c679018a1ba7daa9ca",
"versionType": "git"
},
{
"lessThan": "9bb86d8184b37503816150c4a6ad3c17dfdbe827",
"status": "affected",
"version": "d3b18ad31f93d0b6bae105c679018a1ba7daa9ca",
"versionType": "git"
},
{
"lessThan": "0eb4c16c4adb262763bda870a8ed38a1a9dec7ec",
"status": "affected",
"version": "d3b18ad31f93d0b6bae105c679018a1ba7daa9ca",
"versionType": "git"
},
{
"lessThan": "d22cc92bc41290e5783a72375e0843d9435f6001",
"status": "affected",
"version": "d3b18ad31f93d0b6bae105c679018a1ba7daa9ca",
"versionType": "git"
},
{
"lessThan": "1acdd14c0990dd1cd4b6534f00366d2e6dfce05f",
"status": "affected",
"version": "d3b18ad31f93d0b6bae105c679018a1ba7daa9ca",
"versionType": "git"
},
{
"lessThan": "21ed9540a8e1906dfcbc1bb82ba9b4de4fa4bd6d",
"status": "affected",
"version": "d3b18ad31f93d0b6bae105c679018a1ba7daa9ca",
"versionType": "git"
},
{
"lessThan": "406e8a651a7b854c41fecd5117bb282b3a6c2c6b",
"status": "affected",
"version": "d3b18ad31f93d0b6bae105c679018a1ba7daa9ca",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"include/linux/skmsg.h",
"net/core/filter.c",
"net/core/skmsg.c",
"net/tls/tls_sw.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.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.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.177",
"versionStartIncluding": "4.20",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.144",
"versionStartIncluding": "4.20",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.95",
"versionStartIncluding": "4.20",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.38",
"versionStartIncluding": "4.20",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.3",
"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: skmsg: preserve sg.copy across SG transforms\n\nThe sk_msg sg.copy bitmap is part of the scatterlist entry ownership\nstate. A set bit tells sk_msg_compute_data_pointers() not to expose the\nentry through writable BPF ctx-\u003edata. This protects entries backed by\npages that are not private to the sk_msg, such as splice-backed file\npage-cache pages.\n\nSeveral sk_msg transform paths move, copy, split, or compact\nmsg-\u003esg.data[] entries without moving the matching sg.copy bit. This can\nmake an externally backed entry arrive at a new slot with a clear copy\nbit. A later SK_MSG verdict can then expose sg_virt(sge) as writable\nctx-\u003edata and BPF stores can modify the original page cache.\n\nKeep sg.copy synchronized with sg.data[] whenever entries are\ntransferred, shifted, split, or copied into a new sk_msg. Clear the bit\nwhen an entry is replaced by a newly allocated private page or freed.\nThis covers the BPF pull/push/pop helpers, sk_msg_shift_left/right(),\nsk_msg_xfer(), and tls_split_open_record(), including the partial tail\nentry created during TLS open-record splitting."
}
],
"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:H/A:L",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - The bug is exercised on the kTLS/TCP send path when splice-backed page-cache pages in an sk_msg are processed by an SK_MSG BPF verdict on network sockets; a remote TLS peer can trigger this on internet-facing servers (HTTPS, service-mesh edge nodes) that serve file-backed responses via splice/sendfile.\nAC:L - The attacker controls the traffic patterns, message sizes, and splice-backed data needed to hit the desynchronized transform paths (bpf_msg_push/pop/pull, sk_msg shift/xfer, tls_split_open_record); no race against unrelated system state is required.\nPR:N - On production kTLS servers with an attached SK_MSG BPF program (common in Cilium/Cloudflare-class deployments), an unauthenticated remote peer can trigger the faulty transforms without any credentials on the victim; a fully local exploit via user-namespace CAP_NET_ADMIN is also possible but is not the highest-severity case.\nUI:N - Exploitation requires only network traffic to a vulnerable server (or local socket I/O); no victim user action such as opening a file or mounting a filesystem is needed beyond normal server operation.\nS:U - Impact remains within the kernel\u0027s security authority (page-cache corruption via the network/BPF stack); it does not cross a VM-hypervisor or IOMMU boundary even though corrupted cache pages may affect other processes.\nC:H - Exposing splice-backed page-cache pages as writable BPF ctx-\u003edata gives the attacker a kernel memory write primitive over shared file cache pages, which can be leveraged to read or infer sensitive file contents served from or mapped through the corrupted pages.\nI:H - The commit explicitly states BPF stores through the incorrectly writable ctx-\u003edata can modify the original page cache, constituting arbitrary integrity corruption of file-backed data beyond the socket buffer.\nA:L - While the primary impact is data corruption rather than a kernel oops, corrupting shared page-cache pages of files actively served to other clients can cause sustained service disruption and repeated application-level failures; when uncertain, availability impact above None is appropriate."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-17T04:51:39.075Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/f126eed589eec6f201405abbc398844042ef6d57"
},
{
"url": "https://git.kernel.org/stable/c/31a110642b5fb5e61940cbcfb503445ac4f28017"
},
{
"url": "https://git.kernel.org/stable/c/9bb86d8184b37503816150c4a6ad3c17dfdbe827"
},
{
"url": "https://git.kernel.org/stable/c/0eb4c16c4adb262763bda870a8ed38a1a9dec7ec"
},
{
"url": "https://git.kernel.org/stable/c/d22cc92bc41290e5783a72375e0843d9435f6001"
},
{
"url": "https://git.kernel.org/stable/c/1acdd14c0990dd1cd4b6534f00366d2e6dfce05f"
},
{
"url": "https://git.kernel.org/stable/c/21ed9540a8e1906dfcbc1bb82ba9b4de4fa4bd6d"
},
{
"url": "https://git.kernel.org/stable/c/406e8a651a7b854c41fecd5117bb282b3a6c2c6b"
}
],
"title": "net: skmsg: preserve sg.copy across SG transforms",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-63830",
"datePublished": "2026-07-19T12:02:23.741Z",
"dateReserved": "2026-07-19T07:54:57.014Z",
"dateUpdated": "2026-10-19T20:07:49.188Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-64456 (GCVE-0-2026-64456)
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:
hwrng: virtio: clamp device-reported used.len at copy_data()
random_recv_done() stores the device-reported used.len directly into
vi->data_avail. copy_data() then indexes vi->data[] using
vi->data_idx (advanced by previous copy_data() calls) and issues a
memcpy() without re-validating either value against the posted
buffer size sizeof(vi->data) (SMP_CACHE_BYTES bytes, typically 32
or 64).
A malicious or buggy virtio-rng backend can set used.len beyond
sizeof(vi->data), steering the memcpy() past the end of the inline
array into adjacent kmalloc-1k slab bytes. hwrng_fillfn() mixes
those bytes into the guest RNG, and guest root can also observe
them directly via /dev/hwrng.
Concrete impact is inside the guest:
- Memory-safety / hardening: any virtio-rng backend that
over-reports used.len causes the driver to read past vi->data
into unrelated slab contents. hwrng_fillfn() is a kernel thread
that runs as soon as the device is probed; no guest userspace
interaction is required to first-trigger the OOB.
- Cross-boundary leak (confidential-compute threat model): a
malicious hypervisor cooperating with a malicious or compromised
guest root userspace can use /dev/hwrng as a leak channel for
guest-kernel heap data. The host sets a large used.len, guest
root reads /dev/hwrng, and the returned bytes contain guest
kernel slab contents that were adjacent to vi->data. In
practice, confidential-compute guests (SEV-SNP, TDX) usually
disable virtio-rng entirely, so this path is narrow, but the
fix is still worth carrying because the underlying
memory-safety bug contaminates the guest RNG on any host.
KASAN confirms the OOB on a 7.1-rc4 guest whose virtio-rng backend
has been patched to report used.len = 0x10000:
BUG: KASAN: slab-out-of-bounds in virtio_read+0x394/0x5d0
Read of size 64 at addr ffff88800ae0ba20 by task hwrng/52
Call Trace:
__asan_memcpy+0x23/0x60
virtio_read+0x394/0x5d0
hwrng_fillfn+0xb2/0x470
kthread+0x2cc/0x3a0
Allocated by task 1:
probe_common+0xa5/0x660
virtio_dev_probe+0x549/0xbc0
The buggy address belongs to the object at ffff88800ae0b800
which belongs to the cache kmalloc-1k of size 1024
The buggy address is located 0 bytes to the right of
allocated 544-byte region [ffff88800ae0b800, ffff88800ae0ba20)
Same class of bug as commit c04db81cd028 ("net/9p: Fix buffer
overflow in USB transport layer"), which hardened
usb9pfs_rx_complete() against unchecked device-reported length in
the USB 9p transport.
With the clamp at point of use and array_index_nospec() in place,
the same harness boots cleanly: copy_data() returns zero for the
bogus report, the device-supplied bytes after data_idx are
discarded, and the driver issues a fresh request.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: f7f510ec195781c857ab76366a3e1c59e1caae42 Version: f7f510ec195781c857ab76366a3e1c59e1caae42 Version: f7f510ec195781c857ab76366a3e1c59e1caae42 Version: f7f510ec195781c857ab76366a3e1c59e1caae42 Version: f7f510ec195781c857ab76366a3e1c59e1caae42 Version: f7f510ec195781c857ab76366a3e1c59e1caae42 Version: f7f510ec195781c857ab76366a3e1c59e1caae42 Version: f7f510ec195781c857ab76366a3e1c59e1caae42 |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-64456",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "partial"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T15:41:09.503091Z",
"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.595Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/char/hw_random/virtio-rng.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "3aa3e89cf80721c8d382b4c1a2b70a0449dad4a5",
"status": "affected",
"version": "f7f510ec195781c857ab76366a3e1c59e1caae42",
"versionType": "git"
},
{
"lessThan": "63335e7b638ae70028ae285bb95153874a8bc852",
"status": "affected",
"version": "f7f510ec195781c857ab76366a3e1c59e1caae42",
"versionType": "git"
},
{
"lessThan": "2e788948ff2a13358a303af112497a63201c5739",
"status": "affected",
"version": "f7f510ec195781c857ab76366a3e1c59e1caae42",
"versionType": "git"
},
{
"lessThan": "fde19b0d4eeabae042519313c843fe6f27d41e9d",
"status": "affected",
"version": "f7f510ec195781c857ab76366a3e1c59e1caae42",
"versionType": "git"
},
{
"lessThan": "81dd21b5f0c299cc7b5bf84f04a61938559d20e6",
"status": "affected",
"version": "f7f510ec195781c857ab76366a3e1c59e1caae42",
"versionType": "git"
},
{
"lessThan": "285e17c44e3873a73460f294acbd64018ff64385",
"status": "affected",
"version": "f7f510ec195781c857ab76366a3e1c59e1caae42",
"versionType": "git"
},
{
"lessThan": "92d5736a62040ec1cfff23ea57e6599301690ad5",
"status": "affected",
"version": "f7f510ec195781c857ab76366a3e1c59e1caae42",
"versionType": "git"
},
{
"lessThan": "e3046eeada299f917a8ad883af4434bfb86556b1",
"status": "affected",
"version": "f7f510ec195781c857ab76366a3e1c59e1caae42",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/char/hw_random/virtio-rng.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.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.26",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.212",
"versionStartIncluding": "2.6.26",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.178",
"versionStartIncluding": "2.6.26",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.145",
"versionStartIncluding": "2.6.26",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.96",
"versionStartIncluding": "2.6.26",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.39",
"versionStartIncluding": "2.6.26",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.4",
"versionStartIncluding": "2.6.26",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"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\nhwrng: virtio: clamp device-reported used.len at copy_data()\n\nrandom_recv_done() stores the device-reported used.len directly into\nvi-\u003edata_avail. copy_data() then indexes vi-\u003edata[] using\nvi-\u003edata_idx (advanced by previous copy_data() calls) and issues a\nmemcpy() without re-validating either value against the posted\nbuffer size sizeof(vi-\u003edata) (SMP_CACHE_BYTES bytes, typically 32\nor 64).\n\nA malicious or buggy virtio-rng backend can set used.len beyond\nsizeof(vi-\u003edata), steering the memcpy() past the end of the inline\narray into adjacent kmalloc-1k slab bytes. hwrng_fillfn() mixes\nthose bytes into the guest RNG, and guest root can also observe\nthem directly via /dev/hwrng.\n\nConcrete impact is inside the guest:\n\n - Memory-safety / hardening: any virtio-rng backend that\n over-reports used.len causes the driver to read past vi-\u003edata\n into unrelated slab contents. hwrng_fillfn() is a kernel thread\n that runs as soon as the device is probed; no guest userspace\n interaction is required to first-trigger the OOB.\n\n - Cross-boundary leak (confidential-compute threat model): a\n malicious hypervisor cooperating with a malicious or compromised\n guest root userspace can use /dev/hwrng as a leak channel for\n guest-kernel heap data. The host sets a large used.len, guest\n root reads /dev/hwrng, and the returned bytes contain guest\n kernel slab contents that were adjacent to vi-\u003edata. In\n practice, confidential-compute guests (SEV-SNP, TDX) usually\n disable virtio-rng entirely, so this path is narrow, but the\n fix is still worth carrying because the underlying\n memory-safety bug contaminates the guest RNG on any host.\n\nKASAN confirms the OOB on a 7.1-rc4 guest whose virtio-rng backend\nhas been patched to report used.len = 0x10000:\n\n BUG: KASAN: slab-out-of-bounds in virtio_read+0x394/0x5d0\n Read of size 64 at addr ffff88800ae0ba20 by task hwrng/52\n Call Trace:\n __asan_memcpy+0x23/0x60\n virtio_read+0x394/0x5d0\n hwrng_fillfn+0xb2/0x470\n kthread+0x2cc/0x3a0\n Allocated by task 1:\n probe_common+0xa5/0x660\n virtio_dev_probe+0x549/0xbc0\n The buggy address belongs to the object at ffff88800ae0b800\n which belongs to the cache kmalloc-1k of size 1024\n The buggy address is located 0 bytes to the right of\n allocated 544-byte region [ffff88800ae0b800, ffff88800ae0ba20)\n\nSame class of bug as commit c04db81cd028 (\"net/9p: Fix buffer\noverflow in USB transport layer\"), which hardened\nusb9pfs_rx_complete() against unchecked device-reported length in\nthe USB 9p transport.\n\nWith the clamp at point of use and array_index_nospec() in place,\nthe same harness boots cleanly: copy_data() returns zero for the\nbogus report, the device-supplied bytes after data_idx are\ndiscarded, and the driver issues a fresh request."
}
],
"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 attacker must control a virtio-rng backend or hypervisor locally attached to the guest; no network or physical packet path reaches this driver.\nAC:L - The backend directly controls the 32-bit used.len and can deterministically over-report it without winning a race or manipulating an uncertain memory layout.\nPR:N - No privileges inside the vulnerable guest are required because the hwrng kernel thread automatically consumes backend completions after device registration.\nUI:N - The automatically started hwrng thread triggers the out-of-bounds read without any victim action or guest userspace request.\nS:U - The vulnerable driver and the affected memory, RNG state, and availability all belong to the same guest-kernel security authority; this is not a guest-to-host escape.\nC:H - Repeated bounded copies advance through a device-selected, potentially enormous length, producing sequential out-of-bounds reads of guest-kernel heap memory that guest root can observe through /dev/hwrng.\nI:N - The memcpy destination remains bounded by the hwrng core buffer, so the flaw provides no out-of-bounds write, use-after-free, or control-flow modification primitive.\nA:H - A sufficiently large reported length drives reads beyond valid slab memory, causing a kernel out-of-bounds fault, oops, or panic, and the malicious backend can trigger it repeatedly."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-17T04:56:00.610Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/3aa3e89cf80721c8d382b4c1a2b70a0449dad4a5"
},
{
"url": "https://git.kernel.org/stable/c/63335e7b638ae70028ae285bb95153874a8bc852"
},
{
"url": "https://git.kernel.org/stable/c/2e788948ff2a13358a303af112497a63201c5739"
},
{
"url": "https://git.kernel.org/stable/c/fde19b0d4eeabae042519313c843fe6f27d41e9d"
},
{
"url": "https://git.kernel.org/stable/c/81dd21b5f0c299cc7b5bf84f04a61938559d20e6"
},
{
"url": "https://git.kernel.org/stable/c/285e17c44e3873a73460f294acbd64018ff64385"
},
{
"url": "https://git.kernel.org/stable/c/92d5736a62040ec1cfff23ea57e6599301690ad5"
},
{
"url": "https://git.kernel.org/stable/c/e3046eeada299f917a8ad883af4434bfb86556b1"
}
],
"title": "hwrng: virtio: clamp device-reported used.len at copy_data()",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-64456",
"datePublished": "2026-07-25T08:51:24.659Z",
"dateReserved": "2026-07-19T15:36:31.789Z",
"dateUpdated": "2026-10-19T20:38:30.595Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-98260 (GCVE-0-2026-98260)
Vulnerability from cvelistv5
Published
2026-10-06 08:45
Modified
2026-10-30 12:37
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
exec: Cleanup POSIX timers right after de_thread()
A per-thread CPU timer holds a reference to the PID of the thread it is
attached to and, while it is armed, its node is queued in that thread's
posix_cputimers. The task is looked up by that PID.
When a non-leader thread exec()s, de_thread() changes which task owns
that PID. pid_task(timer->it.cpu.pid, PIDTYPE_PID) then returns NULL,
but the node is still queued on tsk, which is alive. timer_lock_sighand()
takes a failed lookup to mean that the node is already dequeued, so it
has nothing to undo.
begin_new_exec() calls posix_cpu_timers_exit(me) right after
exec_task_namespaces() and that removes the leftover node, so the state
normally stays invisible. But bprm->point_of_no_return is set before
de_thread(), so if unshare_files(), set_mm_exe_file(), exec_mmap() or
exec_task_namespaces() fails, the task dies before it gets there.
exit_itimers() then frees the k_itimer while its node is still queued,
and reaping tsk later erases that freed node from the rbtree.
In short:
the non-leader thread B the parent
timer_create(CLOCK_THREAD_CPUTIME_ID)
timer_settime()
arm_timer() // the node is queued on B
execve()
de_thread(B)
exchange_tids(B, leader) // B's PID now belongs to the leader
release_task(leader)
__exit_signal(leader)
posix_cpu_timers_exit(leader) // cleans leader's queue, not B's
__unhash_process(leader) // that PID has no task anymore
exec_mmap()
mmap_read_lock_killable(old_mm)
kill(B, SIGKILL)
// -EINTR
get_signal()
do_exit()
exit_itimers()
posix_timer_delete()
posix_cpu_timer_del()
posix_timer_unhash_and_free() // freed while still queued
wait4()
release_task(B)
posix_cpu_timers_exit(B)
cleanup_timerqueue()
timerqueue_del() // use-after-free
Move the POSIX timer cleanup right after de_thread() before any of the
later failure conditions brings the task into do_exit().
[ tglx: Move the cleanup right after de_thread() ]
References
| URL | Tags | |||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 55e8c8eb2c7b6bf30e99423ccfe7ca032f498f59 Version: 55e8c8eb2c7b6bf30e99423ccfe7ca032f498f59 Version: 55e8c8eb2c7b6bf30e99423ccfe7ca032f498f59 Version: 55e8c8eb2c7b6bf30e99423ccfe7ca032f498f59 Version: 55e8c8eb2c7b6bf30e99423ccfe7ca032f498f59 Version: 55e8c8eb2c7b6bf30e99423ccfe7ca032f498f59 |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"fs/exec.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "f6c93e8ecaaf12959b7ef6eb611351001db2ff5d",
"status": "affected",
"version": "55e8c8eb2c7b6bf30e99423ccfe7ca032f498f59",
"versionType": "git"
},
{
"lessThan": "6f1977cea3e85cd8ab55fb337d3e1725fe61d1ce",
"status": "affected",
"version": "55e8c8eb2c7b6bf30e99423ccfe7ca032f498f59",
"versionType": "git"
},
{
"lessThan": "d9ae467e617ca29b825493a362bf0d75ad5f4ac3",
"status": "affected",
"version": "55e8c8eb2c7b6bf30e99423ccfe7ca032f498f59",
"versionType": "git"
},
{
"lessThan": "75aa08b93c65766040f9ca99f41ac85ad22596b6",
"status": "affected",
"version": "55e8c8eb2c7b6bf30e99423ccfe7ca032f498f59",
"versionType": "git"
},
{
"lessThan": "d602877baf36c43c788a5f472c977e0be414029f",
"status": "affected",
"version": "55e8c8eb2c7b6bf30e99423ccfe7ca032f498f59",
"versionType": "git"
},
{
"lessThan": "acb03d3881818581052924a9bbbe92b8741ed448",
"status": "affected",
"version": "55e8c8eb2c7b6bf30e99423ccfe7ca032f498f59",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"fs/exec.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.191",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.158",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.112",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.54",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.8",
"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.191",
"versionStartIncluding": "5.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.158",
"versionStartIncluding": "5.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.112",
"versionStartIncluding": "5.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.54",
"versionStartIncluding": "5.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.8",
"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\nexec: Cleanup POSIX timers right after de_thread()\n\nA per-thread CPU timer holds a reference to the PID of the thread it is\nattached to and, while it is armed, its node is queued in that thread\u0027s\nposix_cputimers. The task is looked up by that PID.\n\nWhen a non-leader thread exec()s, de_thread() changes which task owns\nthat PID. pid_task(timer-\u003eit.cpu.pid, PIDTYPE_PID) then returns NULL,\nbut the node is still queued on tsk, which is alive. timer_lock_sighand()\ntakes a failed lookup to mean that the node is already dequeued, so it\nhas nothing to undo.\n\nbegin_new_exec() calls posix_cpu_timers_exit(me) right after\nexec_task_namespaces() and that removes the leftover node, so the state\nnormally stays invisible. But bprm-\u003epoint_of_no_return is set before\nde_thread(), so if unshare_files(), set_mm_exe_file(), exec_mmap() or\nexec_task_namespaces() fails, the task dies before it gets there.\nexit_itimers() then frees the k_itimer while its node is still queued,\nand reaping tsk later erases that freed node from the rbtree.\n\nIn short:\n\n the non-leader thread B the parent\n\n timer_create(CLOCK_THREAD_CPUTIME_ID)\n timer_settime()\n arm_timer() // the node is queued on B\n execve()\n de_thread(B)\n exchange_tids(B, leader) // B\u0027s PID now belongs to the leader\n release_task(leader)\n __exit_signal(leader)\n posix_cpu_timers_exit(leader) // cleans leader\u0027s queue, not B\u0027s\n __unhash_process(leader) // that PID has no task anymore\n exec_mmap()\n mmap_read_lock_killable(old_mm)\n kill(B, SIGKILL)\n // -EINTR\n get_signal()\n do_exit()\n exit_itimers()\n posix_timer_delete()\n posix_cpu_timer_del()\n posix_timer_unhash_and_free() // freed while still queued\n wait4()\n release_task(B)\n posix_cpu_timers_exit(B)\n cleanup_timerqueue()\n timerqueue_del() // use-after-free\n\nMove the POSIX timer cleanup right after de_thread() before any of the\nlater failure conditions brings the task into do_exit().\n\n[ tglx: Move the cleanup right after de_thread() ]"
}
],
"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 needs local syscalls: timer_create(CLOCK_THREAD_CPUTIME_ID) and timer_settime() on a non-leader thread, then execve(). That thread\u0027s exec must fail after de_thread() in begin_new_exec() (e.g. exec_mmap() returning -EINTR on SIGKILL). No remote protocol carries any of this input.\nAC:L - The attacker controls both sides of the race. Their own parent sends SIGKILL while exec_mmap() waits on down_write_killable(exec_update_lock) or mmap_read_lock_killable(old_mm), and they can create that lock contention with their own CLONE_VM or /proc readers. No condition outside their control is needed.\nPR:L - Arming a thread CPU timer, calling execve and signalling one\u0027s own child are all available to any unprivileged user, with no capability checks on this path. A local unprivileged account is enough.\nUI:N - The attacker\u0027s own processes perform every step (timer arm, execve from a non-leader thread, SIGKILL, wait4 reap), so no victim action is needed.\nS:U - The memory corruption is inside the kernel that the attacker\u0027s process runs on. The outcome is a normal local privilege escalation, with no VM or sandbox boundary crossed.\nC:H - exit_itimers() frees the k_itimer while its cpu_timer node is still linked in the task\u0027s posix_cputimers rbtree. The freed slab object can be reclaimed with attacker-sprayed data, giving a use-after-free that can be turned into kernel memory disclosure.\nI:H - When release_task() reaps the task, posix_cpu_timers_exit() -\u003e cleanup_timerqueue() -\u003e timerqueue_del() calls rb_erase on the freed node and rewrites rbtree pointers in reclaimed memory. That is a use-after-free write which can be used for privilege escalation.\nA:H - The rbtree erase on freed memory corrupts kernel data and can oops or panic the kernel. Any unprivileged user can repeat it at will."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-30T12:37:58.294Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/f6c93e8ecaaf12959b7ef6eb611351001db2ff5d"
},
{
"url": "https://git.kernel.org/stable/c/6f1977cea3e85cd8ab55fb337d3e1725fe61d1ce"
},
{
"url": "https://git.kernel.org/stable/c/d9ae467e617ca29b825493a362bf0d75ad5f4ac3"
},
{
"url": "https://git.kernel.org/stable/c/75aa08b93c65766040f9ca99f41ac85ad22596b6"
},
{
"url": "https://git.kernel.org/stable/c/d602877baf36c43c788a5f472c977e0be414029f"
},
{
"url": "https://git.kernel.org/stable/c/acb03d3881818581052924a9bbbe92b8741ed448"
}
],
"title": "exec: Cleanup POSIX timers right after de_thread()",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-98260",
"datePublished": "2026-10-06T08:45:24.711Z",
"dateReserved": "2026-09-25T10:25:14.332Z",
"dateUpdated": "2026-10-30T12:37:58.294Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-93820 (GCVE-0-2026-93820)
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:
PCI: rockchip: Protect root bus removal with rescan lock
Hold the pci_rescan_remove_lock lock while stopping and removing a root bus
to avoid racing with concurrent rescan or hotplug operations triggered via
sysfs. Such races may lead to use-after-free issues or system crashes.
[bhelgaas: commit log]
References
| URL | Tags | ||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 073d3dbe9a7c38888d8dafe09df421b174a6cffa Version: 073d3dbe9a7c38888d8dafe09df421b174a6cffa Version: 073d3dbe9a7c38888d8dafe09df421b174a6cffa Version: 073d3dbe9a7c38888d8dafe09df421b174a6cffa Version: 073d3dbe9a7c38888d8dafe09df421b174a6cffa Version: 073d3dbe9a7c38888d8dafe09df421b174a6cffa Version: 073d3dbe9a7c38888d8dafe09df421b174a6cffa |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/pci/controller/pcie-rockchip-host.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "025308e7c9cd10112b73558c9f63f8f7285fa726",
"status": "affected",
"version": "073d3dbe9a7c38888d8dafe09df421b174a6cffa",
"versionType": "git"
},
{
"lessThan": "ac47d42901859edb504a2890a3a5709c86dbc0c3",
"status": "affected",
"version": "073d3dbe9a7c38888d8dafe09df421b174a6cffa",
"versionType": "git"
},
{
"lessThan": "eaeb9bed3641741aceb0add84a97023bed61e748",
"status": "affected",
"version": "073d3dbe9a7c38888d8dafe09df421b174a6cffa",
"versionType": "git"
},
{
"lessThan": "5d566ac3a055f0a6f4890ff0af7cfd7e8ed89652",
"status": "affected",
"version": "073d3dbe9a7c38888d8dafe09df421b174a6cffa",
"versionType": "git"
},
{
"lessThan": "ebca7e5947720e9d4bd918af3e17720270c50744",
"status": "affected",
"version": "073d3dbe9a7c38888d8dafe09df421b174a6cffa",
"versionType": "git"
},
{
"lessThan": "9b19201f57d87c4d0777621275dbc59bff41b7f2",
"status": "affected",
"version": "073d3dbe9a7c38888d8dafe09df421b174a6cffa",
"versionType": "git"
},
{
"lessThan": "0bd9611587bb494c33566d825fe34b2705e4b167",
"status": "affected",
"version": "073d3dbe9a7c38888d8dafe09df421b174a6cffa",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/pci/controller/pcie-rockchip-host.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.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": "4.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.222",
"versionStartIncluding": "4.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.189",
"versionStartIncluding": "4.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.158",
"versionStartIncluding": "4.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.111",
"versionStartIncluding": "4.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.53",
"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\nPCI: rockchip: Protect root bus removal with rescan lock\n\nHold the pci_rescan_remove_lock lock while stopping and removing a root bus\nto avoid racing with concurrent rescan or hotplug operations triggered via\nsysfs. Such races may lead to use-after-free issues or system crashes.\n\n[bhelgaas: commit log]"
}
],
"providerMetadata": {
"dateUpdated": "2026-10-03T10:57:51.365Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/025308e7c9cd10112b73558c9f63f8f7285fa726"
},
{
"url": "https://git.kernel.org/stable/c/ac47d42901859edb504a2890a3a5709c86dbc0c3"
},
{
"url": "https://git.kernel.org/stable/c/eaeb9bed3641741aceb0add84a97023bed61e748"
},
{
"url": "https://git.kernel.org/stable/c/5d566ac3a055f0a6f4890ff0af7cfd7e8ed89652"
},
{
"url": "https://git.kernel.org/stable/c/ebca7e5947720e9d4bd918af3e17720270c50744"
},
{
"url": "https://git.kernel.org/stable/c/9b19201f57d87c4d0777621275dbc59bff41b7f2"
},
{
"url": "https://git.kernel.org/stable/c/0bd9611587bb494c33566d825fe34b2705e4b167"
}
],
"title": "PCI: rockchip: Protect root bus removal with rescan lock",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-93820",
"datePublished": "2026-09-24T16:02:58.625Z",
"dateReserved": "2026-09-18T17:59:28.791Z",
"dateUpdated": "2026-10-03T10:57:51.365Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-97555 (GCVE-0-2026-97555)
Vulnerability from cvelistv5
Published
2026-09-25 10:21
Modified
2026-10-30 12:37
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
smb: client: fix heap overflow in DACL owner/group rewrite
When id_mode_to_cifs_acl rewrites an existing DACL, it allocates a
buffer sized according to the on-disk DACL length reported by
dacl_ptr->size. However, replace_sids_and_copy_aces may rewrite each
ACE with a new owner/group SID obtained from the cifs.idmap upcall.
Those SIDs can have up to SID_MAX_SUB_AUTHORITIES (15) sub-authorities,
making each ACE up to 76 bytes (sizeof(struct smb_ace)).
If the original DACL contains short SIDs (e.g., 1 sub-authority) while
the replacement SIDs are long, the rewritten ACEs overflow the
allocation.
Fix this by always budgeting for worst-case SID expansion: allocate
sizeof(struct smb_acl) plus num_aces * sizeof(struct smb_ace), which
covers the smb_acl header and room for every ACE at maximum SID size.
This replaces the previous split logic that used dacl_ptr->size for
cifsacl mounts but num_aces * sizeof(struct smb_ace) for mode_from_sid
mounts: both paths can trigger the same rewrite and need the same
headroom.
KASAN reports this as:
BUG: KASAN: slab-out-of-bounds in build_sec_desc+0x1e8a/0x2680 [cifs]
Write of size 4 at addr ffff8881a5e25374 by task chown/5298
...
The buggy address is located 0 bytes to the right of
allocated 884-byte region [ffff8881a5e25000, ffff8881a5e25374)
References
| URL | Tags | ||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: bc3e9dd9d104ca1b75644eab87b38ce8a924aef4 Version: bc3e9dd9d104ca1b75644eab87b38ce8a924aef4 Version: bc3e9dd9d104ca1b75644eab87b38ce8a924aef4 Version: bc3e9dd9d104ca1b75644eab87b38ce8a924aef4 Version: bc3e9dd9d104ca1b75644eab87b38ce8a924aef4 Version: bc3e9dd9d104ca1b75644eab87b38ce8a924aef4 Version: bc3e9dd9d104ca1b75644eab87b38ce8a924aef4 |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"fs/smb/client/cifsacl.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "4e78b5ff13214353750b87283ff79f62510f5844",
"status": "affected",
"version": "bc3e9dd9d104ca1b75644eab87b38ce8a924aef4",
"versionType": "git"
},
{
"lessThan": "63c2fbde15ffc9a0c21adf670c38d028e20fa65c",
"status": "affected",
"version": "bc3e9dd9d104ca1b75644eab87b38ce8a924aef4",
"versionType": "git"
},
{
"lessThan": "d5cea6766ae1868a51c7d17d77d065b4f55c587f",
"status": "affected",
"version": "bc3e9dd9d104ca1b75644eab87b38ce8a924aef4",
"versionType": "git"
},
{
"lessThan": "fb736ab4fb8c4fdb8b2f9ccd3a62e03d11549ca1",
"status": "affected",
"version": "bc3e9dd9d104ca1b75644eab87b38ce8a924aef4",
"versionType": "git"
},
{
"lessThan": "7fa84c9ca690643f429ae2709584a47e74b572c9",
"status": "affected",
"version": "bc3e9dd9d104ca1b75644eab87b38ce8a924aef4",
"versionType": "git"
},
{
"lessThan": "2a9aee9ef5622d58d8aafaa3263b3ffe70e2d9dd",
"status": "affected",
"version": "bc3e9dd9d104ca1b75644eab87b38ce8a924aef4",
"versionType": "git"
},
{
"lessThan": "0ee150794c75bcd0be0e24ff3394f433cbae18cc",
"status": "affected",
"version": "bc3e9dd9d104ca1b75644eab87b38ce8a924aef4",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"fs/smb/client/cifsacl.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.224",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.191",
"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.15.224",
"versionStartIncluding": "5.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.191",
"versionStartIncluding": "5.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.158",
"versionStartIncluding": "5.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.111",
"versionStartIncluding": "5.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.53",
"versionStartIncluding": "5.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.7",
"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\nsmb: client: fix heap overflow in DACL owner/group rewrite\n\nWhen id_mode_to_cifs_acl rewrites an existing DACL, it allocates a\nbuffer sized according to the on-disk DACL length reported by\ndacl_ptr-\u003esize. However, replace_sids_and_copy_aces may rewrite each\nACE with a new owner/group SID obtained from the cifs.idmap upcall.\nThose SIDs can have up to SID_MAX_SUB_AUTHORITIES (15) sub-authorities,\nmaking each ACE up to 76 bytes (sizeof(struct smb_ace)).\n\nIf the original DACL contains short SIDs (e.g., 1 sub-authority) while\nthe replacement SIDs are long, the rewritten ACEs overflow the\nallocation.\n\nFix this by always budgeting for worst-case SID expansion: allocate\nsizeof(struct smb_acl) plus num_aces * sizeof(struct smb_ace), which\ncovers the smb_acl header and room for every ACE at maximum SID size.\nThis replaces the previous split logic that used dacl_ptr-\u003esize for\ncifsacl mounts but num_aces * sizeof(struct smb_ace) for mode_from_sid\nmounts: both paths can trigger the same rewrite and need the same\nheadroom.\n\nKASAN reports this as:\n BUG: KASAN: slab-out-of-bounds in build_sec_desc+0x1e8a/0x2680 [cifs]\n Write of size 4 at addr ffff8881a5e25374 by task chown/5298\n ...\n The buggy address is located 0 bytes to the right of\n allocated 884-byte region [ffff8881a5e25000, ffff8881a5e25374)"
}
],
"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 - chown/chgrp reaches id_mode_to_cifs_acl via cifs_setattr_nounix, which fetches the NTSD through get_smb2_acl \u2192 SMB2_query_acl (SMB2 QUERY_INFO, InfoType=SMB2_O_INFO_SECURITY). The DACL that undersizes the kzalloc (dacl_ptr-\u003esize and short ACE SIDs) is that response body from a remote SMB server on TCP/445.\nAC:L - After setattr hits id_mode_to_cifs_acl\u0027s chown branch, overflow is deterministic: the server returns 1-sub-authority owner ACEs so dacl_ptr-\u003esize is compact, while idsfromsid builds a 3-sub-authority S-1-5-88 SID and id_to_sid() can return up to 15, and replace_sids_and_copy_aces/cifs_copy_ace writes the expanded ACEs with no race.\nPR:N - The attacker is the SMB server answering SMB2_query_acl on the existing tree-connect and holds no uid, share credential, or capability on the client. Local chown_ok/CAP_CHOWN belongs to the victim who issues chown/chgrp, not to the server.\nUI:R - The overflowing allocation is only in id_mode_to_cifs_acl\u0027s ATTR_UID/ATTR_GID (chown/chgrp) branch from cifs_setattr_nounix, so a user must chown(2) or chgrp(2) a file on a cifsacl, modefromsid, or posix_extensions CIFS mount of the attacker\u0027s share; lookup/stat/read never rewrite that DACL.\nS:U - The overflow is of the kmalloc\u0027d pnntsd buffer inside id_mode_to_cifs_acl/build_sec_desc on the CIFS client host and stays in that kernel\u0027s own authority; it is not a VM, IOMMU, or sandbox escape.\nC:H - replace_sids_and_copy_aces heap-overflows pnntsd in build_sec_desc (KASAN slab-out-of-bounds write of expanded ACE/SID bytes). Corrupting neighboring slab objects is a kernel-memory disclosure primitive, so confidentiality is High.\nI:H - cifs_copy_ace writes server-chosen ACE type/flags/access_req and a longer SID past the end of id_mode_to_cifs_acl\u0027s kzalloc buffer, an out-of-bounds heap write that can corrupt adjacent objects and hijack control flow.\nA:H - The same out-of-bounds write in build_sec_desc was reported as KASAN slab-out-of-bounds by task chown and can oops or panic the client kernel, fully denying availability."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-30T12:37:19.991Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/4e78b5ff13214353750b87283ff79f62510f5844"
},
{
"url": "https://git.kernel.org/stable/c/63c2fbde15ffc9a0c21adf670c38d028e20fa65c"
},
{
"url": "https://git.kernel.org/stable/c/d5cea6766ae1868a51c7d17d77d065b4f55c587f"
},
{
"url": "https://git.kernel.org/stable/c/fb736ab4fb8c4fdb8b2f9ccd3a62e03d11549ca1"
},
{
"url": "https://git.kernel.org/stable/c/7fa84c9ca690643f429ae2709584a47e74b572c9"
},
{
"url": "https://git.kernel.org/stable/c/2a9aee9ef5622d58d8aafaa3263b3ffe70e2d9dd"
},
{
"url": "https://git.kernel.org/stable/c/0ee150794c75bcd0be0e24ff3394f433cbae18cc"
}
],
"title": "smb: client: fix heap overflow in DACL owner/group rewrite",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-97555",
"datePublished": "2026-09-25T10:21:46.445Z",
"dateReserved": "2026-09-24T16:01:01.154Z",
"dateUpdated": "2026-10-30T12:37:19.991Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-80977 (GCVE-0-2026-80977)
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: skbuff: don't touch shared zerocopy state in skb_tx_error()
skb_tx_error() completes the zerocopy uarg and clears
SKBFL_ALL_ZEROCOPY, and skb_zcopy_downgrade_managed() clears
SKBFL_MANAGED_FRAG_REFS. Both live in skb_shinfo(), which every clone
shares, while the caller only owns the reference it is about to drop.
Through a clone it tells the producer its pages are free and drops
SKBFL_SHARED_FRAG for an skb that is still in flight.
Open vSwitch reaches this with a non-last OVS_ACTION_ATTR_RECIRC:
clone_execute() sends a skb_clone() into ovs_dp_process_packet() while
do_execute_actions() keeps forwarding the original, and skb_clone()
does not privatise the frags here -- skb_orphan_frags() returns early
on SKBFL_DONT_ORPHAN. A flow miss on the clone then strips the marker
from the packet still being forwarded, and a later local ESP delivery
decrypts in place over frags it does not own privately.
Skip it for a cloned skb. Nothing is lost: skb_release_data() clears
the zerocopy state once the last reference to the shared data goes.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 25121173f7b1e4ac3fc692df6e7b8c52ec36abba Version: 25121173f7b1e4ac3fc692df6e7b8c52ec36abba Version: 25121173f7b1e4ac3fc692df6e7b8c52ec36abba Version: 25121173f7b1e4ac3fc692df6e7b8c52ec36abba Version: 25121173f7b1e4ac3fc692df6e7b8c52ec36abba Version: 25121173f7b1e4ac3fc692df6e7b8c52ec36abba Version: 25121173f7b1e4ac3fc692df6e7b8c52ec36abba Version: 25121173f7b1e4ac3fc692df6e7b8c52ec36abba |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-80977",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T19:21:39.834701Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T19:26:37.069Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/core/skbuff.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "6493165034bca14033bf49c9cec7b45e97a91497",
"status": "affected",
"version": "25121173f7b1e4ac3fc692df6e7b8c52ec36abba",
"versionType": "git"
},
{
"lessThan": "b4452349dcf4d561e13be768d5d278de58248930",
"status": "affected",
"version": "25121173f7b1e4ac3fc692df6e7b8c52ec36abba",
"versionType": "git"
},
{
"lessThan": "363c4252ffc473a0203e91b83ede5519dfb8bd07",
"status": "affected",
"version": "25121173f7b1e4ac3fc692df6e7b8c52ec36abba",
"versionType": "git"
},
{
"lessThan": "6ec22afc82a3cae07ade0a6ec361ae2532128ff5",
"status": "affected",
"version": "25121173f7b1e4ac3fc692df6e7b8c52ec36abba",
"versionType": "git"
},
{
"lessThan": "15aa81b390d401abf4b8211042470e9e92e3b7fb",
"status": "affected",
"version": "25121173f7b1e4ac3fc692df6e7b8c52ec36abba",
"versionType": "git"
},
{
"lessThan": "288f9970670841044ab030104fa6b6ed159949d0",
"status": "affected",
"version": "25121173f7b1e4ac3fc692df6e7b8c52ec36abba",
"versionType": "git"
},
{
"lessThan": "0370da114a9bc044e248b85c6809d1b5e0c1f7f9",
"status": "affected",
"version": "25121173f7b1e4ac3fc692df6e7b8c52ec36abba",
"versionType": "git"
},
{
"lessThan": "f66bdb1cc0fcd227a062378f8be0b5873aa5600a",
"status": "affected",
"version": "25121173f7b1e4ac3fc692df6e7b8c52ec36abba",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/core/skbuff.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.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.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.221",
"versionStartIncluding": "3.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.188",
"versionStartIncluding": "3.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.157",
"versionStartIncluding": "3.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.109",
"versionStartIncluding": "3.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.50",
"versionStartIncluding": "3.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.4",
"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\nnet: skbuff: don\u0027t touch shared zerocopy state in skb_tx_error()\n\nskb_tx_error() completes the zerocopy uarg and clears\nSKBFL_ALL_ZEROCOPY, and skb_zcopy_downgrade_managed() clears\nSKBFL_MANAGED_FRAG_REFS. Both live in skb_shinfo(), which every clone\nshares, while the caller only owns the reference it is about to drop.\nThrough a clone it tells the producer its pages are free and drops\nSKBFL_SHARED_FRAG for an skb that is still in flight.\n\nOpen vSwitch reaches this with a non-last OVS_ACTION_ATTR_RECIRC:\nclone_execute() sends a skb_clone() into ovs_dp_process_packet() while\ndo_execute_actions() keeps forwarding the original, and skb_clone()\ndoes not privatise the frags here -- skb_orphan_frags() returns early\non SKBFL_DONT_ORPHAN. A flow miss on the clone then strips the marker\nfrom the packet still being forwarded, and a later local ESP delivery\ndecrypts in place over frags it does not own privately.\n\nSkip it for a cloned skb. Nothing is lost: skb_release_data() clears\nthe zerocopy state once the last reference to the shared data goes."
}
],
"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 buggy state is a locally originated MSG_ZEROCOPY/io_uring TX skb (SKBFL_DONT_ORPHAN plus a uarg); NIC-received packets never carry that marker, and the skb must still be forwarded into local ESP, so a local account is required.\nAC:L - The attacker fully controls both sides: OVS flows with a non-last RECIRC, a guaranteed miss/upcall failure on the clone, MSG_ZEROCOPY send, and the ESP SA/payload, so the shared-shinfo strip and in-place decrypt are reliably reproducible with no race beyond attacker influence.\nPR:L - An unprivileged user can enable SO_ZEROCOPY and, via unshare -Urn, obtain CAP_NET_ADMIN in a user+net namespace; OVS genetlink uses GENL_UNS_ADMIN_PERM and XFRM SAs are likewise namespace-installable, while the global page cache remains the corruption target.\nUI:N - The attacker installs the OVS recirc flow, sends the MSG_ZEROCOPY packet, and completes local ESP delivery without any victim action.\nS:U - The resulting page-cache write and premature zerocopy completion stay inside the host kernel\u0027s memory authority as a standard local memory-corruption/LPE primitive and do not cross a VM or IOMMU boundary.\nC:H - skb_tx_error() on the clone completes the shared uarg and clears SKBFL_SHARED_FRAG, so later in-place ESP decrypt (and UAF of still-mapped pages) corrupts globally cached file/code pages and can be leveraged for arbitrary disclosure.\nI:H - With the shared-frag marker stripped, esp_input() skips skb_cow_data() and AEAD-decrypts attacker-controlled plaintext in place over page-cache-backed frags, yielding an unprivileged write into files the sender could only read (the Fragnesia primitive).\nA:H - Use-after-free of zerocopy pages still referenced by the in-flight original skb, plus overwriting page-cache-backed executable or kernel-managed data, causes oopses, panics, and process crashes."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T08:46:01.788Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/6493165034bca14033bf49c9cec7b45e97a91497"
},
{
"url": "https://git.kernel.org/stable/c/b4452349dcf4d561e13be768d5d278de58248930"
},
{
"url": "https://git.kernel.org/stable/c/363c4252ffc473a0203e91b83ede5519dfb8bd07"
},
{
"url": "https://git.kernel.org/stable/c/6ec22afc82a3cae07ade0a6ec361ae2532128ff5"
},
{
"url": "https://git.kernel.org/stable/c/15aa81b390d401abf4b8211042470e9e92e3b7fb"
},
{
"url": "https://git.kernel.org/stable/c/288f9970670841044ab030104fa6b6ed159949d0"
},
{
"url": "https://git.kernel.org/stable/c/0370da114a9bc044e248b85c6809d1b5e0c1f7f9"
},
{
"url": "https://git.kernel.org/stable/c/f66bdb1cc0fcd227a062378f8be0b5873aa5600a"
}
],
"title": "net: skbuff: don\u0027t touch shared zerocopy state in skb_tx_error()",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-80977",
"datePublished": "2026-09-11T19:42:38.862Z",
"dateReserved": "2026-08-26T14:34:25.811Z",
"dateUpdated": "2026-10-19T08:46:01.788Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-93787 (GCVE-0-2026-93787)
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: bound dirent name against end of SMB response in cifs_filldir
cifs_filldir() copies the entry name out of an SMB1 TRANS2_FIND_FIRST /
FIND_NEXT response using a length (de.namelen) supplied by the server.
The kmalloc'd SMB response buffer is bounded, but nothing checks that
de.name + de.namelen still lies inside that buffer before the eventual
filldir64() -> verify_dirent_name() -> memchr() reads namelen bytes.
A hostile SMB1 server that returns an oversized FileNameLength in a
directory entry therefore causes memchr() to read past the end of the
response slab buffer. Reachable from any user who can list a directory
on a CIFS mount served by an attacker-controlled server (getdents64()
on the mounted directory):
BUG: KASAN: slab-out-of-bounds in memchr+0x71/0x80
Read of size 1 at addr ffff88800e0640cc by task poc/115
Call Trace:
dump_stack_lvl+0x64/0x80
print_report+0xce/0x620
kasan_report+0xec/0x120
memchr+0x71/0x80
filldir64+0x4c/0x6a0
cifs_filldir.constprop.0+0x9bb/0x1e00
cifs_readdir+0x2101/0x3380
iterate_dir+0x19c/0x520
__x64_sys_getdents64+0x126/0x210
do_syscall_64+0x107/0x5a0
entry_SYSCALL_64_after_hwframe+0x77/0x7f
Pass the end-of-response pointer down to cifs_filldir() and reject
entries whose name would extend past that boundary.
This bug was discovered by Artiphishell's vTriage pipeline, which
generated a userspace reproducer (an emulated hostile SMB1 server plus
a getdents64() client) that reliably triggers the KASAN report on an
unpatched kernel. The fix below was drafted with the Claude coding
assistant; a userspace reproducer is available on request.
References
| URL | Tags | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"fs/smb/client/readdir.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "4cb3d79beee0fecc739ce07af915d503f29ae557",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "cf87ef1e62ed31a439064cef69d6eec38c68bd92",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "6e3b965267b7313903baba2739992b1e2e92d540",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "03003506c86f90312b0966283662c42fcab66e4b",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "f8cf09a53a0dc1da298e9dd0ba5f21710cf119d6",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"fs/smb/client/readdir.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": "*",
"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.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\nsmb: client: bound dirent name against end of SMB response in cifs_filldir\n\ncifs_filldir() copies the entry name out of an SMB1 TRANS2_FIND_FIRST /\nFIND_NEXT response using a length (de.namelen) supplied by the server.\nThe kmalloc\u0027d SMB response buffer is bounded, but nothing checks that\nde.name + de.namelen still lies inside that buffer before the eventual\nfilldir64() -\u003e verify_dirent_name() -\u003e memchr() reads namelen bytes.\n\nA hostile SMB1 server that returns an oversized FileNameLength in a\ndirectory entry therefore causes memchr() to read past the end of the\nresponse slab buffer. Reachable from any user who can list a directory\non a CIFS mount served by an attacker-controlled server (getdents64()\non the mounted directory):\n\n BUG: KASAN: slab-out-of-bounds in memchr+0x71/0x80\n Read of size 1 at addr ffff88800e0640cc by task poc/115\n Call Trace:\n dump_stack_lvl+0x64/0x80\n print_report+0xce/0x620\n kasan_report+0xec/0x120\n memchr+0x71/0x80\n filldir64+0x4c/0x6a0\n cifs_filldir.constprop.0+0x9bb/0x1e00\n cifs_readdir+0x2101/0x3380\n iterate_dir+0x19c/0x520\n __x64_sys_getdents64+0x126/0x210\n do_syscall_64+0x107/0x5a0\n entry_SYSCALL_64_after_hwframe+0x77/0x7f\n\nPass the end-of-response pointer down to cifs_filldir() and reject\nentries whose name would extend past that boundary.\n\nThis bug was discovered by Artiphishell\u0027s vTriage pipeline, which\ngenerated a userspace reproducer (an emulated hostile SMB1 server plus\na getdents64() client) that reliably triggers the KASAN report on an\nunpatched kernel. The fix below was drafted with the Claude coding\nassistant; a userspace reproducer is available on request."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 8.1,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:N/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - cifs_filldir() takes FileNameLength from an SMB1 TRANS2_FIND_FIRST/FIND_NEXT directory entry received over TCP/445; CIFSFindFirst() stores that PDU in srch_inf.ntwrk_buf_start and getdents64\u2192iterate_dir\u2192cifs_readdir() passes each entry to cifs_filldir(), so the oversized name length is protocol data from the remote SMB peer.\nAC:L - The hostile SMB1 server sets FileNameLength (cifs_fill_dirent_dir/full/search/both) and Flags2 unicode and can place FileName near the end of the CIFSFindFirst buffer so de.name+de.namelen exceeds end_of_smb; the old namelen\u003emax_len check only compared against the whole SMB size, so the overread is deterministic with no race.\nPR:N - The attacker is the remote SMB1 server (or a MITM on an unsigned SMB1 session) that returns the FIND_FIRST/FIND_NEXT payload; CIFSFindFirst() and cifs_filldir() use the victim\u0027s existing tcon and impose no account or capability check on that peer.\nUI:R - cifs_filldir() is reached only from cifs_dir_ops.iterate_shared (cifs_readdir) on getdents64\u2192iterate_dir; the SMB1 server cannot inject an unsolicited FIND response into that path, so a victim process must list a directory on the CIFS mount.\nS:U - The slab-out-of-bounds read in filldir64\u0027s verify_dirent_name()/memchr() stays inside the client kernel\u0027s CIFS response buffer on the same host; this is not a VM escape, IOMMU bypass, or sandbox boundary crossing.\nC:H - FileNameLength can be just under PATH_MAX while de.name sits at the end of the kmalloc\u0027d FIND response, so memchr() and filldir64\u0027s unsafe_copy_dirent_name() read up to ~4095 bytes of adjacent kernel heap and copy them into the getdents64 userspace buffer.\nI:N - The defect is an over-read of the FIND entry name; cifs_filldir() does not write past the SMB buffer, and filldir64 only copies the over-read bytes to the caller\u0027s dirent buffer, giving no kernel write or control-flow primitive.\nA:H - KASAN reports a slab-out-of-bounds read in memchr() from filldir64\u2190cifs_filldir on the hostile FileNameLength; walking those bytes off the cifs_request object into an unmapped page oopses or panics the client, and the server can retrigger it on every getdents64."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-03T10:57:22.488Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/4cb3d79beee0fecc739ce07af915d503f29ae557"
},
{
"url": "https://git.kernel.org/stable/c/cf87ef1e62ed31a439064cef69d6eec38c68bd92"
},
{
"url": "https://git.kernel.org/stable/c/6e3b965267b7313903baba2739992b1e2e92d540"
},
{
"url": "https://git.kernel.org/stable/c/03003506c86f90312b0966283662c42fcab66e4b"
},
{
"url": "https://git.kernel.org/stable/c/f8cf09a53a0dc1da298e9dd0ba5f21710cf119d6"
}
],
"title": "smb: client: bound dirent name against end of SMB response in cifs_filldir",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-93787",
"datePublished": "2026-09-24T16:02:20.872Z",
"dateReserved": "2026-09-18T17:59:28.788Z",
"dateUpdated": "2026-10-03T10:57:22.488Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-89754 (GCVE-0-2026-89754)
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:
mm/pagewalk: fix stale walk->action escaping walk_pmd_range()
If ->pmd_entry() sets walk->action = ACTION_AGAIN, the pmd_none() check is
retried. The PMD entry may be cleared at the point of retry.
In this case, if walk->ops->install_pte is not specified, the code
continues to the next PMD entry in the range without resetting
walk->action to ACTION_SUBTREE.
This leaves walk->action erroneously set to ACTION_AGAIN, which is
incorrect.
This was incorrect but not problematic up until commit 3b89863c3fa4
("mm/pagewalk: fix race between concurrent split and refault") which
updated walk_pud_range() to check for walk->action == ACTION_AGAIN upon
walk_pmd_range()'s return, causing the PUD walk to be retried.
In this case this results in duplicate walk callbacks being invoked,
which is erroneous and will break any caller that is not idempotent
with respect to this (and waste time for those which are). The result
is an out-of-bounds write, triggered by a local fuzzer:
[ 2.272695] ==================================================================
[ 2.273471] BUG: KASAN: slab-out-of-bounds in __mincore_unmapped_range+0x14f/0x190
[ 2.274302] Write of size 1 at addr ffff888008d9b000 by task poc/106
[ 2.274966]
[ 2.275154] CPU: 0 UID: 1000 PID: 106 Comm: poc Not tainted 7.2.0-rc6-00429-ga7c7074b58d2 #55 PREEMPT(lazy)
[ 2.275159] 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
[ 2.275164] Call Trace:
[ 2.275170] <TASK>
[ 2.275172] dump_stack_lvl+0x53/0x70
[ 2.275200] print_report+0xd0/0x630
[ 2.275210] ? __pfx__raw_spin_lock_irqsave+0x10/0x10
[ 2.275219] ? irqentry_exit+0xd2/0x670
[ 2.275224] ? irqentry_exit+0xd2/0x670
[ 2.275226] ? __virt_addr_valid+0xef/0x1a0
[ 2.275239] ? __mincore_unmapped_range+0x14f/0x190
[ 2.275242] kasan_report+0xce/0x100
[ 2.275245] ? __mincore_unmapped_range+0x14f/0x190
[ 2.275248] __mincore_unmapped_range+0x14f/0x190
[ 2.275252] mincore_unmapped_range+0x45/0x70
[ 2.275254] walk_pgd_range+0xafc/0xfc0
[ 2.275261] ? __pfx_walk_pgd_range+0x10/0x10
[ 2.275264] ? __update_load_avg_se+0x3d1/0x670
[ 2.275275] __walk_page_range+0xc0/0x310
[ 2.275278] ? __pfx_find_vma+0x10/0x10
[ 2.275281] ? finish_task_switch.isra.0+0x16d/0x4f0
[ 2.275290] walk_page_range_mm_unsafe+0x26f/0x3a0
[ 2.275293] ? __pfx_mtree_load+0x10/0x10
[ 2.275298] ? __pfx_walk_page_range_mm_unsafe+0x10/0x10
[ 2.275302] ? __free_frozen_pages+0x54d/0x7e0
[ 2.275308] __do_sys_mincore+0x132/0x380
[ 2.275311] do_syscall_64+0xf9/0x540
[ 2.275316] entry_SYSCALL_64_after_hwframe+0x77/0x7f
[ 2.275322] RIP: 0033:0x422ccd
[ 2.275326] Code: b3 66 2e 0f 1f 84 00 00 00 00 00 66 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 b8 ff ff ff f7 d8 64 89 01 48
[ 2.275329] RSP: 002b:00007fffffffec18 EFLAGS: 00000287 ORIG_RAX: 000000000000001b
[ 2.275337] RAX: ffffffffffffffda RBX: 0000000000000066 RCX: 0000000000422ccd
[ 2.275339] RDX: 00000000004d0940 RSI: 0000000001000000 RDI: 00007ffff4000000
[ 2.275340] RBP: 00000000004d0940 R08: 0000000000000100 R09: 0000000000000100
[ 2.275342] R10: 0000000000000100 R11: 0000000000000287 R12: 20c49ba5e353f7cf
[ 2.275343] R13: 00000000004990d3 R14: 0000000000000000 R15: 0000000000000001
[ 2.275346] </TASK>
[ 2.275347]
[ 2.296904] The buggy address belongs to the object at ffff888008d9b000
[ 2.296904] which belongs to the cache sigqueue of size 80
[ 2.298151] The buggy address is located 0 bytes inside of
[ 2.298151] allocated 80-byte region [ffff888008d9b000, ffff888008d9b050)
[ 2.299408]
[ 2.299601] The buggy address belongs to the physical page:
[ 2.300191] page: refcount:0 mapcount:0 mapping:0000000000000000 index:0x0 pfn:0x8d9b
---truncated---
References
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"mm/pagewalk.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "895cd4ecbb2e03d7583103c65ee5adaae126ed6d",
"status": "affected",
"version": "38ec58670a0c5fc1edabdeccd857e586b7b3f318",
"versionType": "git"
},
{
"lessThan": "c05cdc2ab365b98099386e6c166b9865a4f2a9d3",
"status": "affected",
"version": "3b89863c3fa482912911cd65a12a3aeef662c250",
"versionType": "git"
},
{
"lessThan": "aedf2efd18977e0cef7eb963166e2b1fcc0aa321",
"status": "affected",
"version": "3b89863c3fa482912911cd65a12a3aeef662c250",
"versionType": "git"
},
{
"status": "affected",
"version": "9bbbebd94dd5be25ec8c899d46ef01b33d5d22c0",
"versionType": "git"
},
{
"lessThan": "6.18.50",
"status": "affected",
"version": "6.18.21",
"versionType": "semver"
},
{
"lessThan": "6.20",
"status": "affected",
"version": "6.19.11",
"versionType": "semver"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"mm/pagewalk.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "7.0"
},
{
"lessThan": "7.0",
"status": "unaffected",
"version": "0",
"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.18.50",
"versionStartIncluding": "6.18.21",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.4",
"versionStartIncluding": "7.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "7.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "6.19.11",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nmm/pagewalk: fix stale walk-\u003eaction escaping walk_pmd_range()\n\nIf -\u003epmd_entry() sets walk-\u003eaction = ACTION_AGAIN, the pmd_none() check is\nretried. The PMD entry may be cleared at the point of retry.\n\nIn this case, if walk-\u003eops-\u003einstall_pte is not specified, the code\ncontinues to the next PMD entry in the range without resetting\nwalk-\u003eaction to ACTION_SUBTREE.\n\nThis leaves walk-\u003eaction erroneously set to ACTION_AGAIN, which is\nincorrect.\n\nThis was incorrect but not problematic up until commit 3b89863c3fa4\n(\"mm/pagewalk: fix race between concurrent split and refault\") which\nupdated walk_pud_range() to check for walk-\u003eaction == ACTION_AGAIN upon\nwalk_pmd_range()\u0027s return, causing the PUD walk to be retried.\n\nIn this case this results in duplicate walk callbacks being invoked,\nwhich is erroneous and will break any caller that is not idempotent\nwith respect to this (and waste time for those which are). The result\nis an out-of-bounds write, triggered by a local fuzzer:\n\n[ 2.272695] ==================================================================\n[ 2.273471] BUG: KASAN: slab-out-of-bounds in __mincore_unmapped_range+0x14f/0x190\n[ 2.274302] Write of size 1 at addr ffff888008d9b000 by task poc/106\n[ 2.274966]\n[ 2.275154] CPU: 0 UID: 1000 PID: 106 Comm: poc Not tainted 7.2.0-rc6-00429-ga7c7074b58d2 #55 PREEMPT(lazy)\n[ 2.275159] 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[ 2.275164] Call Trace:\n[ 2.275170] \u003cTASK\u003e\n[ 2.275172] dump_stack_lvl+0x53/0x70\n[ 2.275200] print_report+0xd0/0x630\n[ 2.275210] ? __pfx__raw_spin_lock_irqsave+0x10/0x10\n[ 2.275219] ? irqentry_exit+0xd2/0x670\n[ 2.275224] ? irqentry_exit+0xd2/0x670\n[ 2.275226] ? __virt_addr_valid+0xef/0x1a0\n[ 2.275239] ? __mincore_unmapped_range+0x14f/0x190\n[ 2.275242] kasan_report+0xce/0x100\n[ 2.275245] ? __mincore_unmapped_range+0x14f/0x190\n[ 2.275248] __mincore_unmapped_range+0x14f/0x190\n[ 2.275252] mincore_unmapped_range+0x45/0x70\n[ 2.275254] walk_pgd_range+0xafc/0xfc0\n[ 2.275261] ? __pfx_walk_pgd_range+0x10/0x10\n[ 2.275264] ? __update_load_avg_se+0x3d1/0x670\n[ 2.275275] __walk_page_range+0xc0/0x310\n[ 2.275278] ? __pfx_find_vma+0x10/0x10\n[ 2.275281] ? finish_task_switch.isra.0+0x16d/0x4f0\n[ 2.275290] walk_page_range_mm_unsafe+0x26f/0x3a0\n[ 2.275293] ? __pfx_mtree_load+0x10/0x10\n[ 2.275298] ? __pfx_walk_page_range_mm_unsafe+0x10/0x10\n[ 2.275302] ? __free_frozen_pages+0x54d/0x7e0\n[ 2.275308] __do_sys_mincore+0x132/0x380\n[ 2.275311] do_syscall_64+0xf9/0x540\n[ 2.275316] entry_SYSCALL_64_after_hwframe+0x77/0x7f\n[ 2.275322] RIP: 0033:0x422ccd\n[ 2.275326] Code: b3 66 2e 0f 1f 84 00 00 00 00 00 66 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 b8 ff ff ff f7 d8 64 89 01 48\n[ 2.275329] RSP: 002b:00007fffffffec18 EFLAGS: 00000287 ORIG_RAX: 000000000000001b\n[ 2.275337] RAX: ffffffffffffffda RBX: 0000000000000066 RCX: 0000000000422ccd\n[ 2.275339] RDX: 00000000004d0940 RSI: 0000000001000000 RDI: 00007ffff4000000\n[ 2.275340] RBP: 00000000004d0940 R08: 0000000000000100 R09: 0000000000000100\n[ 2.275342] R10: 0000000000000100 R11: 0000000000000287 R12: 20c49ba5e353f7cf\n[ 2.275343] R13: 00000000004990d3 R14: 0000000000000000 R15: 0000000000000001\n[ 2.275346] \u003c/TASK\u003e\n[ 2.275347]\n[ 2.296904] The buggy address belongs to the object at ffff888008d9b000\n[ 2.296904] which belongs to the cache sigqueue of size 80\n[ 2.298151] The buggy address is located 0 bytes inside of\n[ 2.298151] allocated 80-byte region [ffff888008d9b000, ffff888008d9b050)\n[ 2.299408]\n[ 2.299601] The buggy address belongs to the physical page:\n[ 2.300191] page: refcount:0 mapcount:0 mapping:0000000000000000 index:0x0 pfn:0x8d9b\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 - Triggered by the unprivileged mincore(2) syscall walking the caller\u0027s own page tables; other local walkers such as /proc/self/pagemap share the same pagewalk bug. The path is not reachable from network packet processing.\nAC:L - The stale ACTION_AGAIN escape is a race with concurrent PMD zap, but the attacker controls both sides by calling mincore in one thread while another faults pages and issues madvise(MADV_DONTNEED) on the same mapping, which is a documented unprivileged repro.\nPR:L - mincore(2) requires only a normal local user; the KASAN report was from UID 1000 with no capabilities, and neither root nor user-namespace capabilities are needed.\nUI:N - The attacker invokes mincore and madvise against their own mapping; no separate victim action is required.\nS:U - Impact is kernel heap corruption and possible privilege escalation on the same host kernel; it does not cross a VM, IOMMU, or other security-authority boundary.\nC:H - Duplicate walk callbacks overflow mincore\u0027s kernel vector into adjacent heap (observed as a slab OOB write) and can copy an extra pagemap entry from neighboring kernel memory via /proc/self/pagemap. That memory corruption can be turned into an arbitrary kernel read.\nI:H - mincore\u0027s cursor has no bounds check, so a retried PUD walk writes past the one-page __get_free_page() buffer into adjacent kernel memory, and a fully zapped range can retry unbounded 0/1 writes. That heap corruption is exploitable for arbitrary writes and control-flow hijacking.\nA:H - The out-of-bounds write can oops or panic the kernel, and leaving walk-\u003eaction at ACTION_AGAIN after a zap can make walk_pud_range retry the same PUD indefinitely, hanging the CPU."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T08:52:07.951Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/895cd4ecbb2e03d7583103c65ee5adaae126ed6d"
},
{
"url": "https://git.kernel.org/stable/c/c05cdc2ab365b98099386e6c166b9865a4f2a9d3"
},
{
"url": "https://git.kernel.org/stable/c/aedf2efd18977e0cef7eb963166e2b1fcc0aa321"
}
],
"title": "mm/pagewalk: fix stale walk-\u003eaction escaping walk_pmd_range()",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-89754",
"datePublished": "2026-09-11T19:46:57.534Z",
"dateReserved": "2026-09-11T19:38:34.763Z",
"dateUpdated": "2026-10-19T08:52:07.951Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2025-68358 (GCVE-0-2025-68358)
Vulnerability from cvelistv5
Published
2025-12-24 10:32
Modified
2026-05-11 21:51
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
btrfs: fix racy bitfield write in btrfs_clear_space_info_full()
From the memory-barriers.txt document regarding memory barrier ordering
guarantees:
(*) These guarantees do not apply to bitfields, because compilers often
generate code to modify these using non-atomic read-modify-write
sequences. Do not attempt to use bitfields to synchronize parallel
algorithms.
(*) Even in cases where bitfields are protected by locks, all fields
in a given bitfield must be protected by one lock. If two fields
in a given bitfield are protected by different locks, the compiler's
non-atomic read-modify-write sequences can cause an update to one
field to corrupt the value of an adjacent field.
btrfs_space_info has a bitfield sharing an underlying word consisting of
the fields full, chunk_alloc, and flush:
struct btrfs_space_info {
struct btrfs_fs_info * fs_info; /* 0 8 */
struct btrfs_space_info * parent; /* 8 8 */
...
int clamp; /* 172 4 */
unsigned int full:1; /* 176: 0 4 */
unsigned int chunk_alloc:1; /* 176: 1 4 */
unsigned int flush:1; /* 176: 2 4 */
...
Therefore, to be safe from parallel read-modify-writes losing a write to
one of the bitfield members protected by a lock, all writes to all the
bitfields must use the lock. They almost universally do, except for
btrfs_clear_space_info_full() which iterates over the space_infos and
writes out found->full = 0 without a lock.
Imagine that we have one thread completing a transaction in which we
finished deleting a block_group and are thus calling
btrfs_clear_space_info_full() while simultaneously the data reclaim
ticket infrastructure is running do_async_reclaim_data_space():
T1 T2
btrfs_commit_transaction
btrfs_clear_space_info_full
data_sinfo->full = 0
READ: full:0, chunk_alloc:0, flush:1
do_async_reclaim_data_space(data_sinfo)
spin_lock(&space_info->lock);
if(list_empty(tickets))
space_info->flush = 0;
READ: full: 0, chunk_alloc:0, flush:1
MOD/WRITE: full: 0, chunk_alloc:0, flush:0
spin_unlock(&space_info->lock);
return;
MOD/WRITE: full:0, chunk_alloc:0, flush:1
and now data_sinfo->flush is 1 but the reclaim worker has exited. This
breaks the invariant that flush is 0 iff there is no work queued or
running. Once this invariant is violated, future allocations that go
into __reserve_bytes() will add tickets to space_info->tickets but will
see space_info->flush is set to 1 and not queue the work. After this,
they will block forever on the resulting ticket, as it is now impossible
to kick the worker again.
I also confirmed by looking at the assembly of the affected kernel that
it is doing RMW operations. For example, to set the flush (3rd) bit to 0,
the assembly is:
andb $0xfb,0x60(%rbx)
and similarly for setting the full (1st) bit to 0:
andb $0xfe,-0x20(%rax)
So I think this is really a bug on practical systems. I have observed
a number of systems in this exact state, but am currently unable to
reproduce it.
Rather than leaving this footgun lying around for the future, take
advantage of the fact that there is room in the struct anyway, and that
it is already quite large and simply change the three bitfield members to
bools. This avoids writes to space_info->full having any effect on
---truncated---
References
| URL | Tags | ||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 957780eb2788d8c218d539e19a85653f51a96dc1 Version: 957780eb2788d8c218d539e19a85653f51a96dc1 Version: 957780eb2788d8c218d539e19a85653f51a96dc1 Version: 957780eb2788d8c218d539e19a85653f51a96dc1 Version: 957780eb2788d8c218d539e19a85653f51a96dc1 Version: 957780eb2788d8c218d539e19a85653f51a96dc1 Version: 957780eb2788d8c218d539e19a85653f51a96dc1 |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"fs/btrfs/block-group.c",
"fs/btrfs/space-info.c",
"fs/btrfs/space-info.h"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "b0bb67385480a3aa4c54b139e4f371ddd06b5150",
"status": "affected",
"version": "957780eb2788d8c218d539e19a85653f51a96dc1",
"versionType": "git"
},
{
"lessThan": "55835646da78e83e7ad06abd741ca8fd8c0b0ea7",
"status": "affected",
"version": "957780eb2788d8c218d539e19a85653f51a96dc1",
"versionType": "git"
},
{
"lessThan": "d4a81b8ec639895999275ea2472c69825cd67ea4",
"status": "affected",
"version": "957780eb2788d8c218d539e19a85653f51a96dc1",
"versionType": "git"
},
{
"lessThan": "db4ae18e1b31e0421fb5312e56aefa382bbc6ece",
"status": "affected",
"version": "957780eb2788d8c218d539e19a85653f51a96dc1",
"versionType": "git"
},
{
"lessThan": "6f442808a86eef847ee10afa9e6459494ed85bb3",
"status": "affected",
"version": "957780eb2788d8c218d539e19a85653f51a96dc1",
"versionType": "git"
},
{
"lessThan": "742b90eaf394f0018352c0e10dc89763b2dd5267",
"status": "affected",
"version": "957780eb2788d8c218d539e19a85653f51a96dc1",
"versionType": "git"
},
{
"lessThan": "38e818718c5e04961eea0fa8feff3f100ce40408",
"status": "affected",
"version": "957780eb2788d8c218d539e19a85653f51a96dc1",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"fs/btrfs/block-group.c",
"fs/btrfs/space-info.c",
"fs/btrfs/space-info.h"
],
"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.15.*",
"status": "unaffected",
"version": "5.15.201",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.164",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.124",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.68",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.17.*",
"status": "unaffected",
"version": "6.17.13",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.2",
"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": "5.15.201",
"versionStartIncluding": "4.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.164",
"versionStartIncluding": "4.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.124",
"versionStartIncluding": "4.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.68",
"versionStartIncluding": "4.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.17.13",
"versionStartIncluding": "4.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.2",
"versionStartIncluding": "4.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.19",
"versionStartIncluding": "4.8",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nbtrfs: fix racy bitfield write in btrfs_clear_space_info_full()\n\nFrom the memory-barriers.txt document regarding memory barrier ordering\nguarantees:\n\n (*) These guarantees do not apply to bitfields, because compilers often\n generate code to modify these using non-atomic read-modify-write\n sequences. Do not attempt to use bitfields to synchronize parallel\n algorithms.\n\n (*) Even in cases where bitfields are protected by locks, all fields\n in a given bitfield must be protected by one lock. If two fields\n in a given bitfield are protected by different locks, the compiler\u0027s\n non-atomic read-modify-write sequences can cause an update to one\n field to corrupt the value of an adjacent field.\n\nbtrfs_space_info has a bitfield sharing an underlying word consisting of\nthe fields full, chunk_alloc, and flush:\n\nstruct btrfs_space_info {\n struct btrfs_fs_info * fs_info; /* 0 8 */\n struct btrfs_space_info * parent; /* 8 8 */\n ...\n int clamp; /* 172 4 */\n unsigned int full:1; /* 176: 0 4 */\n unsigned int chunk_alloc:1; /* 176: 1 4 */\n unsigned int flush:1; /* 176: 2 4 */\n ...\n\nTherefore, to be safe from parallel read-modify-writes losing a write to\none of the bitfield members protected by a lock, all writes to all the\nbitfields must use the lock. They almost universally do, except for\nbtrfs_clear_space_info_full() which iterates over the space_infos and\nwrites out found-\u003efull = 0 without a lock.\n\nImagine that we have one thread completing a transaction in which we\nfinished deleting a block_group and are thus calling\nbtrfs_clear_space_info_full() while simultaneously the data reclaim\nticket infrastructure is running do_async_reclaim_data_space():\n\n T1 T2\nbtrfs_commit_transaction\n btrfs_clear_space_info_full\n data_sinfo-\u003efull = 0\n READ: full:0, chunk_alloc:0, flush:1\n do_async_reclaim_data_space(data_sinfo)\n spin_lock(\u0026space_info-\u003elock);\n if(list_empty(tickets))\n space_info-\u003eflush = 0;\n READ: full: 0, chunk_alloc:0, flush:1\n MOD/WRITE: full: 0, chunk_alloc:0, flush:0\n spin_unlock(\u0026space_info-\u003elock);\n return;\n MOD/WRITE: full:0, chunk_alloc:0, flush:1\n\nand now data_sinfo-\u003eflush is 1 but the reclaim worker has exited. This\nbreaks the invariant that flush is 0 iff there is no work queued or\nrunning. Once this invariant is violated, future allocations that go\ninto __reserve_bytes() will add tickets to space_info-\u003etickets but will\nsee space_info-\u003eflush is set to 1 and not queue the work. After this,\nthey will block forever on the resulting ticket, as it is now impossible\nto kick the worker again.\n\nI also confirmed by looking at the assembly of the affected kernel that\nit is doing RMW operations. For example, to set the flush (3rd) bit to 0,\nthe assembly is:\n andb $0xfb,0x60(%rbx)\nand similarly for setting the full (1st) bit to 0:\n andb $0xfe,-0x20(%rax)\n\nSo I think this is really a bug on practical systems. I have observed\na number of systems in this exact state, but am currently unable to\nreproduce it.\n\nRather than leaving this footgun lying around for the future, take\nadvantage of the fact that there is room in the struct anyway, and that\nit is already quite large and simply change the three bitfield members to\nbools. This avoids writes to space_info-\u003efull having any effect on\n---truncated---"
}
],
"providerMetadata": {
"dateUpdated": "2026-05-11T21:51:39.547Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/b0bb67385480a3aa4c54b139e4f371ddd06b5150"
},
{
"url": "https://git.kernel.org/stable/c/55835646da78e83e7ad06abd741ca8fd8c0b0ea7"
},
{
"url": "https://git.kernel.org/stable/c/d4a81b8ec639895999275ea2472c69825cd67ea4"
},
{
"url": "https://git.kernel.org/stable/c/db4ae18e1b31e0421fb5312e56aefa382bbc6ece"
},
{
"url": "https://git.kernel.org/stable/c/6f442808a86eef847ee10afa9e6459494ed85bb3"
},
{
"url": "https://git.kernel.org/stable/c/742b90eaf394f0018352c0e10dc89763b2dd5267"
},
{
"url": "https://git.kernel.org/stable/c/38e818718c5e04961eea0fa8feff3f100ce40408"
}
],
"title": "btrfs: fix racy bitfield write in btrfs_clear_space_info_full()",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2025-68358",
"datePublished": "2025-12-24T10:32:47.692Z",
"dateReserved": "2025-12-16T14:48:05.305Z",
"dateUpdated": "2026-05-11T21:51:39.547Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-98347 (GCVE-0-2026-98347)
Vulnerability from cvelistv5
Published
2026-10-06 08:46
Modified
2026-10-19 09:17
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
IB/IPoIB: Avoid restoring OPER_UP after multicast flush
ipoib_ib_dev_flush_light() temporarily clears IPOIB_FLAG_OPER_UP to
prevent multicast joins while ipoib_mcast_dev_flush() is running, and
restores the flag afterwards if it was previously set.
This restore races with ipoib_ib_dev_down(). If the interface is brought
down while the flush is in progress, ipoib_ib_dev_down() clears
IPOIB_FLAG_OPER_UP, but the flush path may set it again after the device
has already gone down.
Since commit 894021a75291 ("IB/ipoib: Make the carrier_on_task race
aware"), ipoib_mcast_carrier_on_task() relies on IPOIB_FLAG_OPER_UP
being cleared to terminate its rtnl_trylock() retry loop. If the flag is
left set after shutdown, the workqueue retries forever, causing teardown
to deadlock when ipoib_ndo_uninit() waits in destroy_workqueue() while
holding RTNL.
Instead of overloading IPOIB_FLAG_OPER_UP to block multicast joins
during a light flush, introduce a dedicated IPOIB_FLAG_MCAST_FLUSH flag.
Use it together with IPOIB_FLAG_OPER_UP to determine whether multicast
joins are allowed, avoiding the race with device shutdown.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 344bacca8cd811809fc33a249f2738ab757d327f Version: 344bacca8cd811809fc33a249f2738ab757d327f Version: 344bacca8cd811809fc33a249f2738ab757d327f Version: 344bacca8cd811809fc33a249f2738ab757d327f Version: 344bacca8cd811809fc33a249f2738ab757d327f Version: 344bacca8cd811809fc33a249f2738ab757d327f Version: 344bacca8cd811809fc33a249f2738ab757d327f Version: 344bacca8cd811809fc33a249f2738ab757d327f Version: a289c65ca49d2680a3d797e633e57a45573d1df2 Version: b81459c78935e4579a577b2366c5f8878d3c7fee Version: 8a9d8dc9ce83a90bfbbe69181acc4cf1beff46f5 Version: dfe809702a11bd7fb91c882fb55620e39ce22109 Version: 87160fb51bc343793cc8f5f031a87f1a35aecb82 Version: 749fd55dd210f9676f0d445a6efaaa3bec65174a Version: 3.2.84 ≤ Version: 3.10.105 ≤ Version: 3.12.65 ≤ Version: 3.16.39 ≤ Version: 4.4.24 ≤ Version: 4.7.7 ≤ |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/infiniband/ulp/ipoib/ipoib.h",
"drivers/infiniband/ulp/ipoib/ipoib_ib.c",
"drivers/infiniband/ulp/ipoib/ipoib_multicast.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "f973769fb7cb33ba0d4a64b7dcfee0cabaead938",
"status": "affected",
"version": "344bacca8cd811809fc33a249f2738ab757d327f",
"versionType": "git"
},
{
"lessThan": "b72f38929f4b5aa83161fd3b22a7327207e51ec5",
"status": "affected",
"version": "344bacca8cd811809fc33a249f2738ab757d327f",
"versionType": "git"
},
{
"lessThan": "1b11e4b55b41d9e69a8e8d07622614202e2eaca9",
"status": "affected",
"version": "344bacca8cd811809fc33a249f2738ab757d327f",
"versionType": "git"
},
{
"lessThan": "326f7d34bd7e64de535566b65c0533b640df5a81",
"status": "affected",
"version": "344bacca8cd811809fc33a249f2738ab757d327f",
"versionType": "git"
},
{
"lessThan": "5ad925d45f28464a5e043c9620880bb6a030da89",
"status": "affected",
"version": "344bacca8cd811809fc33a249f2738ab757d327f",
"versionType": "git"
},
{
"lessThan": "188b334a6db36a8e0bfaaf59bc4020639a0f3aad",
"status": "affected",
"version": "344bacca8cd811809fc33a249f2738ab757d327f",
"versionType": "git"
},
{
"lessThan": "1ff3add37c329704ec46181b4ae4f00f9f16ce6f",
"status": "affected",
"version": "344bacca8cd811809fc33a249f2738ab757d327f",
"versionType": "git"
},
{
"lessThan": "9a141d3dc869d18b2eab35e999f4790a9b84e40f",
"status": "affected",
"version": "344bacca8cd811809fc33a249f2738ab757d327f",
"versionType": "git"
},
{
"status": "affected",
"version": "a289c65ca49d2680a3d797e633e57a45573d1df2",
"versionType": "git"
},
{
"status": "affected",
"version": "b81459c78935e4579a577b2366c5f8878d3c7fee",
"versionType": "git"
},
{
"status": "affected",
"version": "8a9d8dc9ce83a90bfbbe69181acc4cf1beff46f5",
"versionType": "git"
},
{
"status": "affected",
"version": "dfe809702a11bd7fb91c882fb55620e39ce22109",
"versionType": "git"
},
{
"status": "affected",
"version": "87160fb51bc343793cc8f5f031a87f1a35aecb82",
"versionType": "git"
},
{
"status": "affected",
"version": "749fd55dd210f9676f0d445a6efaaa3bec65174a",
"versionType": "git"
},
{
"lessThan": "3.3",
"status": "affected",
"version": "3.2.84",
"versionType": "semver"
},
{
"lessThan": "3.11",
"status": "affected",
"version": "3.10.105",
"versionType": "semver"
},
{
"lessThan": "3.13",
"status": "affected",
"version": "3.12.65",
"versionType": "semver"
},
{
"lessThan": "3.17",
"status": "affected",
"version": "3.16.39",
"versionType": "semver"
},
{
"lessThan": "4.5",
"status": "affected",
"version": "4.4.24",
"versionType": "semver"
},
{
"lessThan": "4.8",
"status": "affected",
"version": "4.7.7",
"versionType": "semver"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/infiniband/ulp/ipoib/ipoib.h",
"drivers/infiniband/ulp/ipoib/ipoib_ib.c",
"drivers/infiniband/ulp/ipoib/ipoib_multicast.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.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.112",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.54",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.8",
"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.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.222",
"versionStartIncluding": "4.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.189",
"versionStartIncluding": "4.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.158",
"versionStartIncluding": "4.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.112",
"versionStartIncluding": "4.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.54",
"versionStartIncluding": "4.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.8",
"versionStartIncluding": "4.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "4.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "3.2.84",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "3.10.105",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "3.12.65",
"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": "4.4.24",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "4.7.7",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nIB/IPoIB: Avoid restoring OPER_UP after multicast flush\n\nipoib_ib_dev_flush_light() temporarily clears IPOIB_FLAG_OPER_UP to\nprevent multicast joins while ipoib_mcast_dev_flush() is running, and\nrestores the flag afterwards if it was previously set.\n\nThis restore races with ipoib_ib_dev_down(). If the interface is brought\ndown while the flush is in progress, ipoib_ib_dev_down() clears\nIPOIB_FLAG_OPER_UP, but the flush path may set it again after the device\nhas already gone down.\n\nSince commit 894021a75291 (\"IB/ipoib: Make the carrier_on_task race\naware\"), ipoib_mcast_carrier_on_task() relies on IPOIB_FLAG_OPER_UP\nbeing cleared to terminate its rtnl_trylock() retry loop. If the flag is\nleft set after shutdown, the workqueue retries forever, causing teardown\nto deadlock when ipoib_ndo_uninit() waits in destroy_workqueue() while\nholding RTNL.\n\nInstead of overloading IPOIB_FLAG_OPER_UP to block multicast joins\nduring a light flush, introduce a dedicated IPOIB_FLAG_MCAST_FLUSH flag.\nUse it together with IPOIB_FLAG_OPER_UP to determine whether multicast\njoins are allowed, avoiding the race with device shutdown."
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T09:17:58.195Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/f973769fb7cb33ba0d4a64b7dcfee0cabaead938"
},
{
"url": "https://git.kernel.org/stable/c/b72f38929f4b5aa83161fd3b22a7327207e51ec5"
},
{
"url": "https://git.kernel.org/stable/c/1b11e4b55b41d9e69a8e8d07622614202e2eaca9"
},
{
"url": "https://git.kernel.org/stable/c/326f7d34bd7e64de535566b65c0533b640df5a81"
},
{
"url": "https://git.kernel.org/stable/c/5ad925d45f28464a5e043c9620880bb6a030da89"
},
{
"url": "https://git.kernel.org/stable/c/188b334a6db36a8e0bfaaf59bc4020639a0f3aad"
},
{
"url": "https://git.kernel.org/stable/c/1ff3add37c329704ec46181b4ae4f00f9f16ce6f"
},
{
"url": "https://git.kernel.org/stable/c/9a141d3dc869d18b2eab35e999f4790a9b84e40f"
}
],
"title": "IB/IPoIB: Avoid restoring OPER_UP after multicast flush",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-98347",
"datePublished": "2026-10-06T08:46:36.136Z",
"dateReserved": "2026-09-25T10:25:14.343Z",
"dateUpdated": "2026-10-19T09:17:58.195Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-93252 (GCVE-0-2026-93252)
Vulnerability from cvelistv5
Published
2026-09-24 15:51
Modified
2026-10-19 09:08
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
ocfs2: fix circular locking dependency in ocfs2_init_acl()
A lockdep warning indicates a circular locking dependency between
`&oi->ip_xattr_sem` and `&journal->j_trans_barrier`:
WARNING: possible circular locking dependency detected
is trying to acquire lock:
(&oi->ip_xattr_sem){++++}-{4:4}, at: ocfs2_init_acl+0x2fd/0x7e0
fs/ocfs2/acl.c:367
but task is already holding lock:
(&journal->j_trans_barrier){.+.+}-{4:4}, at: ocfs2_start_trans+0x3ab/0x700
fs/ocfs2/journal.c:369
The deadlock involves two code paths: Path 1 (setxattr) where
`ocfs2_xattr_set()` acquires `ip_xattr_sem` (write) and then starts a
transaction, which acquires `j_trans_barrier` (read); and Path 2
(mkdir/mknod) where `ocfs2_mknod()` starts a transaction (`j_trans_barrier`
read) and then calls `ocfs2_init_acl()`, which attempts to acquire
`ip_xattr_sem` (read) on the parent directory to retrieve the default ACL.
Because rw_semaphores are subject to writer priority, a pending writer on
`j_trans_barrier` (e.g., the journal commit thread) can cause Path 1 to
block, while Path 2 is blocked waiting for Path 1 to release
`ip_xattr_sem`.
The patch fixes the lock ordering by precomputing the ACL state before
starting the OCFS2 transaction, while preserving POSIX ACL storage
semantics and the existing inode/security initialization order. By reading
the parent directory's default ACL and preparing the new inode's ACLs
outside the transaction, `ip_xattr_sem` is always acquired before
`j_trans_barrier`.
`struct ocfs2_acl_state` encapsulates the prepared ACL state, while
`ocfs2_acl_init_prepare()` and `ocfs2_acl_init_release()` avoid code
duplication between `ocfs2_mknod()` and `ocfs2_init_security_and_acl()`.
`ocfs2_calc_xattr_init()` and `ocfs2_init_acl()` use this precomputed
state, removing internal `ip_xattr_sem` acquisition and redundant disk
reads.
Additionally, remove the `ip_xattr_sem` acquisition from
`ocfs2_xattr_set_handle()`. This function is only used while initializing a
new inode that has not yet been inserted into the inode hash or attached to
a dentry, meaning there is no risk of concurrent access and the lock is
unnecessary.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 16c8d569f5704a84164f30ff01b29879f3438065 Version: 16c8d569f5704a84164f30ff01b29879f3438065 Version: 16c8d569f5704a84164f30ff01b29879f3438065 Version: 16c8d569f5704a84164f30ff01b29879f3438065 Version: 16c8d569f5704a84164f30ff01b29879f3438065 Version: 16c8d569f5704a84164f30ff01b29879f3438065 Version: 16c8d569f5704a84164f30ff01b29879f3438065 Version: 16c8d569f5704a84164f30ff01b29879f3438065 Version: 15ac59a84750b3afc0a2b6f2636c4f7e6cbd6d5e Version: b35bb8a41795caa05e09c3aacf7d78f1f20bac04 Version: 1d5fdc1307eeb04b334c5dc23e11dbd6068d90eb Version: a66174eb4a149b7919d174d9a7ce6ad9909c5ee2 Version: 3.18.111 ≤ Version: 4.4.134 ≤ Version: 4.9.104 ≤ Version: 4.14.37 ≤ |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"fs/ocfs2/acl.c",
"fs/ocfs2/acl.h",
"fs/ocfs2/namei.c",
"fs/ocfs2/xattr.c",
"fs/ocfs2/xattr.h"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "4936d4464d1ae10b5fbba64374085a0dcc060560",
"status": "affected",
"version": "16c8d569f5704a84164f30ff01b29879f3438065",
"versionType": "git"
},
{
"lessThan": "caf3056936fb8b5ce92e419cf8b246ce9c437343",
"status": "affected",
"version": "16c8d569f5704a84164f30ff01b29879f3438065",
"versionType": "git"
},
{
"lessThan": "5b7b3c50c39ad0dc27e7418981e01c4183273f89",
"status": "affected",
"version": "16c8d569f5704a84164f30ff01b29879f3438065",
"versionType": "git"
},
{
"lessThan": "8d88f52fbbbcc18adf4091a955511d0cf605bf11",
"status": "affected",
"version": "16c8d569f5704a84164f30ff01b29879f3438065",
"versionType": "git"
},
{
"lessThan": "8931403ee3dcfe8a24a5267efec9d9460ab7a1b5",
"status": "affected",
"version": "16c8d569f5704a84164f30ff01b29879f3438065",
"versionType": "git"
},
{
"lessThan": "f8747d81aa6d3efe3ee339a9d912ff3ca6e4d758",
"status": "affected",
"version": "16c8d569f5704a84164f30ff01b29879f3438065",
"versionType": "git"
},
{
"lessThan": "1222f7a3183b35c0c566899fdaead5c7c4043076",
"status": "affected",
"version": "16c8d569f5704a84164f30ff01b29879f3438065",
"versionType": "git"
},
{
"lessThan": "bd7c05fb4a4776dff5a87b19008d28458647d15d",
"status": "affected",
"version": "16c8d569f5704a84164f30ff01b29879f3438065",
"versionType": "git"
},
{
"status": "affected",
"version": "15ac59a84750b3afc0a2b6f2636c4f7e6cbd6d5e",
"versionType": "git"
},
{
"status": "affected",
"version": "b35bb8a41795caa05e09c3aacf7d78f1f20bac04",
"versionType": "git"
},
{
"status": "affected",
"version": "1d5fdc1307eeb04b334c5dc23e11dbd6068d90eb",
"versionType": "git"
},
{
"status": "affected",
"version": "a66174eb4a149b7919d174d9a7ce6ad9909c5ee2",
"versionType": "git"
},
{
"lessThan": "3.19",
"status": "affected",
"version": "3.18.111",
"versionType": "semver"
},
{
"lessThan": "4.5",
"status": "affected",
"version": "4.4.134",
"versionType": "semver"
},
{
"lessThan": "4.10",
"status": "affected",
"version": "4.9.104",
"versionType": "semver"
},
{
"lessThan": "4.15",
"status": "affected",
"version": "4.14.37",
"versionType": "semver"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"fs/ocfs2/acl.c",
"fs/ocfs2/acl.h",
"fs/ocfs2/namei.c",
"fs/ocfs2/xattr.c",
"fs/ocfs2/xattr.h"
],
"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.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.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.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
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "3.18.111",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "4.4.134",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "4.9.104",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "4.14.37",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nocfs2: fix circular locking dependency in ocfs2_init_acl()\n\nA lockdep warning indicates a circular locking dependency between\n`\u0026oi-\u003eip_xattr_sem` and `\u0026journal-\u003ej_trans_barrier`:\n\nWARNING: possible circular locking dependency detected\nis trying to acquire lock:\n (\u0026oi-\u003eip_xattr_sem){++++}-{4:4}, at: ocfs2_init_acl+0x2fd/0x7e0\n fs/ocfs2/acl.c:367\n\nbut task is already holding lock:\n (\u0026journal-\u003ej_trans_barrier){.+.+}-{4:4}, at: ocfs2_start_trans+0x3ab/0x700\n fs/ocfs2/journal.c:369\n\nThe deadlock involves two code paths: Path 1 (setxattr) where\n`ocfs2_xattr_set()` acquires `ip_xattr_sem` (write) and then starts a\ntransaction, which acquires `j_trans_barrier` (read); and Path 2\n(mkdir/mknod) where `ocfs2_mknod()` starts a transaction (`j_trans_barrier`\nread) and then calls `ocfs2_init_acl()`, which attempts to acquire\n`ip_xattr_sem` (read) on the parent directory to retrieve the default ACL.\n\nBecause rw_semaphores are subject to writer priority, a pending writer on\n`j_trans_barrier` (e.g., the journal commit thread) can cause Path 1 to\nblock, while Path 2 is blocked waiting for Path 1 to release\n`ip_xattr_sem`.\n\nThe patch fixes the lock ordering by precomputing the ACL state before\nstarting the OCFS2 transaction, while preserving POSIX ACL storage\nsemantics and the existing inode/security initialization order. By reading\nthe parent directory\u0027s default ACL and preparing the new inode\u0027s ACLs\noutside the transaction, `ip_xattr_sem` is always acquired before\n`j_trans_barrier`.\n\n`struct ocfs2_acl_state` encapsulates the prepared ACL state, while\n`ocfs2_acl_init_prepare()` and `ocfs2_acl_init_release()` avoid code\nduplication between `ocfs2_mknod()` and `ocfs2_init_security_and_acl()`.\n`ocfs2_calc_xattr_init()` and `ocfs2_init_acl()` use this precomputed\nstate, removing internal `ip_xattr_sem` acquisition and redundant disk\nreads.\n\nAdditionally, remove the `ip_xattr_sem` acquisition from\n`ocfs2_xattr_set_handle()`. This function is only used while initializing a\nnew inode that has not yet been inserted into the inode hash or attached to\na dentry, meaning there is no risk of concurrent access and the lock is\nunnecessary."
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T09:08:05.879Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/4936d4464d1ae10b5fbba64374085a0dcc060560"
},
{
"url": "https://git.kernel.org/stable/c/caf3056936fb8b5ce92e419cf8b246ce9c437343"
},
{
"url": "https://git.kernel.org/stable/c/5b7b3c50c39ad0dc27e7418981e01c4183273f89"
},
{
"url": "https://git.kernel.org/stable/c/8d88f52fbbbcc18adf4091a955511d0cf605bf11"
},
{
"url": "https://git.kernel.org/stable/c/8931403ee3dcfe8a24a5267efec9d9460ab7a1b5"
},
{
"url": "https://git.kernel.org/stable/c/f8747d81aa6d3efe3ee339a9d912ff3ca6e4d758"
},
{
"url": "https://git.kernel.org/stable/c/1222f7a3183b35c0c566899fdaead5c7c4043076"
},
{
"url": "https://git.kernel.org/stable/c/bd7c05fb4a4776dff5a87b19008d28458647d15d"
}
],
"title": "ocfs2: fix circular locking dependency in ocfs2_init_acl()",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-93252",
"datePublished": "2026-09-24T15:51:28.355Z",
"dateReserved": "2026-09-17T16:02:15.096Z",
"dateUpdated": "2026-10-19T09:08:05.879Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-98167 (GCVE-0-2026-98167)
Vulnerability from cvelistv5
Published
2026-10-06 08:44
Modified
2026-10-19 09:14
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
smb: client: fix server->total_read for compound encrypted PDUs
In receive_encrypted_standard(), server->total_read is left at the
full decrypted frame size when walking sub-PDUs of a compound encrypted
frame. As a result, cifs_handle_standard() passes this full size
to smb2_check_message(), causing the PDU length guards to incorrectly
validate the entire compound frame instead of the current sub-PDU.
This allows truncated non-last sub-PDUs to bypass length validation,
leading to out-of-bounds reads in smb2_get_data_area_len().
Fix this by setting server->total_read to the true length of the
current sub-PDU: next_cmd for non-last sub-PDUs, and the remaining
pdu_length for the last one.
References
| URL | Tags | |||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: b24df3e30cbf48255db866720fb71f14bf9d2f39 Version: b24df3e30cbf48255db866720fb71f14bf9d2f39 Version: b24df3e30cbf48255db866720fb71f14bf9d2f39 Version: b24df3e30cbf48255db866720fb71f14bf9d2f39 Version: b24df3e30cbf48255db866720fb71f14bf9d2f39 Version: b24df3e30cbf48255db866720fb71f14bf9d2f39 |
||
{
"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": "8703539d22fdbc13dd2db090ee199c3a427b8ea0",
"status": "affected",
"version": "b24df3e30cbf48255db866720fb71f14bf9d2f39",
"versionType": "git"
},
{
"lessThan": "e78fc1d240b27349b45a0f1c3e3c2c401d7e230d",
"status": "affected",
"version": "b24df3e30cbf48255db866720fb71f14bf9d2f39",
"versionType": "git"
},
{
"lessThan": "a46eb242e9eef3a3897d166748b23303c516e870",
"status": "affected",
"version": "b24df3e30cbf48255db866720fb71f14bf9d2f39",
"versionType": "git"
},
{
"lessThan": "ebb8a075fdc7af3d196a4f158a0e18dbc394c0e3",
"status": "affected",
"version": "b24df3e30cbf48255db866720fb71f14bf9d2f39",
"versionType": "git"
},
{
"lessThan": "282b72f9a7ef31296c48366db4128882999cc048",
"status": "affected",
"version": "b24df3e30cbf48255db866720fb71f14bf9d2f39",
"versionType": "git"
},
{
"lessThan": "f73726b83e4756fdaa099e1bc1143293bd57ad79",
"status": "affected",
"version": "b24df3e30cbf48255db866720fb71f14bf9d2f39",
"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": "4.19"
},
{
"lessThan": "4.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.112",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.54",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.8",
"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": "4.19",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.158",
"versionStartIncluding": "4.19",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.112",
"versionStartIncluding": "4.19",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.54",
"versionStartIncluding": "4.19",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.8",
"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\nsmb: client: fix server-\u003etotal_read for compound encrypted PDUs\n\nIn receive_encrypted_standard(), server-\u003etotal_read is left at the\nfull decrypted frame size when walking sub-PDUs of a compound encrypted\nframe. As a result, cifs_handle_standard() passes this full size\nto smb2_check_message(), causing the PDU length guards to incorrectly\nvalidate the entire compound frame instead of the current sub-PDU.\n\nThis allows truncated non-last sub-PDUs to bypass length validation,\nleading to out-of-bounds reads in smb2_get_data_area_len().\n\nFix this by setting server-\u003etotal_read to the true length of the\ncurrent sub-PDU: next_cmd for non-last sub-PDUs, and the remaining\npdu_length for the last one."
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T09:14:58.765Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/8703539d22fdbc13dd2db090ee199c3a427b8ea0"
},
{
"url": "https://git.kernel.org/stable/c/e78fc1d240b27349b45a0f1c3e3c2c401d7e230d"
},
{
"url": "https://git.kernel.org/stable/c/a46eb242e9eef3a3897d166748b23303c516e870"
},
{
"url": "https://git.kernel.org/stable/c/ebb8a075fdc7af3d196a4f158a0e18dbc394c0e3"
},
{
"url": "https://git.kernel.org/stable/c/282b72f9a7ef31296c48366db4128882999cc048"
},
{
"url": "https://git.kernel.org/stable/c/f73726b83e4756fdaa099e1bc1143293bd57ad79"
}
],
"title": "smb: client: fix server-\u003etotal_read for compound encrypted PDUs",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-98167",
"datePublished": "2026-10-06T08:44:12.731Z",
"dateReserved": "2026-09-25T10:25:14.321Z",
"dateUpdated": "2026-10-19T09:14:58.765Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-98216 (GCVE-0-2026-98216)
Vulnerability from cvelistv5
Published
2026-10-06 08:44
Modified
2026-10-19 09:15
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
IB/hfi1: Fix the PIO_CRED credit-return mmap
hfi1_file_mmap()'s PIO_CRED case must hand user space the single
credit-return page that holds this context's entry. That page is the
second or third page of the per-node credit-return allocation once the
hardware send context index reaches 64 or 128, so the failure below is
intermittent: when the entry lands on the first page the offset is zero
and everything works.
Two things are wrong.
First, cr_page_offset is a byte offset but .va is a struct
credit_return *, so adding it is pointer arithmetic and scales the offset
by sizeof(struct credit_return) == 64. memvirt then lands 256 KiB or
512 KiB past a 10240-byte allocation. With an IOMMU translating, that
address is inside the vmalloc range but in no vm_area, so
dma_mmap_coherent() -> iommu_dma_mmap() finds no pages, vmalloc_to_pfn()
returns page_to_pfn(NULL), and remap_pfn_range() installs a frame above
MAXPHYADDR. The first user read then takes:
psm2_ep_open_pr: Corrupted page table at address 7a14d007e000
PGD 800000013886a067 P4D 800000013886a067 PUD 13886b067 PMD 13886c067
PTE 800049168e911235
Oops: Bad pagetable: 000d [#1] SMP PTI
Second, and still wrong once the arithmetic is corrected,
dma_mmap_coherent() describes a whole coherent buffer and selects the
page within it with vma->vm_pgoff. Offsetting cpu_addr has no effect:
for a vmap'd allocation iommu_dma_mmap() uses cpu_addr only to locate the
vm_area and then maps pages[vm_pgoff], which hfi1_file_mmap() has just
set to 0. User space therefore always receives the first credit-return
page, every credit read is for the wrong context, and send PIO stalls
forever.
Use the DMA API as intended: pass the base of the allocation with its
full length and select the page with vm_pgoff. A separate length is
needed because memlen must keep describing the VMA for the existing size
check. The dma-direct path stays correct as well, since dma_direct_mmap()
adds the same vm_pgoff to the base pfn.
Tested on a Dell T7610 (Xeon E5-2650 v2, Intel IOMMU in DMA-FQ mode)
against a Threadripper PRO 3995WX peer, both Omni-Path 100. Before this
change psm2_ep_open() Oopses the kernel; with only the arithmetic
corrected psm2_ep_open() succeeds but any transfer that uses send PIO
hangs, PSM2_SDMA=2 (send PIO disabled) completing normally while
PSM2_SDMA=0 (send PIO only) hangs every time. With this change send PIO,
send DMA and the default mixed mode all work.
References
| URL | Tags | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/infiniband/hw/hfi1/file_ops.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "535530bb2ea5254e1e9f55280143d262dd065204",
"status": "affected",
"version": "1ec82317a1daac78c04b0c15af89018ccf9fa2b7",
"versionType": "git"
},
{
"lessThan": "dcebe0b0bb080a25fe08011fd6b6e741f7912f01",
"status": "affected",
"version": "1ec82317a1daac78c04b0c15af89018ccf9fa2b7",
"versionType": "git"
},
{
"lessThan": "180752deb7270ad37394ab6ef7cf4978fad040b3",
"status": "affected",
"version": "1ec82317a1daac78c04b0c15af89018ccf9fa2b7",
"versionType": "git"
},
{
"lessThan": "bafeac9ce5d1ce5256bcf7e5702e831e9aaf419b",
"status": "affected",
"version": "1ec82317a1daac78c04b0c15af89018ccf9fa2b7",
"versionType": "git"
},
{
"lessThan": "62f0f34fbd2b2d5653d33d3b9d42fdcabb1c0101",
"status": "affected",
"version": "1ec82317a1daac78c04b0c15af89018ccf9fa2b7",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/infiniband/hw/hfi1/file_ops.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.158",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.112",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.54",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.8",
"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": "6.3",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.112",
"versionStartIncluding": "6.3",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.54",
"versionStartIncluding": "6.3",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.8",
"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\nIB/hfi1: Fix the PIO_CRED credit-return mmap\n\nhfi1_file_mmap()\u0027s PIO_CRED case must hand user space the single\ncredit-return page that holds this context\u0027s entry. That page is the\nsecond or third page of the per-node credit-return allocation once the\nhardware send context index reaches 64 or 128, so the failure below is\nintermittent: when the entry lands on the first page the offset is zero\nand everything works.\n\nTwo things are wrong.\n\nFirst, cr_page_offset is a byte offset but .va is a struct\ncredit_return *, so adding it is pointer arithmetic and scales the offset\nby sizeof(struct credit_return) == 64. memvirt then lands 256 KiB or\n512 KiB past a 10240-byte allocation. With an IOMMU translating, that\naddress is inside the vmalloc range but in no vm_area, so\ndma_mmap_coherent() -\u003e iommu_dma_mmap() finds no pages, vmalloc_to_pfn()\nreturns page_to_pfn(NULL), and remap_pfn_range() installs a frame above\nMAXPHYADDR. The first user read then takes:\n\n psm2_ep_open_pr: Corrupted page table at address 7a14d007e000\n PGD 800000013886a067 P4D 800000013886a067 PUD 13886b067 PMD 13886c067\n PTE 800049168e911235\n Oops: Bad pagetable: 000d [#1] SMP PTI\n\nSecond, and still wrong once the arithmetic is corrected,\ndma_mmap_coherent() describes a whole coherent buffer and selects the\npage within it with vma-\u003evm_pgoff. Offsetting cpu_addr has no effect:\nfor a vmap\u0027d allocation iommu_dma_mmap() uses cpu_addr only to locate the\nvm_area and then maps pages[vm_pgoff], which hfi1_file_mmap() has just\nset to 0. User space therefore always receives the first credit-return\npage, every credit read is for the wrong context, and send PIO stalls\nforever.\n\nUse the DMA API as intended: pass the base of the allocation with its\nfull length and select the page with vm_pgoff. A separate length is\nneeded because memlen must keep describing the VMA for the existing size\ncheck. The dma-direct path stays correct as well, since dma_direct_mmap()\nadds the same vm_pgoff to the base pfn.\n\nTested on a Dell T7610 (Xeon E5-2650 v2, Intel IOMMU in DMA-FQ mode)\nagainst a Threadripper PRO 3995WX peer, both Omni-Path 100. Before this\nchange psm2_ep_open() Oopses the kernel; with only the arithmetic\ncorrected psm2_ep_open() succeeds but any transfer that uses send PIO\nhangs, PSM2_SDMA=2 (send PIO disabled) completing normally while\nPSM2_SDMA=0 (send PIO only) hangs every time. With this change send PIO,\nsend DMA and the default mixed mode all work."
}
],
"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 bad mapping is created by hfi1_file_mmap() PIO_CRED case, reached by a local process via open() of the /dev/hfi1_N user cdev, the ASSIGN_CTXT ioctl and mmap() of the PIO_CRED token; no remote peer supplies any data to this path.\nAC:L - With IOMMU DMA translation (common on x86 servers), the pointer-scaled cr_page_offset deterministically sends memvirt 256/512 KiB past the credit-return buffer for send context index \u003e=64, and the attacker can raise the index by opening more contexts; the commit\u0027s reproducer oopses every time.\nPR:L - hfi1_user_devnode() creates the user device node with mode 0666 and hfi1_file_open() has no capability check, so any unprivileged local user on an Omni-Path node (e.g. a shared HPC node) can assign a context and issue the mmap.\nUI:N - The attacker triggers the faulty mapping and the faulting read entirely from their own process; no other user or administrator has to do anything.\nS:U - Both impacts stay within the host kernel\u0027s own authority: a kernel page or bogus PFN is mapped into a local process and the kernel oopses; no VM, IOMMU or sandbox boundary is crossed.\nC:H - If the out-of-range vmalloc address lands in a non-DMA-coherent vm_area, iommu_dma_mmap() falls back to vmalloc_to_pfn() and remap_pfn_range() exposes that kernel page to userspace read-only with no reference held, so the user can read unrelated kernel memory, even after it is freed and reused.\nI:N - The PIO_CRED VMA is read-only: VM_WRITE is rejected with -EPERM and VM_MAYWRITE is cleared, so the mis-mapped page cannot be written from userspace, and the bug gives no kernel write primitive.\nA:H - When the address falls in a vmalloc hole, page_to_pfn(NULL) installs a PTE for a frame above MAXPHYADDR and the first user read causes an \u0027Oops: Bad pagetable\u0027 kernel crash; even with the arithmetic fixed, mapping the wrong page leaves send PIO hung forever."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T09:15:47.022Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/535530bb2ea5254e1e9f55280143d262dd065204"
},
{
"url": "https://git.kernel.org/stable/c/dcebe0b0bb080a25fe08011fd6b6e741f7912f01"
},
{
"url": "https://git.kernel.org/stable/c/180752deb7270ad37394ab6ef7cf4978fad040b3"
},
{
"url": "https://git.kernel.org/stable/c/bafeac9ce5d1ce5256bcf7e5702e831e9aaf419b"
},
{
"url": "https://git.kernel.org/stable/c/62f0f34fbd2b2d5653d33d3b9d42fdcabb1c0101"
}
],
"title": "IB/hfi1: Fix the PIO_CRED credit-return mmap",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-98216",
"datePublished": "2026-10-06T08:44:52.288Z",
"dateReserved": "2026-09-25T10:25:14.326Z",
"dateUpdated": "2026-10-19T09:15:47.022Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-98354 (GCVE-0-2026-98354)
Vulnerability from cvelistv5
Published
2026-10-06 08:46
Modified
2026-10-19 09:18
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
RDMA/mad: Fix receive buffer leak when PKey enforcement fails
ib_mad_complete_recv() initializes mad_recv_wc->rmpp_list and then runs
ib_mad_enforce_security() before linking recv_buf onto that list. On
failure it calls ib_free_recv_mad(), which only walks rmpp_list and frees
the ib_mad_private of every buffer found there. As the list is still
empty at that point, nothing is freed at all.
The caller cannot clean up either: ib_mad_recv_done() sets recv to NULL
right after ib_mad_complete_recv() returns, assuming the MAD layer took
ownership of the buffer. Every MAD that fails the PKey check therefore
leaks one ib_mad_private (about 300 bytes per IB port MAD, ~2K for OPA),
and a remote node can trigger this repeatedly by sending MADs with a
wrong PKey.
Link recv_buf onto rmpp_list right after the list is initialized, so the
error path has something to free.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 47a2b338fe63200d716d2e24131cdb49f17c77da Version: 47a2b338fe63200d716d2e24131cdb49f17c77da Version: 47a2b338fe63200d716d2e24131cdb49f17c77da Version: 47a2b338fe63200d716d2e24131cdb49f17c77da Version: 47a2b338fe63200d716d2e24131cdb49f17c77da Version: 47a2b338fe63200d716d2e24131cdb49f17c77da Version: 47a2b338fe63200d716d2e24131cdb49f17c77da Version: 47a2b338fe63200d716d2e24131cdb49f17c77da |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/infiniband/core/mad.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "4617c9a856188674dddb0ca66979746d07688579",
"status": "affected",
"version": "47a2b338fe63200d716d2e24131cdb49f17c77da",
"versionType": "git"
},
{
"lessThan": "8e2036fb47a5b152d53eadbd35abf311bd34cc7f",
"status": "affected",
"version": "47a2b338fe63200d716d2e24131cdb49f17c77da",
"versionType": "git"
},
{
"lessThan": "bad289e42f512646a988f278f536d21547df73f1",
"status": "affected",
"version": "47a2b338fe63200d716d2e24131cdb49f17c77da",
"versionType": "git"
},
{
"lessThan": "752b30e9d339008e5ce7eed412e9446078916129",
"status": "affected",
"version": "47a2b338fe63200d716d2e24131cdb49f17c77da",
"versionType": "git"
},
{
"lessThan": "39c4ea72a40503e102ae07e6776005f96ca078a6",
"status": "affected",
"version": "47a2b338fe63200d716d2e24131cdb49f17c77da",
"versionType": "git"
},
{
"lessThan": "5091e25ec503f7fc02723ca435226467b68caac7",
"status": "affected",
"version": "47a2b338fe63200d716d2e24131cdb49f17c77da",
"versionType": "git"
},
{
"lessThan": "c0d8df85db146d6275e226cb950023be69dd6c77",
"status": "affected",
"version": "47a2b338fe63200d716d2e24131cdb49f17c77da",
"versionType": "git"
},
{
"lessThan": "3476c28c9addfa253f505e6bd87f1f5598b961d0",
"status": "affected",
"version": "47a2b338fe63200d716d2e24131cdb49f17c77da",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/infiniband/core/mad.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.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.112",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.54",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.8",
"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.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.222",
"versionStartIncluding": "4.13",
"vulnerable": true
},
{
"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.112",
"versionStartIncluding": "4.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.54",
"versionStartIncluding": "4.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.8",
"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\nRDMA/mad: Fix receive buffer leak when PKey enforcement fails\n\nib_mad_complete_recv() initializes mad_recv_wc-\u003ermpp_list and then runs\nib_mad_enforce_security() before linking recv_buf onto that list. On\nfailure it calls ib_free_recv_mad(), which only walks rmpp_list and frees\nthe ib_mad_private of every buffer found there. As the list is still\nempty at that point, nothing is freed at all.\n\nThe caller cannot clean up either: ib_mad_recv_done() sets recv to NULL\nright after ib_mad_complete_recv() returns, assuming the MAD layer took\nownership of the buffer. Every MAD that fails the PKey check therefore\nleaks one ib_mad_private (about 300 bytes per IB port MAD, ~2K for OPA),\nand a remote node can trigger this repeatedly by sending MADs with a\nwrong PKey.\n\nLink recv_buf onto rmpp_list right after the list is initialized, so the\nerror path has something to free."
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T09:18:04.973Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/4617c9a856188674dddb0ca66979746d07688579"
},
{
"url": "https://git.kernel.org/stable/c/8e2036fb47a5b152d53eadbd35abf311bd34cc7f"
},
{
"url": "https://git.kernel.org/stable/c/bad289e42f512646a988f278f536d21547df73f1"
},
{
"url": "https://git.kernel.org/stable/c/752b30e9d339008e5ce7eed412e9446078916129"
},
{
"url": "https://git.kernel.org/stable/c/39c4ea72a40503e102ae07e6776005f96ca078a6"
},
{
"url": "https://git.kernel.org/stable/c/5091e25ec503f7fc02723ca435226467b68caac7"
},
{
"url": "https://git.kernel.org/stable/c/c0d8df85db146d6275e226cb950023be69dd6c77"
},
{
"url": "https://git.kernel.org/stable/c/3476c28c9addfa253f505e6bd87f1f5598b961d0"
}
],
"title": "RDMA/mad: Fix receive buffer leak when PKey enforcement fails",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-98354",
"datePublished": "2026-10-06T08:46:41.768Z",
"dateReserved": "2026-09-25T10:25:14.343Z",
"dateUpdated": "2026-10-19T09:18:04.973Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-53108 (GCVE-0-2026-53108)
Vulnerability from cvelistv5
Published
2026-06-24 16:30
Modified
2026-10-30 12:26
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
powerpc/64s: Fix unmap race with PMD migration entries
The following race is possible with migration swap entries or
device-private THP entries. e.g. when move_pages is called on a PMD THP
page, then there maybe an intermediate state, where PMD entry acts as
a migration swap entry (pmd_present() is true). Then if an munmap
happens at the same time, then this VM_BUG_ON() can happen in
pmdp_huge_get_and_clear_full().
This patch fixes that.
Thread A: move_pages() syscall
add_folio_for_migration()
mmap_read_lock(mm)
folio_isolate_lru(folio)
mmap_read_unlock(mm)
do_move_pages_to_node()
migrate_pages()
try_to_migrate_one()
spin_lock(ptl)
set_pmd_migration_entry()
pmdp_invalidate() # PMD: _PAGE_INVALID | _PAGE_PTE | pfn
set_pmd_at() # PMD: migration swap entry (pmd_present=0)
spin_unlock(ptl)
[page copy phase] # <--- RACE WINDOW -->
Thread B: munmap()
mmap_write_downgrade(mm)
unmap_vmas() -> zap_pmd_range()
zap_huge_pmd()
__pmd_trans_huge_lock()
pmd_is_huge(): # !pmd_present && !pmd_none -> TRUE (swap entry)
pmd_lock() -> # spin_lock(ptl), waits for Thread A to release ptl
pmdp_huge_get_and_clear_full()
VM_BUG_ON(!pmd_present(*pmdp)) # HITS!
[ 287.738700][ T1867] ------------[ cut here ]------------
[ 287.743843][ T1867] kernel BUG at arch/powerpc/mm/book3s64/pgtable.c:187!
cpu 0x0: Vector: 700 (Program Check) at [c00000044037f4f0]
pc: c000000000094ca4: pmdp_huge_get_and_clear_full+0x6c/0x23c
lr: c000000000645dec: zap_huge_pmd+0xb0/0x868
sp: c00000044037f790
msr: 800000000282b033
current = 0xc0000004032c1a00
paca = 0xc000000004fe0000 irqmask: 0x03 irq_happened: 0x09
pid = 1867, comm = a.out
kernel BUG at :187!
Linux version 6.19.0-12136-g14360d4f917c-dirty (powerpc64le-linux-gnu-gcc (Debian 12.2.0-14) 12.2.0, GNU ld (GNU Binutils for Debian) 2.40) #27 SMP PREEMPT Sun Feb 22 10:38:56 IST 2026
enter ? for help
[link register ] c000000000645dec zap_huge_pmd+0xb0/0x868
[c00000044037f790] c00000044037f7d0 (unreliable)
[c00000044037f7d0] c000000000645dcc zap_huge_pmd+0x90/0x868
[c00000044037f840] c0000000005724cc unmap_page_range+0x176c/0x1f40
[c00000044037fa00] c000000000572ea0 unmap_vmas+0xb0/0x1d8
[c00000044037fa90] c0000000005af254 unmap_region+0xb4/0x128
[c00000044037fb50] c0000000005af400 vms_complete_munmap_vmas+0x138/0x310
[c00000044037fbe0] c0000000005b0f1c do_vmi_align_munmap+0x1ec/0x238
[c00000044037fd30] c0000000005b3688 __vm_munmap+0x170/0x1f8
[c00000044037fdf0] c000000000587f74 sys_munmap+0x2c/0x40
[c00000044037fe10] c000000000032668 system_call_exception+0x128/0x350
[c00000044037fe50] c00000000000d05c system_call_vectored_common+0x15c/0x2ec
---- Exception: 3000 (System Call Vectored) at 0000000010064a2c
SP (7fff9b1ee9c0) is in userspace
0:mon> zh
commit a30b48bf1b24 ("mm/migrate_device: implement THP migration of zone device pages"),
enabled migration for device-private PMD entries. Hence this is one
other path where this warning could get trigger from.
------------[ cut here ]------------
WARNING: arch/powerpc/mm/book3s64/hash_pgtable.c:199 at hash__pmd_hugepage_update+0x48/0x284, CPU#3: hmm-tests/1905
Modules linked in: test_hmm
CPU: 3 UID: 0 PID: 1905 Comm: hmm-tests Tainted: G B W L N 7.0.0-rc1-01438-g7e2f0ee7581c #21 PREEMPT
Tainted: [B]=BAD_PAGE, [W]=WARN, [L]=SOFTLOCKUP, [N]=TEST
Hardware name: IBM pSeries (emulated by qemu) POWER10 (architected) 0x801200 0xf000006 of:SLOF,git-ee03ae pSeries
NIP [c000000000096b70] hash__pmd_hugepage_update+0x48/0x284
LR [c000000000096e7c] hash__pmdp_huge_get_and_clear+0xd0/0xd4
Call Trace:
[c000000604707670] [c000000004e102b8] 0xc000000004e102b8 (unreliable)
[c000000604707700] [c00000000064ec3c] set_pmd_migration_entry+0x414/0x498
[c000000604707760] [c00000000063e5a4] migrate_vma_col
---truncated---
References
| URL | Tags | |||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 75358ea359e7c0dfceb3c7b3d854570b4260cb7f Version: 75358ea359e7c0dfceb3c7b3d854570b4260cb7f Version: 75358ea359e7c0dfceb3c7b3d854570b4260cb7f Version: 75358ea359e7c0dfceb3c7b3d854570b4260cb7f Version: 75358ea359e7c0dfceb3c7b3d854570b4260cb7f Version: 75358ea359e7c0dfceb3c7b3d854570b4260cb7f |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"arch/powerpc/include/asm/book3s/64/pgtable.h",
"arch/powerpc/mm/book3s64/pgtable.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "3d4999bfbcbc5b801bfcf482c567380dd26ad268",
"status": "affected",
"version": "75358ea359e7c0dfceb3c7b3d854570b4260cb7f",
"versionType": "git"
},
{
"lessThan": "6f571bf37da84ab822bf22341d48655312aaee20",
"status": "affected",
"version": "75358ea359e7c0dfceb3c7b3d854570b4260cb7f",
"versionType": "git"
},
{
"lessThan": "5c8dd49f4a857aa40c4a8694930509d159feae24",
"status": "affected",
"version": "75358ea359e7c0dfceb3c7b3d854570b4260cb7f",
"versionType": "git"
},
{
"lessThan": "09207dc57ab4cb8967e6cad55a37e15ff8523d41",
"status": "affected",
"version": "75358ea359e7c0dfceb3c7b3d854570b4260cb7f",
"versionType": "git"
},
{
"lessThan": "829367e55012c053738ebe7db20c4a90d6609ece",
"status": "affected",
"version": "75358ea359e7c0dfceb3c7b3d854570b4260cb7f",
"versionType": "git"
},
{
"lessThan": "bbcbf045d6c778e82b47a35fc8728387708e9a3d",
"status": "affected",
"version": "75358ea359e7c0dfceb3c7b3d854570b4260cb7f",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"arch/powerpc/include/asm/book3s/64/pgtable.h",
"arch/powerpc/mm/book3s64/pgtable.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": "6.1.*",
"status": "unaffected",
"version": "6.1.191",
"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.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.1.191",
"versionStartIncluding": "5.8",
"vulnerable": true
},
{
"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.114",
"versionStartIncluding": "5.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.57",
"versionStartIncluding": "5.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.0.10",
"versionStartIncluding": "5.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1",
"versionStartIncluding": "5.8",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\npowerpc/64s: Fix unmap race with PMD migration entries\n\nThe following race is possible with migration swap entries or\ndevice-private THP entries. e.g. when move_pages is called on a PMD THP\npage, then there maybe an intermediate state, where PMD entry acts as\na migration swap entry (pmd_present() is true). Then if an munmap\nhappens at the same time, then this VM_BUG_ON() can happen in\npmdp_huge_get_and_clear_full().\n\nThis patch fixes that.\n\nThread A: move_pages() syscall\n add_folio_for_migration()\n mmap_read_lock(mm)\n folio_isolate_lru(folio)\n mmap_read_unlock(mm)\n\n do_move_pages_to_node()\n migrate_pages()\n try_to_migrate_one()\n spin_lock(ptl)\n set_pmd_migration_entry()\n pmdp_invalidate() # PMD: _PAGE_INVALID | _PAGE_PTE | pfn\n set_pmd_at() # PMD: migration swap entry (pmd_present=0)\n spin_unlock(ptl)\n [page copy phase] # \u003c--- RACE WINDOW --\u003e\n\nThread B: munmap()\n mmap_write_downgrade(mm)\n unmap_vmas() -\u003e zap_pmd_range()\n zap_huge_pmd()\n __pmd_trans_huge_lock()\n pmd_is_huge(): # !pmd_present \u0026\u0026 !pmd_none -\u003e TRUE (swap entry)\n pmd_lock() -\u003e \t\t# spin_lock(ptl), waits for Thread A to release ptl\n pmdp_huge_get_and_clear_full()\n VM_BUG_ON(!pmd_present(*pmdp)) # HITS!\n\n[ 287.738700][ T1867] ------------[ cut here ]------------\n[ 287.743843][ T1867] kernel BUG at arch/powerpc/mm/book3s64/pgtable.c:187!\ncpu 0x0: Vector: 700 (Program Check) at [c00000044037f4f0]\n pc: c000000000094ca4: pmdp_huge_get_and_clear_full+0x6c/0x23c\n lr: c000000000645dec: zap_huge_pmd+0xb0/0x868\n sp: c00000044037f790\n msr: 800000000282b033\n current = 0xc0000004032c1a00\n paca = 0xc000000004fe0000 irqmask: 0x03 irq_happened: 0x09\n pid = 1867, comm = a.out\nkernel BUG at :187!\nLinux version 6.19.0-12136-g14360d4f917c-dirty (powerpc64le-linux-gnu-gcc (Debian 12.2.0-14) 12.2.0, GNU ld (GNU Binutils for Debian) 2.40) #27 SMP PREEMPT Sun Feb 22 10:38:56 IST 2026\nenter ? for help\n[link register ] c000000000645dec zap_huge_pmd+0xb0/0x868\n[c00000044037f790] c00000044037f7d0 (unreliable)\n[c00000044037f7d0] c000000000645dcc zap_huge_pmd+0x90/0x868\n[c00000044037f840] c0000000005724cc unmap_page_range+0x176c/0x1f40\n[c00000044037fa00] c000000000572ea0 unmap_vmas+0xb0/0x1d8\n[c00000044037fa90] c0000000005af254 unmap_region+0xb4/0x128\n[c00000044037fb50] c0000000005af400 vms_complete_munmap_vmas+0x138/0x310\n[c00000044037fbe0] c0000000005b0f1c do_vmi_align_munmap+0x1ec/0x238\n[c00000044037fd30] c0000000005b3688 __vm_munmap+0x170/0x1f8\n[c00000044037fdf0] c000000000587f74 sys_munmap+0x2c/0x40\n[c00000044037fe10] c000000000032668 system_call_exception+0x128/0x350\n[c00000044037fe50] c00000000000d05c system_call_vectored_common+0x15c/0x2ec\n---- Exception: 3000 (System Call Vectored) at 0000000010064a2c\nSP (7fff9b1ee9c0) is in userspace\n0:mon\u003e zh\n\ncommit a30b48bf1b24 (\"mm/migrate_device: implement THP migration of zone device pages\"),\nenabled migration for device-private PMD entries. Hence this is one\nother path where this warning could get trigger from.\n\n ------------[ cut here ]------------\n WARNING: arch/powerpc/mm/book3s64/hash_pgtable.c:199 at hash__pmd_hugepage_update+0x48/0x284, CPU#3: hmm-tests/1905\n Modules linked in: test_hmm\n CPU: 3 UID: 0 PID: 1905 Comm: hmm-tests Tainted: G B W L N 7.0.0-rc1-01438-g7e2f0ee7581c #21 PREEMPT\n Tainted: [B]=BAD_PAGE, [W]=WARN, [L]=SOFTLOCKUP, [N]=TEST\n Hardware name: IBM pSeries (emulated by qemu) POWER10 (architected) 0x801200 0xf000006 of:SLOF,git-ee03ae pSeries\n NIP [c000000000096b70] hash__pmd_hugepage_update+0x48/0x284\n LR [c000000000096e7c] hash__pmdp_huge_get_and_clear+0xd0/0xd4\n Call Trace:\n [c000000604707670] [c000000004e102b8] 0xc000000004e102b8 (unreliable)\n [c000000604707700] [c00000000064ec3c] set_pmd_migration_entry+0x414/0x498\n [c000000604707760] [c00000000063e5a4] migrate_vma_col\n---truncated---"
}
],
"providerMetadata": {
"dateUpdated": "2026-10-30T12:26:39.730Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/3d4999bfbcbc5b801bfcf482c567380dd26ad268"
},
{
"url": "https://git.kernel.org/stable/c/6f571bf37da84ab822bf22341d48655312aaee20"
},
{
"url": "https://git.kernel.org/stable/c/5c8dd49f4a857aa40c4a8694930509d159feae24"
},
{
"url": "https://git.kernel.org/stable/c/09207dc57ab4cb8967e6cad55a37e15ff8523d41"
},
{
"url": "https://git.kernel.org/stable/c/829367e55012c053738ebe7db20c4a90d6609ece"
},
{
"url": "https://git.kernel.org/stable/c/bbcbf045d6c778e82b47a35fc8728387708e9a3d"
}
],
"title": "powerpc/64s: Fix unmap race with PMD migration entries",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-53108",
"datePublished": "2026-06-24T16:30:42.707Z",
"dateReserved": "2026-06-09T07:44:35.385Z",
"dateUpdated": "2026-10-30T12:26:39.730Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-89811 (GCVE-0-2026-89811)
Vulnerability from cvelistv5
Published
2026-09-16 10:30
Modified
2026-10-30 12:33
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
drm/amdkfd: Add TLB flush after MES queue eviction/suspension
MES (Micro Engine Scheduler) does not perform heavy-weight TLB
invalidation after unmapping queues, unlike HWS which does this
automatically. This causes a race condition where in-flight DMA
descriptors can access memory that has been unmapped, leading to page
faults and GPU queue hangs during SVM page migration.
The issue manifests as KFDSVMRangeTest.MultiThreadMigrationTest
failures on gfx1151 (Strix Point) with XNACK mode 1 enabled - the GPU
compute queue hangs with packets submitted but never consumed.
Add kfd_flush_tlb() calls after MES queue removal in two locations:
- evict_process_queues_cpsch(): after all queues removed during eviction
- suspend_queues(): after debug/criu queue suspension (with mem_fence barrier)
This ensures all in-flight memory accesses from unmapped queues are
flushed before memory is freed or migrated.
(cherry picked from commit f5c4f88e0f9c45a8fb9dfac0c1df726c95e41b77)
References
| URL | Tags | |||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: cc009e613de6560eb499f8bc92c80a737752cb30 Version: cc009e613de6560eb499f8bc92c80a737752cb30 Version: cc009e613de6560eb499f8bc92c80a737752cb30 Version: cc009e613de6560eb499f8bc92c80a737752cb30 Version: cc009e613de6560eb499f8bc92c80a737752cb30 Version: cc009e613de6560eb499f8bc92c80a737752cb30 |
||
{
"containers": {
"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": "750cd793ee69c27faf17fb9c49f92f71716bbc8b",
"status": "affected",
"version": "cc009e613de6560eb499f8bc92c80a737752cb30",
"versionType": "git"
},
{
"lessThan": "5bbd7f283312d0209a0fedcc9d2d33b5afa5a7b1",
"status": "affected",
"version": "cc009e613de6560eb499f8bc92c80a737752cb30",
"versionType": "git"
},
{
"lessThan": "bbf5ad5268f36d7ebb7e99ae78fc73cffe98d372",
"status": "affected",
"version": "cc009e613de6560eb499f8bc92c80a737752cb30",
"versionType": "git"
},
{
"lessThan": "e230c546ed93741833ab5babb0b202f9c2052b45",
"status": "affected",
"version": "cc009e613de6560eb499f8bc92c80a737752cb30",
"versionType": "git"
},
{
"lessThan": "6aae545c87087e4dc96e205452243813bfa73ba2",
"status": "affected",
"version": "cc009e613de6560eb499f8bc92c80a737752cb30",
"versionType": "git"
},
{
"lessThan": "94e25cb6ab7f4f025bcdcd8ea79fda30f12843a4",
"status": "affected",
"version": "cc009e613de6560eb499f8bc92c80a737752cb30",
"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": "5.19"
},
{
"lessThan": "5.19",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.191",
"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.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.191",
"versionStartIncluding": "5.19",
"vulnerable": true
},
{
"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.51",
"versionStartIncluding": "5.19",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.5",
"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\ndrm/amdkfd: Add TLB flush after MES queue eviction/suspension\n\nMES (Micro Engine Scheduler) does not perform heavy-weight TLB\ninvalidation after unmapping queues, unlike HWS which does this\nautomatically. This causes a race condition where in-flight DMA\ndescriptors can access memory that has been unmapped, leading to page\nfaults and GPU queue hangs during SVM page migration.\n\nThe issue manifests as KFDSVMRangeTest.MultiThreadMigrationTest\nfailures on gfx1151 (Strix Point) with XNACK mode 1 enabled - the GPU\ncompute queue hangs with packets submitted but never consumed.\n\nAdd kfd_flush_tlb() calls after MES queue removal in two locations:\n- evict_process_queues_cpsch(): after all queues removed during eviction\n- suspend_queues(): after debug/criu queue suspension (with mem_fence barrier)\n\nThis ensures all in-flight memory accesses from unmapped queues are\nflushed before memory is freed or migrated.\n\n(cherry picked from commit f5c4f88e0f9c45a8fb9dfac0c1df726c95e41b77)"
}
],
"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 /dev/kfd paths: AMDKFD_IOC_CREATE_QUEUE plus SVM/userptr activity (AMDKFD_IOC_SVM, munmap of USERPTR BOs) or KFD_IOC_DBG_TRAP_SUSPEND_QUEUES, which call evict_process_queues_cpsch()/suspend_queues(); there is no network, adjacent-wireless, or physical-device path.\nAC:L - The attacker controls both sides of the race: they keep DMA in flight on their own MES compute/SDMA queues while concurrently forcing eviction or suspend via SVM migration, userptr MMU notifiers, TTM pressure, or self-debug suspend, matching the MultiThreadMigrationTest trigger with no victim timing or uncontrollable layout required.\nPR:L - kfd_open() and the CREATE_QUEUE/SVM/DBG_TRAP ioctls perform no capability checks; a local unprivileged user with typical render/video-group access to /dev/kfd and /dev/dri/renderD* on desktops, ROCm nodes, and multi-tenant AMD GPU clouds is sufficient, not init-namespace root.\nUI:N - The attacker opens their own KFD and DRM render-node descriptors, submits compute work, and triggers queue eviction or suspend in that same process; no separate victim action such as mounting a filesystem or opening a crafted file is required.\nS:C - MES queue removal omits the heavyweight PASID TLB invalidation HWS performs, so in-flight GPU DMA can use stale GPUVM translations to physical pages after they are unmapped, freed, or migrated, bypassing the GPUVM/PASID DMA isolation boundary that is supposed to confine GPU access.\nC:H - In-flight GPU DMA through stale GPUVM TLB entries can read physical pages after they leave the process mapping and are recycled to the page allocator, kernel, or another process, giving an arbitrary memory-disclosure primitive.\nI:H - The same stale translations allow GPU DMA writes into those recycled physical pages, enabling arbitrary memory corruption and control-flow hijacking through a device DMA write primitive.\nA:H - The issue is documented to cause GPU page faults and compute-queue hangs (packets submitted but never consumed), which can stall the shared GPU and force amdgpu reset, denying compute service to all co-located workloads."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-30T12:33:08.863Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/750cd793ee69c27faf17fb9c49f92f71716bbc8b"
},
{
"url": "https://git.kernel.org/stable/c/5bbd7f283312d0209a0fedcc9d2d33b5afa5a7b1"
},
{
"url": "https://git.kernel.org/stable/c/bbf5ad5268f36d7ebb7e99ae78fc73cffe98d372"
},
{
"url": "https://git.kernel.org/stable/c/e230c546ed93741833ab5babb0b202f9c2052b45"
},
{
"url": "https://git.kernel.org/stable/c/6aae545c87087e4dc96e205452243813bfa73ba2"
},
{
"url": "https://git.kernel.org/stable/c/94e25cb6ab7f4f025bcdcd8ea79fda30f12843a4"
}
],
"title": "drm/amdkfd: Add TLB flush after MES queue eviction/suspension",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-89811",
"datePublished": "2026-09-16T10:30:44.274Z",
"dateReserved": "2026-09-11T19:38:34.768Z",
"dateUpdated": "2026-10-30T12:33:08.863Z",
"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-64054 (GCVE-0-2026-64054)
Vulnerability from cvelistv5
Published
2026-07-19 15:39
Modified
2026-07-19 15:39
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
net: shaper: reject duplicate leaves in GROUP request
net_shaper_nl_group_doit() does not deduplicate NET_SHAPER_A_LEAVES
entries. When userspace supplies the same leaf handle twice, the same
old-parent pointer lands twice in old_nodes[]. The cleanup loop double
frees the parent. Of course the same parent may still be in old_nodes[]
twice if we are moving multiple of its leaves.
Note that this patch also implicitly fixes the fact that the
i >= leaves_count path forgets to set ret.
References
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/shaper/shaper.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "5098b223f0f0c5c18a3884a8b0ea5bd4a0c7bd75",
"status": "affected",
"version": "5d5d4700e75d861e83bf18eb6bf66ff90f85fe4e",
"versionType": "git"
},
{
"lessThan": "31767bf852b59f05125b58a17007e4cd1ea9eb2e",
"status": "affected",
"version": "5d5d4700e75d861e83bf18eb6bf66ff90f85fe4e",
"versionType": "git"
},
{
"lessThan": "a9a2fa1da619f276580b0d4c5d12efac89e8642b",
"status": "affected",
"version": "5d5d4700e75d861e83bf18eb6bf66ff90f85fe4e",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/shaper/shaper.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.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.18.34",
"versionStartIncluding": "6.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.0.11",
"versionStartIncluding": "6.13",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1",
"versionStartIncluding": "6.13",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnet: shaper: reject duplicate leaves in GROUP request\n\nnet_shaper_nl_group_doit() does not deduplicate NET_SHAPER_A_LEAVES\nentries. When userspace supplies the same leaf handle twice, the same\nold-parent pointer lands twice in old_nodes[]. The cleanup loop double\nfrees the parent. Of course the same parent may still be in old_nodes[]\ntwice if we are moving multiple of its leaves.\n\nNote that this patch also implicitly fixes the fact that the\ni \u003e= leaves_count path forgets to set ret."
}
],
"providerMetadata": {
"dateUpdated": "2026-07-19T15:39:36.475Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/5098b223f0f0c5c18a3884a8b0ea5bd4a0c7bd75"
},
{
"url": "https://git.kernel.org/stable/c/31767bf852b59f05125b58a17007e4cd1ea9eb2e"
},
{
"url": "https://git.kernel.org/stable/c/a9a2fa1da619f276580b0d4c5d12efac89e8642b"
}
],
"title": "net: shaper: reject duplicate leaves in GROUP request",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-64054",
"datePublished": "2026-07-19T15:39:36.475Z",
"dateReserved": "2026-07-19T07:54:57.029Z",
"dateUpdated": "2026-07-19T15:39:36.475Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-98175 (GCVE-0-2026-98175)
Vulnerability from cvelistv5
Published
2026-10-06 08:44
Modified
2026-10-19 09:15
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
smb: client: cancel reconnect work in clean_demultiplex_info()
clean_demultiplex_info() cancels server->echo delayed work but not
server->reconnect, which can cause a use-after-free when the
demultiplex thread exits while a reconnect work is still queued:
cifs_demultiplex_thread()
cifs_readv_from_socket()
cifs_reconnect()
__cifs_reconnect()
cifs_queue_server_reconn()
mod_delayed_work(cifsiod_wq, &server->reconnect, 0)
clean_demultiplex_info()
cancel_delayed_work_sync(&server->echo) // echo canceled
// reconnect NOT canceled
kfree_sensitive(server) // server freed
...later, on cifsiod_wq:
smb2_reconnect_server()
server->srv_count // UAF read of freed server
Fix this by canceling server->reconnect delayed work in
clean_demultiplex_info() before the server is freed, the same way
cifs_put_tcp_session() already does.
References
| URL | Tags | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 53e0e11efe9289535b060a51d4cf37c25e0d0f2b Version: 53e0e11efe9289535b060a51d4cf37c25e0d0f2b Version: 53e0e11efe9289535b060a51d4cf37c25e0d0f2b Version: 53e0e11efe9289535b060a51d4cf37c25e0d0f2b Version: 53e0e11efe9289535b060a51d4cf37c25e0d0f2b Version: e008a962311a875a828cbae54b43285858aaa6c8 Version: 123b228a09b90b50b0a9d6eb8294cf0c42efc029 Version: 0ba4c6eaaacbcc4b18f51bb3b1567c65a8fecca9 Version: d0d2a4c82942e2f51e4984beea1f7e5a994bd06c Version: 15a12fbbf365a483b1c19f9caeb707b3bea77e10 Version: f0b715409cb9cf7e21e690f9b163047739761962 Version: ff04da387c10b6bf7b510392742c8cd46c130fd6 Version: 48f9526f4dcb4b132fe0dc2450835311e3b013a6 Version: 3.10.107 ≤ Version: 3.12.70 ≤ Version: 3.16.42 ≤ Version: 3.18.47 ≤ Version: 4.1.38 ≤ Version: 4.4.40 ≤ Version: 4.8.16 ≤ Version: 4.9.1 ≤ |
||
{
"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": "180380272f116dbd2b0354c5c7872e112e519149",
"status": "affected",
"version": "53e0e11efe9289535b060a51d4cf37c25e0d0f2b",
"versionType": "git"
},
{
"lessThan": "e3f6a779433d13aafb5edab59e4f9313051e8a52",
"status": "affected",
"version": "53e0e11efe9289535b060a51d4cf37c25e0d0f2b",
"versionType": "git"
},
{
"lessThan": "7ab9ceedd860216fb97f2d8574cbe58b8906f42a",
"status": "affected",
"version": "53e0e11efe9289535b060a51d4cf37c25e0d0f2b",
"versionType": "git"
},
{
"lessThan": "2e5103e11a17c274715dd56cf185eeedccf686b8",
"status": "affected",
"version": "53e0e11efe9289535b060a51d4cf37c25e0d0f2b",
"versionType": "git"
},
{
"lessThan": "c65eae6f61d1778ff7a82e4aae4080e26f486af1",
"status": "affected",
"version": "53e0e11efe9289535b060a51d4cf37c25e0d0f2b",
"versionType": "git"
},
{
"status": "affected",
"version": "e008a962311a875a828cbae54b43285858aaa6c8",
"versionType": "git"
},
{
"status": "affected",
"version": "123b228a09b90b50b0a9d6eb8294cf0c42efc029",
"versionType": "git"
},
{
"status": "affected",
"version": "0ba4c6eaaacbcc4b18f51bb3b1567c65a8fecca9",
"versionType": "git"
},
{
"status": "affected",
"version": "d0d2a4c82942e2f51e4984beea1f7e5a994bd06c",
"versionType": "git"
},
{
"status": "affected",
"version": "15a12fbbf365a483b1c19f9caeb707b3bea77e10",
"versionType": "git"
},
{
"status": "affected",
"version": "f0b715409cb9cf7e21e690f9b163047739761962",
"versionType": "git"
},
{
"status": "affected",
"version": "ff04da387c10b6bf7b510392742c8cd46c130fd6",
"versionType": "git"
},
{
"status": "affected",
"version": "48f9526f4dcb4b132fe0dc2450835311e3b013a6",
"versionType": "git"
},
{
"lessThan": "3.11",
"status": "affected",
"version": "3.10.107",
"versionType": "semver"
},
{
"lessThan": "3.13",
"status": "affected",
"version": "3.12.70",
"versionType": "semver"
},
{
"lessThan": "3.17",
"status": "affected",
"version": "3.16.42",
"versionType": "semver"
},
{
"lessThan": "3.19",
"status": "affected",
"version": "3.18.47",
"versionType": "semver"
},
{
"lessThan": "4.2",
"status": "affected",
"version": "4.1.38",
"versionType": "semver"
},
{
"lessThan": "4.5",
"status": "affected",
"version": "4.4.40",
"versionType": "semver"
},
{
"lessThan": "4.9",
"status": "affected",
"version": "4.8.16",
"versionType": "semver"
},
{
"lessThan": "4.10",
"status": "affected",
"version": "4.9.1",
"versionType": "semver"
}
]
},
{
"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": "4.10"
},
{
"lessThan": "4.10",
"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.112",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.54",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.8",
"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.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.112",
"versionStartIncluding": "4.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.54",
"versionStartIncluding": "4.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.8",
"versionStartIncluding": "4.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "4.10",
"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.70",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "3.16.42",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "3.18.47",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "4.1.38",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "4.4.40",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "4.8.16",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "4.9.1",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nsmb: client: cancel reconnect work in clean_demultiplex_info()\n\nclean_demultiplex_info() cancels server-\u003eecho delayed work but not\nserver-\u003ereconnect, which can cause a use-after-free when the\ndemultiplex thread exits while a reconnect work is still queued:\n\n cifs_demultiplex_thread()\n cifs_readv_from_socket()\n cifs_reconnect()\n __cifs_reconnect()\n cifs_queue_server_reconn()\n mod_delayed_work(cifsiod_wq, \u0026server-\u003ereconnect, 0)\n clean_demultiplex_info()\n cancel_delayed_work_sync(\u0026server-\u003eecho) // echo canceled\n // reconnect NOT canceled\n kfree_sensitive(server) // server freed\n\n ...later, on cifsiod_wq:\n\n smb2_reconnect_server()\n server-\u003esrv_count // UAF read of freed server\n\nFix this by canceling server-\u003ereconnect delayed work in\nclean_demultiplex_info() before the server is freed, the same way\ncifs_put_tcp_session() already does."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.5,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - The SMB server at the other end of the client\u0027s TCP connection triggers the bug. When it resets the connection or sends an oversized SMB response, cifs_demultiplex_thread() calls cifs_reconnect() and then __cifs_reconnect(), which queues server-\u003ereconnect via cifs_queue_server_reconn(). clean_demultiplex_info() then frees the server without cancelling that work.\nAC:H - The malicious server can force reconnects whenever it likes. The free, though, only happens when the client drops its last TCP session reference (umount or a session put, via cifs_put_tcp_session) inside the window where __cifs_reconnect has re-queued the reconnect work. Then smb2_reconnect_server must run after kfree(server). The server cannot produce that client-side timing on demand.\nPR:N - A remote SMB server needs no credentials on the client host to drop its own connection or send a malformed response that drives the client into __cifs_reconnect. Mounting locally is not a lower-privilege route: cifs_fs_type has no FS_USERNS_MOUNT, so a local attacker would need real CAP_SYS_ADMIN.\nUI:R - The client has to mount a share from the attacker\u0027s SMB server, and a demultiplex thread only exists after that mount. The free also needs the client to unmount or otherwise drop the session at the wrong moment.\nS:U - The freed struct TCP_Server_Info and the cifsiod_wq worker that uses it after free are both in the client kernel. No VM, IOMMU or sandbox boundary is crossed.\nC:H - smb2_reconnect_server() reads server-\u003esrv_count from the freed TCP_Server_Info. If a reallocated object puts a nonzero value there, the worker carries on and dereferences primary_server, the reconnect_mutex and the session lists, all of which a heap spray would control.\nI:H - With a nonzero srv_count in reclaimed memory, the worker increments it, takes reconnect_mutex, manipulates the ses and tcon lists and calls cifs_put_tcp_session on the stale pointer. Those are writes through attacker-shaped memory, so they can corrupt kernel data.\nA:H - syzbot reproduced this use-after-free of TCP_Server_Info in smb2_reconnect_server. A stale worker running on the shared cifsiod_wq workqueue can oops or panic the client kernel."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T09:15:06.742Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/180380272f116dbd2b0354c5c7872e112e519149"
},
{
"url": "https://git.kernel.org/stable/c/e3f6a779433d13aafb5edab59e4f9313051e8a52"
},
{
"url": "https://git.kernel.org/stable/c/7ab9ceedd860216fb97f2d8574cbe58b8906f42a"
},
{
"url": "https://git.kernel.org/stable/c/2e5103e11a17c274715dd56cf185eeedccf686b8"
},
{
"url": "https://git.kernel.org/stable/c/c65eae6f61d1778ff7a82e4aae4080e26f486af1"
}
],
"title": "smb: client: cancel reconnect work in clean_demultiplex_info()",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-98175",
"datePublished": "2026-10-06T08:44:19.155Z",
"dateReserved": "2026-09-25T10:25:14.322Z",
"dateUpdated": "2026-10-19T09:15:06.742Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-64461 (GCVE-0-2026-64461)
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:
PCI: mediatek: Fix IRQ domain leak when port fails to enable
When mtk_pcie_enable_port() fails, mtk_pcie_port_free() removes the port
from pcie->ports and frees the port structure. However, the IRQ domains set
up earlier by mtk_pcie_init_irq_domain() are never freed.
Fix this by refactoring mtk_pcie_irq_teardown() into a per-port helper,
mtk_pcie_irq_teardown_port(), and calling it from mtk_pcie_setup() when
mtk_pcie_enable_port() fails. Since the IRQ teardown must only happen in
the probe error path (during resume, child devices may have active MSI
mappings and the NOIRQ context prohibits sleeping locks),
mtk_pcie_enable_port() is changed to return an error code so callers can
distinguish the two paths and act accordingly.
This issue was reported by Sashiko while reviewing the EcoNet EN7528 SoC
support series.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: b099631df160ec608cd6147f4d20a8042567a5b8 Version: b099631df160ec608cd6147f4d20a8042567a5b8 Version: b099631df160ec608cd6147f4d20a8042567a5b8 Version: b099631df160ec608cd6147f4d20a8042567a5b8 Version: b099631df160ec608cd6147f4d20a8042567a5b8 Version: b099631df160ec608cd6147f4d20a8042567a5b8 Version: b099631df160ec608cd6147f4d20a8042567a5b8 Version: b099631df160ec608cd6147f4d20a8042567a5b8 |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/pci/controller/pcie-mediatek.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "e23da72ef202654a7d5269885c4fa39a8404db76",
"status": "affected",
"version": "b099631df160ec608cd6147f4d20a8042567a5b8",
"versionType": "git"
},
{
"lessThan": "ec7c05eed47d8b15c45380aee7ca168a82e15035",
"status": "affected",
"version": "b099631df160ec608cd6147f4d20a8042567a5b8",
"versionType": "git"
},
{
"lessThan": "1fbe8972a39548a633d06d7b03a01b7b119a2c12",
"status": "affected",
"version": "b099631df160ec608cd6147f4d20a8042567a5b8",
"versionType": "git"
},
{
"lessThan": "fe8c701a53c2816cd82301f66c671d952003c1b0",
"status": "affected",
"version": "b099631df160ec608cd6147f4d20a8042567a5b8",
"versionType": "git"
},
{
"lessThan": "ce52e494a7555bdae1d990a2654fd7547ef6d986",
"status": "affected",
"version": "b099631df160ec608cd6147f4d20a8042567a5b8",
"versionType": "git"
},
{
"lessThan": "6e6a529d6f779413379b4404c9ef6a36c0337225",
"status": "affected",
"version": "b099631df160ec608cd6147f4d20a8042567a5b8",
"versionType": "git"
},
{
"lessThan": "df77314b3bedbd9ad5d6f0682f98b99e3c5f7e2e",
"status": "affected",
"version": "b099631df160ec608cd6147f4d20a8042567a5b8",
"versionType": "git"
},
{
"lessThan": "f865a57896bd92d7662eb2818d8f48872e2cbbc7",
"status": "affected",
"version": "b099631df160ec608cd6147f4d20a8042567a5b8",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/pci/controller/pcie-mediatek.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.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.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.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.212",
"versionStartIncluding": "4.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.178",
"versionStartIncluding": "4.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.145",
"versionStartIncluding": "4.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.97",
"versionStartIncluding": "4.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.39",
"versionStartIncluding": "4.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.4",
"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\nPCI: mediatek: Fix IRQ domain leak when port fails to enable\n\nWhen mtk_pcie_enable_port() fails, mtk_pcie_port_free() removes the port\nfrom pcie-\u003eports and frees the port structure. However, the IRQ domains set\nup earlier by mtk_pcie_init_irq_domain() are never freed.\n\nFix this by refactoring mtk_pcie_irq_teardown() into a per-port helper,\nmtk_pcie_irq_teardown_port(), and calling it from mtk_pcie_setup() when\nmtk_pcie_enable_port() fails. Since the IRQ teardown must only happen in\nthe probe error path (during resume, child devices may have active MSI\nmappings and the NOIRQ context prohibits sleeping locks),\nmtk_pcie_enable_port() is changed to return an error code so callers can\ndistinguish the two paths and act accordingly.\n\nThis issue was reported by Sashiko while reviewing the EcoNet EN7528 SoC\nsupport series."
}
],
"providerMetadata": {
"dateUpdated": "2026-08-17T04:56:06.127Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/e23da72ef202654a7d5269885c4fa39a8404db76"
},
{
"url": "https://git.kernel.org/stable/c/ec7c05eed47d8b15c45380aee7ca168a82e15035"
},
{
"url": "https://git.kernel.org/stable/c/1fbe8972a39548a633d06d7b03a01b7b119a2c12"
},
{
"url": "https://git.kernel.org/stable/c/fe8c701a53c2816cd82301f66c671d952003c1b0"
},
{
"url": "https://git.kernel.org/stable/c/ce52e494a7555bdae1d990a2654fd7547ef6d986"
},
{
"url": "https://git.kernel.org/stable/c/6e6a529d6f779413379b4404c9ef6a36c0337225"
},
{
"url": "https://git.kernel.org/stable/c/df77314b3bedbd9ad5d6f0682f98b99e3c5f7e2e"
},
{
"url": "https://git.kernel.org/stable/c/f865a57896bd92d7662eb2818d8f48872e2cbbc7"
}
],
"title": "PCI: mediatek: Fix IRQ domain leak when port fails to enable",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-64461",
"datePublished": "2026-07-25T08:51:28.309Z",
"dateReserved": "2026-07-19T15:36:31.789Z",
"dateUpdated": "2026-08-17T04:56:06.127Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-68242 (GCVE-0-2026-68242)
Vulnerability from cvelistv5
Published
2026-08-10 12:01
Modified
2026-10-30 12:28
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
drm/i915/gt: Fix NULL deref on sched_engine alloc failure
Avoid using intel_context_put() before intel_context_init() in
execlists_create_virtual() as the kref_put() inside would lead
to NULL deref on the IOCTL path when sched_engine allocation fails.
Discovered using AI-assisted static analysis confirmed by
Intel Product Security.
(cherry picked from commit 4f2a12f2d50e9f48227656e4dcbd6423506be31d)
References
| URL | Tags | |||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 3e28d37146db5dd49c469bc62a93ca791067d391 Version: 3e28d37146db5dd49c469bc62a93ca791067d391 Version: 3e28d37146db5dd49c469bc62a93ca791067d391 Version: 3e28d37146db5dd49c469bc62a93ca791067d391 Version: 3e28d37146db5dd49c469bc62a93ca791067d391 Version: 3e28d37146db5dd49c469bc62a93ca791067d391 |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/gpu/drm/i915/gt/intel_execlists_submission.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "9ea0aaf8bf9fda6e101f2304391f066d99d0d054",
"status": "affected",
"version": "3e28d37146db5dd49c469bc62a93ca791067d391",
"versionType": "git"
},
{
"lessThan": "bedeee4612afc15c53f8d3c6da05897506b4ca24",
"status": "affected",
"version": "3e28d37146db5dd49c469bc62a93ca791067d391",
"versionType": "git"
},
{
"lessThan": "7214db3e62fa9f0be7981cba9039bd835a79c070",
"status": "affected",
"version": "3e28d37146db5dd49c469bc62a93ca791067d391",
"versionType": "git"
},
{
"lessThan": "c174969f6af6c22fc9c51aefcdb7f9183c3a329a",
"status": "affected",
"version": "3e28d37146db5dd49c469bc62a93ca791067d391",
"versionType": "git"
},
{
"lessThan": "edd4804f07b8369ed472de19272974e2bf2a6271",
"status": "affected",
"version": "3e28d37146db5dd49c469bc62a93ca791067d391",
"versionType": "git"
},
{
"lessThan": "82ec992c404c3dc774c5e9f3d4aa858e97187675",
"status": "affected",
"version": "3e28d37146db5dd49c469bc62a93ca791067d391",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/gpu/drm/i915/gt/intel_execlists_submission.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.191",
"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.1.191",
"versionStartIncluding": "5.15",
"vulnerable": true
},
{
"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\ndrm/i915/gt: Fix NULL deref on sched_engine alloc failure\n\nAvoid using intel_context_put() before intel_context_init() in\nexeclists_create_virtual() as the kref_put() inside would lead\nto NULL deref on the IOCTL path when sched_engine allocation fails.\n\nDiscovered using AI-assisted static analysis confirmed by\nIntel Product Security.\n\n(cherry picked from commit 4f2a12f2d50e9f48227656e4dcbd6423506be31d)"
}
],
"providerMetadata": {
"dateUpdated": "2026-10-30T12:28:13.711Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/9ea0aaf8bf9fda6e101f2304391f066d99d0d054"
},
{
"url": "https://git.kernel.org/stable/c/bedeee4612afc15c53f8d3c6da05897506b4ca24"
},
{
"url": "https://git.kernel.org/stable/c/7214db3e62fa9f0be7981cba9039bd835a79c070"
},
{
"url": "https://git.kernel.org/stable/c/c174969f6af6c22fc9c51aefcdb7f9183c3a329a"
},
{
"url": "https://git.kernel.org/stable/c/edd4804f07b8369ed472de19272974e2bf2a6271"
},
{
"url": "https://git.kernel.org/stable/c/82ec992c404c3dc774c5e9f3d4aa858e97187675"
}
],
"title": "drm/i915/gt: Fix NULL deref on sched_engine alloc failure",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-68242",
"datePublished": "2026-08-10T12:01:08.447Z",
"dateReserved": "2026-07-30T09:28:09.377Z",
"dateUpdated": "2026-10-30T12:28:13.711Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-74587 (GCVE-0-2026-74587)
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: fix use-after-free of cached ASCONF chunk
addip_last_asconf caches the outstanding outbound ASCONF chunk. The normal
ASCONF-ACK completion path releases the chunk and clears the pointer.
However, sctp_asconf_queue_teardown() releases the cached chunk without
clearing addip_last_asconf. During peer restart handling,
sctp_sf_do_dupcook_a() queues SCTP_CMD_PURGE_ASCONF_QUEUE, which invokes
sctp_asconf_queue_teardown() while the association remains alive and leaves
the pointer dangling.
A delayed authenticated ASCONF-ACK can then reach sctp_sf_do_asconf_ack(),
which accesses the stale chunk and passes it to sctp_process_asconf_ack(),
causing a use-after-free and a second release.
Clearing the pointer exposes a race with T4 expiry. Peer restart handling
queues the timer stop before the purge, but SCTP_CMD_TIMER_STOP uses
timer_delete(), which does not wait for a callback already running on
another CPU. Such a callback can reach sctp_sf_t4_timer_expire() after
the purge and dereference NULL.
Clear addip_last_asconf after releasing the cached chunk, and make
sctp_sf_t4_timer_expire() consume a stale T4 expiry if no outstanding
ASCONF remains.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: a000c01e60e40e15304ffe48fff051d17a7bea91 Version: a000c01e60e40e15304ffe48fff051d17a7bea91 Version: a000c01e60e40e15304ffe48fff051d17a7bea91 Version: a000c01e60e40e15304ffe48fff051d17a7bea91 Version: a000c01e60e40e15304ffe48fff051d17a7bea91 Version: a000c01e60e40e15304ffe48fff051d17a7bea91 Version: a000c01e60e40e15304ffe48fff051d17a7bea91 Version: a000c01e60e40e15304ffe48fff051d17a7bea91 |
||
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-74587",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "yes"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-10-16T19:01:25.161847Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-10-16T19:05:58.841Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/sctp/associola.c",
"net/sctp/sm_statefuns.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "10459b03e2d9ee12435e96f587de4d4cacdbf435",
"status": "affected",
"version": "a000c01e60e40e15304ffe48fff051d17a7bea91",
"versionType": "git"
},
{
"lessThan": "e1bb114e09372fd6e03387ced9ef566da336ed6c",
"status": "affected",
"version": "a000c01e60e40e15304ffe48fff051d17a7bea91",
"versionType": "git"
},
{
"lessThan": "179676f0166230c80053a392303485b37c93dd33",
"status": "affected",
"version": "a000c01e60e40e15304ffe48fff051d17a7bea91",
"versionType": "git"
},
{
"lessThan": "dc67d528c2fa939cec7fe3bf7f3089c8d281ca3d",
"status": "affected",
"version": "a000c01e60e40e15304ffe48fff051d17a7bea91",
"versionType": "git"
},
{
"lessThan": "618b5c6d049896fcfabb91afc072954c92cb2693",
"status": "affected",
"version": "a000c01e60e40e15304ffe48fff051d17a7bea91",
"versionType": "git"
},
{
"lessThan": "07daf4f9750104960a1d60831b2353c0d41f35fb",
"status": "affected",
"version": "a000c01e60e40e15304ffe48fff051d17a7bea91",
"versionType": "git"
},
{
"lessThan": "d949992bc3f00027a2c755e860a11950c75f6073",
"status": "affected",
"version": "a000c01e60e40e15304ffe48fff051d17a7bea91",
"versionType": "git"
},
{
"lessThan": "8c283e7b56adce00193837f3311b06662466fb21",
"status": "affected",
"version": "a000c01e60e40e15304ffe48fff051d17a7bea91",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/sctp/associola.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": "3.0"
},
{
"lessThan": "3.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": "3.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.216",
"versionStartIncluding": "3.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.183",
"versionStartIncluding": "3.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.152",
"versionStartIncluding": "3.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.104",
"versionStartIncluding": "3.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.45",
"versionStartIncluding": "3.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.9",
"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\nsctp: fix use-after-free of cached ASCONF chunk\n\naddip_last_asconf caches the outstanding outbound ASCONF chunk. The normal\nASCONF-ACK completion path releases the chunk and clears the pointer.\n\nHowever, sctp_asconf_queue_teardown() releases the cached chunk without\nclearing addip_last_asconf. During peer restart handling,\nsctp_sf_do_dupcook_a() queues SCTP_CMD_PURGE_ASCONF_QUEUE, which invokes\nsctp_asconf_queue_teardown() while the association remains alive and leaves\nthe pointer dangling.\n\nA delayed authenticated ASCONF-ACK can then reach sctp_sf_do_asconf_ack(),\nwhich accesses the stale chunk and passes it to sctp_process_asconf_ack(),\ncausing a use-after-free and a second release.\n\nClearing the pointer exposes a race with T4 expiry. Peer restart handling\nqueues the timer stop before the purge, but SCTP_CMD_TIMER_STOP uses\ntimer_delete(), which does not wait for a callback already running on\nanother CPU. Such a callback can reach sctp_sf_t4_timer_expire() after\nthe purge and dereference NULL.\n\nClear addip_last_asconf after releasing the cached chunk, and make\nsctp_sf_t4_timer_expire() consume a stale T4 expiry if no outstanding\nASCONF remains."
}
],
"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 triggered when the kernel processes inbound SCTP COOKIE-ECHO (peer restart) and ASCONF-ACK chunks from a remote association peer via sctp_rcv()/sctp_inq_push()/sctp_do_sm(), with no local syscall required on the victim.\nAC:L - The remote SCTP peer controls the full protocol sequence\u2014establishing an ADDIP-capable association, waiting for the victim\u0027s outstanding ASCONF, sending COOKIE-ECHO restart to purge queues, then delivering a delayed authenticated ASCONF-ACK\u2014without attacker-uncontrollable races or memory layout.\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 COOKIE-ECHO and ASCONF-ACK 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 - sctp_sf_do_asconf_ack() and sctp_process_asconf_ack() dereference the stale addip_last_asconf pointer to read freed sctp_chunk and skb metadata; UAF on slab-allocated chunk objects enables heap grooming for arbitrary kernel memory disclosure.\nI:H - The stale pointer causes sctp_process_asconf_ack() to perform a second sctp_chunk_free() on an already-freed chunk, yielding a kmem_cache double-free that can be leveraged for arbitrary kernel write or control-flow hijack.\nA:H - Dereferencing the freed cached ASCONF chunk during ASCONF-ACK 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:13.798Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/10459b03e2d9ee12435e96f587de4d4cacdbf435"
},
{
"url": "https://git.kernel.org/stable/c/e1bb114e09372fd6e03387ced9ef566da336ed6c"
},
{
"url": "https://git.kernel.org/stable/c/179676f0166230c80053a392303485b37c93dd33"
},
{
"url": "https://git.kernel.org/stable/c/dc67d528c2fa939cec7fe3bf7f3089c8d281ca3d"
},
{
"url": "https://git.kernel.org/stable/c/618b5c6d049896fcfabb91afc072954c92cb2693"
},
{
"url": "https://git.kernel.org/stable/c/07daf4f9750104960a1d60831b2353c0d41f35fb"
},
{
"url": "https://git.kernel.org/stable/c/d949992bc3f00027a2c755e860a11950c75f6073"
},
{
"url": "https://git.kernel.org/stable/c/8c283e7b56adce00193837f3311b06662466fb21"
}
],
"title": "sctp: fix use-after-free of cached ASCONF chunk",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-74587",
"datePublished": "2026-08-22T15:31:39.810Z",
"dateReserved": "2026-08-15T05:44:03.918Z",
"dateUpdated": "2026-10-16T19:05:58.841Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-74306 (GCVE-0-2026-74306)
Vulnerability from cvelistv5
Published
2026-08-15 05:58
Modified
2026-08-17 05:45
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
vfio/qat: fix f_pos race in qat_vf_resume_write()
qat_vf_resume_write() checks filp->f_pos before taking migf->lock, but
copies into the migration-state buffer after taking the lock and
re-reading the shared file position.
Two concurrent writers could therefore pass the bounds check with the
old offset, then have the second writer copy after the first advanced
f_pos, writing past the end of the migration-state buffer.
Take migf->lock before doing the boundary checks.
References
| URL | Tags | |
|---|---|---|
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/vfio/pci/qat/main.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "6465af0004dc1b067129a26ef44f19cdf13bbce6",
"status": "affected",
"version": "bb208810b1abf1c84870cfbe1cc9cf1a1d35c607",
"versionType": "git"
},
{
"lessThan": "d416dcefdbac90d96b22485fd93f28229ad9984b",
"status": "affected",
"version": "bb208810b1abf1c84870cfbe1cc9cf1a1d35c607",
"versionType": "git"
},
{
"lessThan": "b6fd7a40a66485c8aa8156d8fcf50b95cb8ba281",
"status": "affected",
"version": "bb208810b1abf1c84870cfbe1cc9cf1a1d35c607",
"versionType": "git"
},
{
"lessThan": "4ec5e932e636896e97e4c6a8205b0ac76d52421a",
"status": "affected",
"version": "bb208810b1abf1c84870cfbe1cc9cf1a1d35c607",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/vfio/pci/qat/main.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\nvfio/qat: fix f_pos race in qat_vf_resume_write()\n\nqat_vf_resume_write() checks filp-\u003ef_pos before taking migf-\u003elock, but\ncopies into the migration-state buffer after taking the lock and\nre-reading the shared file position.\n\nTwo concurrent writers could therefore pass the bounds check with the\nold offset, then have the second writer copy after the first advanced\nf_pos, writing past the end of the migration-state buffer.\n\nTake migf-\u003elock before doing the boundary checks."
}
],
"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 write() syscalls on a VFIO live-migration resume fd returned by VFIO_DEVICE_FEATURE_MIG_DEVICE_STATE ioctl on an opened QAT VFIO PCI device; there is no network, adjacent-wireless, or physical-device attack path to this code.\nAC:L - An attacker with the migration fd controls both racing writers (e.g., concurrent threads or dup\u0027d fds sharing f_pos) and can repeatedly trigger the TOCTOU window near the buffer end until the overflow succeeds; no uncontrollable victim timing or memory layout is required.\nPR:L - Exploitation requires only local access to an assigned Intel QAT VFIO device migration fd (typical QEMU/cloud/HPC VFIO clients), not real root in the init namespace; capabilities like CAP_NET_ADMIN via user namespaces do not grant this path.\nUI:N - No victim interaction is required; the attacker drives VFIO migration state transitions and concurrent writes to the resume fd programmatically without any separate user or administrator action during exploitation.\nS:U - The flaw corrupts host kernel heap memory from a VFIO client context and does not by itself cross an IOMMU, VM-guest, or other distinct security authority boundary; impact remains host kernel compromise/DoS within the same authority.\nC:H - The race yields an attacker-controlled heap out-of-bounds write past the 4096-byte migration-state kmalloc buffer, which can corrupt adjacent kernel objects and be leveraged for arbitrary kernel memory disclosure, not merely a bounded leak.\nI:H - copy_from_user() writes attacker-controlled data beyond mig_dev-\u003estate, enabling heap corruption and potential arbitrary kernel write or code-execution primitives through grooming of adjacent kmalloc objects.\nA:H - Heap corruption from the out-of-bounds write can immediately panic or oops the kernel or destabilize the system even when full exploitation is not attempted, satisfying high availability impact for kernel memory corruption."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-17T05:45:40.501Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/6465af0004dc1b067129a26ef44f19cdf13bbce6"
},
{
"url": "https://git.kernel.org/stable/c/d416dcefdbac90d96b22485fd93f28229ad9984b"
},
{
"url": "https://git.kernel.org/stable/c/b6fd7a40a66485c8aa8156d8fcf50b95cb8ba281"
},
{
"url": "https://git.kernel.org/stable/c/4ec5e932e636896e97e4c6a8205b0ac76d52421a"
}
],
"title": "vfio/qat: fix f_pos race in qat_vf_resume_write()",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-74306",
"datePublished": "2026-08-15T05:58:07.313Z",
"dateReserved": "2026-08-15T05:44:03.883Z",
"dateUpdated": "2026-08-17T05:45:40.501Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-93222 (GCVE-0-2026-93222)
Vulnerability from cvelistv5
Published
2026-09-24 15:21
Modified
2026-10-19 09:07
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
signal: avoid shared siginfo namespace rewrites
send_signal_locked() rewrites sender ids for the target namespace. Group
sends reuse the same siginfo, so one recipient can affect the next.
Copy the siginfo before changing it.
References
| URL | Tags | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
||||||||||||||||||||||||||
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 7a0cf094944e2540758b7f957eb6846d5126f535 Version: 7a0cf094944e2540758b7f957eb6846d5126f535 Version: 7a0cf094944e2540758b7f957eb6846d5126f535 Version: 7a0cf094944e2540758b7f957eb6846d5126f535 Version: 7a0cf094944e2540758b7f957eb6846d5126f535 Version: 7a0cf094944e2540758b7f957eb6846d5126f535 Version: 7a0cf094944e2540758b7f957eb6846d5126f535 Version: 7a0cf094944e2540758b7f957eb6846d5126f535 Version: e897dd22800f02bd48aefb1511fff0b2ce96e94c Version: 2f0e9eed11ca778d0ec5507a739c28472fd4ca20 Version: 5.1.20 ≤ Version: 5.2.3 ≤ |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"kernel/signal.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "e015d1ac6b43a23c52c5163299414ae77d7d4ae0",
"status": "affected",
"version": "7a0cf094944e2540758b7f957eb6846d5126f535",
"versionType": "git"
},
{
"lessThan": "4ee7c4e4719a825052f42f02ec159b5b42b68fbc",
"status": "affected",
"version": "7a0cf094944e2540758b7f957eb6846d5126f535",
"versionType": "git"
},
{
"lessThan": "148b0dae2a1755beb873a2aab51fb191414f068c",
"status": "affected",
"version": "7a0cf094944e2540758b7f957eb6846d5126f535",
"versionType": "git"
},
{
"lessThan": "6b1de022304ef85284c5933a5fb8492f6f54efc9",
"status": "affected",
"version": "7a0cf094944e2540758b7f957eb6846d5126f535",
"versionType": "git"
},
{
"lessThan": "03c8761e75d1619906bb503686f9cc1dfc6a67f4",
"status": "affected",
"version": "7a0cf094944e2540758b7f957eb6846d5126f535",
"versionType": "git"
},
{
"lessThan": "a246da20c8e4ae4319511c698b9f26ad0ad1769f",
"status": "affected",
"version": "7a0cf094944e2540758b7f957eb6846d5126f535",
"versionType": "git"
},
{
"lessThan": "b655c2040ce836afad5643842543567b31f8c11d",
"status": "affected",
"version": "7a0cf094944e2540758b7f957eb6846d5126f535",
"versionType": "git"
},
{
"lessThan": "d19cdc167e696714509e87d3f7ae765b6e164589",
"status": "affected",
"version": "7a0cf094944e2540758b7f957eb6846d5126f535",
"versionType": "git"
},
{
"status": "affected",
"version": "e897dd22800f02bd48aefb1511fff0b2ce96e94c",
"versionType": "git"
},
{
"status": "affected",
"version": "2f0e9eed11ca778d0ec5507a739c28472fd4ca20",
"versionType": "git"
},
{
"lessThan": "5.2",
"status": "affected",
"version": "5.1.20",
"versionType": "semver"
},
{
"lessThan": "5.3",
"status": "affected",
"version": "5.2.3",
"versionType": "semver"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"kernel/signal.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.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.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.109",
"versionStartIncluding": "5.3",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.50",
"versionStartIncluding": "5.3",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.4",
"versionStartIncluding": "5.3",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "5.3",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "5.1.20",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "5.2.3",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nsignal: avoid shared siginfo namespace rewrites\n\nsend_signal_locked() rewrites sender ids for the target namespace. Group\nsends reuse the same siginfo, so one recipient can affect the next.\n\nCopy the siginfo before changing it."
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T09:07:33.885Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/e015d1ac6b43a23c52c5163299414ae77d7d4ae0"
},
{
"url": "https://git.kernel.org/stable/c/4ee7c4e4719a825052f42f02ec159b5b42b68fbc"
},
{
"url": "https://git.kernel.org/stable/c/148b0dae2a1755beb873a2aab51fb191414f068c"
},
{
"url": "https://git.kernel.org/stable/c/6b1de022304ef85284c5933a5fb8492f6f54efc9"
},
{
"url": "https://git.kernel.org/stable/c/03c8761e75d1619906bb503686f9cc1dfc6a67f4"
},
{
"url": "https://git.kernel.org/stable/c/a246da20c8e4ae4319511c698b9f26ad0ad1769f"
},
{
"url": "https://git.kernel.org/stable/c/b655c2040ce836afad5643842543567b31f8c11d"
},
{
"url": "https://git.kernel.org/stable/c/d19cdc167e696714509e87d3f7ae765b6e164589"
}
],
"title": "signal: avoid shared siginfo namespace rewrites",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-93222",
"datePublished": "2026-09-24T15:21:04.961Z",
"dateReserved": "2026-09-17T16:02:15.094Z",
"dateUpdated": "2026-10-19T09:07:33.885Z",
"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…