Action not permitted
Modal body text goes here.
Modal Title
Modal Body
CERTFR-2026-AVI-1090
Vulnerability from certfr_avis - Published: 2026-08-28 - Updated: 2026-08-28
De multiples vulnérabilités ont été découvertes dans le noyau Linux de Debian. Elles permettent à un attaquant de provoquer une élévation de privilèges, une atteinte à la confidentialité des données 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
References
| Title | Publication Time | Tags | |||
|---|---|---|---|---|---|
|
|||||
{
"$ref": "https://www.cert.ssi.gouv.fr/openapi.json",
"affected_systems": [
{
"description": "Debian trixie versions ant\u00e9rieures \u00e0 6.12.105-1",
"product": {
"name": "Debian",
"vendor": {
"name": "Debian",
"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-74632",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74632"
},
{
"name": "CVE-2026-74452",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74452"
},
{
"name": "CVE-2026-74649",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74649"
},
{
"name": "CVE-2026-74441",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74441"
},
{
"name": "CVE-2026-68480",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-68480"
},
{
"name": "CVE-2026-74517",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74517"
},
{
"name": "CVE-2026-74450",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74450"
},
{
"name": "CVE-2026-74481",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74481"
},
{
"name": "CVE-2026-68138",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-68138"
},
{
"name": "CVE-2026-74597",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74597"
},
{
"name": "CVE-2026-74669",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74669"
},
{
"name": "CVE-2026-74482",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74482"
},
{
"name": "CVE-2026-74598",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74598"
},
{
"name": "CVE-2026-74540",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74540"
},
{
"name": "CVE-2026-74440",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74440"
},
{
"name": "CVE-2026-74502",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74502"
},
{
"name": "CVE-2026-53092",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-53092"
},
{
"name": "CVE-2026-74599",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74599"
},
{
"name": "CVE-2026-74569",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74569"
},
{
"name": "CVE-2026-74581",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74581"
},
{
"name": "CVE-2026-74543",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74543"
},
{
"name": "CVE-2026-74696",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74696"
},
{
"name": "CVE-2026-74612",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74612"
},
{
"name": "CVE-2026-74563",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74563"
},
{
"name": "CVE-2026-74457",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74457"
},
{
"name": "CVE-2026-74505",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74505"
},
{
"name": "CVE-2026-74523",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74523"
},
{
"name": "CVE-2026-74453",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74453"
},
{
"name": "CVE-2026-74693",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74693"
},
{
"name": "CVE-2026-74557",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74557"
},
{
"name": "CVE-2026-74607",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74607"
},
{
"name": "CVE-2026-74461",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74461"
},
{
"name": "CVE-2026-74514",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74514"
},
{
"name": "CVE-2026-68132",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-68132"
},
{
"name": "CVE-2026-74465",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74465"
},
{
"name": "CVE-2026-74630",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74630"
},
{
"name": "CVE-2026-74682",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74682"
},
{
"name": "CVE-2026-74488",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74488"
},
{
"name": "CVE-2026-74683",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74683"
},
{
"name": "CVE-2025-40054",
"url": "https://www.cve.org/CVERecord?id=CVE-2025-40054"
},
{
"name": "CVE-2026-74444",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74444"
},
{
"name": "CVE-2026-74724",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74724"
},
{
"name": "CVE-2026-74657",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74657"
},
{
"name": "CVE-2026-74676",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74676"
},
{
"name": "CVE-2026-74460",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74460"
},
{
"name": "CVE-2026-74586",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74586"
},
{
"name": "CVE-2026-64017",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-64017"
},
{
"name": "CVE-2026-68276",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-68276"
},
{
"name": "CVE-2026-74661",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74661"
},
{
"name": "CVE-2026-74688",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74688"
},
{
"name": "CVE-2026-74572",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74572"
},
{
"name": "CVE-2026-74726",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74726"
},
{
"name": "CVE-2026-74531",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74531"
},
{
"name": "CVE-2026-74549",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74549"
},
{
"name": "CVE-2026-68267",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-68267"
},
{
"name": "CVE-2026-74470",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74470"
},
{
"name": "CVE-2026-74478",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74478"
},
{
"name": "CVE-2026-74566",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74566"
},
{
"name": "CVE-2026-68166",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-68166"
},
{
"name": "CVE-2026-74473",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74473"
},
{
"name": "CVE-2026-74467",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74467"
},
{
"name": "CVE-2026-74476",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74476"
},
{
"name": "CVE-2026-74691",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74691"
},
{
"name": "CVE-2026-74490",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74490"
},
{
"name": "CVE-2026-74730",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74730"
},
{
"name": "CVE-2026-68169",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-68169"
},
{
"name": "CVE-2026-74580",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74580"
},
{
"name": "CVE-2026-74565",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74565"
},
{
"name": "CVE-2026-74660",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74660"
},
{
"name": "CVE-2026-74454",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74454"
},
{
"name": "CVE-2026-74493",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74493"
},
{
"name": "CVE-2026-74463",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74463"
},
{
"name": "CVE-2026-74583",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74583"
},
{
"name": "CVE-2026-74725",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74725"
},
{
"name": "CVE-2026-74665",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74665"
},
{
"name": "CVE-2026-74464",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74464"
},
{
"name": "CVE-2026-74636",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74636"
},
{
"name": "CVE-2026-74522",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74522"
},
{
"name": "CVE-2026-74704",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74704"
},
{
"name": "CVE-2026-74689",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74689"
},
{
"name": "CVE-2026-74710",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74710"
},
{
"name": "CVE-2026-74622",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74622"
},
{
"name": "CVE-2026-74474",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74474"
},
{
"name": "CVE-2026-74604",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74604"
},
{
"name": "CVE-2026-74451",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74451"
},
{
"name": "CVE-2026-74555",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74555"
},
{
"name": "CVE-2026-74623",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74623"
},
{
"name": "CVE-2026-74456",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74456"
},
{
"name": "CVE-2026-74535",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74535"
},
{
"name": "CVE-2026-74552",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74552"
},
{
"name": "CVE-2026-74714",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74714"
},
{
"name": "CVE-2026-74664",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74664"
},
{
"name": "CVE-2026-74445",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74445"
},
{
"name": "CVE-2026-43197",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-43197"
},
{
"name": "CVE-2026-74620",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74620"
},
{
"name": "CVE-2026-74732",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74732"
},
{
"name": "CVE-2026-74499",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74499"
},
{
"name": "CVE-2026-74675",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74675"
},
{
"name": "CVE-2026-74685",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74685"
},
{
"name": "CVE-2026-74701",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74701"
},
{
"name": "CVE-2026-74670",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74670"
},
{
"name": "CVE-2026-74504",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74504"
},
{
"name": "CVE-2026-74637",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74637"
},
{
"name": "CVE-2026-74447",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74447"
},
{
"name": "CVE-2026-74536",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74536"
},
{
"name": "CVE-2026-74589",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74589"
},
{
"name": "CVE-2026-74479",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74479"
},
{
"name": "CVE-2026-74492",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74492"
},
{
"name": "CVE-2026-74641",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74641"
},
{
"name": "CVE-2026-68159",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-68159"
},
{
"name": "CVE-2026-74694",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74694"
},
{
"name": "CVE-2026-68367",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-68367"
},
{
"name": "CVE-2026-74614",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74614"
},
{
"name": "CVE-2026-74442",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74442"
},
{
"name": "CVE-2026-68273",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-68273"
},
{
"name": "CVE-2026-74684",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74684"
},
{
"name": "CVE-2026-74608",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74608"
},
{
"name": "CVE-2026-74484",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74484"
},
{
"name": "CVE-2026-74459",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74459"
},
{
"name": "CVE-2026-74471",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74471"
},
{
"name": "CVE-2026-74553",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74553"
},
{
"name": "CVE-2026-74671",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74671"
},
{
"name": "CVE-2026-74515",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74515"
},
{
"name": "CVE-2026-74448",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74448"
},
{
"name": "CVE-2026-74592",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74592"
},
{
"name": "CVE-2026-64586",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-64586"
},
{
"name": "CVE-2026-74609",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74609"
},
{
"name": "CVE-2026-74487",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74487"
},
{
"name": "CVE-2026-74668",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74668"
},
{
"name": "CVE-2026-74500",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74500"
},
{
"name": "CVE-2026-74618",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74618"
},
{
"name": "CVE-2026-74498",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74498"
},
{
"name": "CVE-2026-74615",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74615"
},
{
"name": "CVE-2026-74524",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74524"
},
{
"name": "CVE-2026-74625",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74625"
},
{
"name": "CVE-2026-68264",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-68264"
},
{
"name": "CVE-2026-74446",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74446"
},
{
"name": "CVE-2026-74577",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74577"
},
{
"name": "CVE-2026-74516",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74516"
},
{
"name": "CVE-2026-74590",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74590"
},
{
"name": "CVE-2026-74541",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74541"
},
{
"name": "CVE-2026-74574",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74574"
},
{
"name": "CVE-2026-74567",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74567"
},
{
"name": "CVE-2026-74619",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74619"
},
{
"name": "CVE-2026-74582",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74582"
},
{
"name": "CVE-2026-74519",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74519"
},
{
"name": "CVE-2026-74548",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74548"
},
{
"name": "CVE-2026-74718",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74718"
},
{
"name": "CVE-2026-68118",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-68118"
},
{
"name": "CVE-2026-74518",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74518"
},
{
"name": "CVE-2026-74503",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74503"
},
{
"name": "CVE-2026-68322",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-68322"
},
{
"name": "CVE-2026-74603",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74603"
},
{
"name": "CVE-2026-74587",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74587"
},
{
"name": "CVE-2026-74663",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74663"
},
{
"name": "CVE-2026-74472",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74472"
},
{
"name": "CVE-2026-74677",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74677"
},
{
"name": "CVE-2026-68082",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-68082"
},
{
"name": "CVE-2026-74494",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74494"
},
{
"name": "CVE-2026-74508",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74508"
},
{
"name": "CVE-2026-74672",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74672"
},
{
"name": "CVE-2026-74469",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74469"
},
{
"name": "CVE-2026-74602",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74602"
},
{
"name": "CVE-2026-74483",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74483"
},
{
"name": "CVE-2026-74679",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74679"
},
{
"name": "CVE-2026-68451",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-68451"
},
{
"name": "CVE-2026-74717",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74717"
},
{
"name": "CVE-2026-74700",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74700"
},
{
"name": "CVE-2026-74610",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74610"
},
{
"name": "CVE-2026-74655",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74655"
},
{
"name": "CVE-2026-74654",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74654"
},
{
"name": "CVE-2026-74658",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74658"
},
{
"name": "CVE-2026-74576",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74576"
},
{
"name": "CVE-2026-74546",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74546"
},
{
"name": "CVE-2026-74680",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74680"
},
{
"name": "CVE-2026-74497",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74497"
},
{
"name": "CVE-2026-74510",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74510"
},
{
"name": "CVE-2026-74455",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74455"
},
{
"name": "CVE-2026-74512",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74512"
},
{
"name": "CVE-2026-74646",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74646"
},
{
"name": "CVE-2026-74588",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74588"
},
{
"name": "CVE-2026-68266",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-68266"
},
{
"name": "CVE-2026-74556",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74556"
},
{
"name": "CVE-2026-74532",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74532"
},
{
"name": "CVE-2026-74595",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74595"
},
{
"name": "CVE-2026-68452",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-68452"
},
{
"name": "CVE-2026-74692",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74692"
},
{
"name": "CVE-2026-74719",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74719"
},
{
"name": "CVE-2026-74585",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74585"
},
{
"name": "CVE-2026-74651",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74651"
},
{
"name": "CVE-2026-74551",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74551"
},
{
"name": "CVE-2026-74666",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74666"
},
{
"name": "CVE-2026-74705",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74705"
},
{
"name": "CVE-2026-68431",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-68431"
},
{
"name": "CVE-2026-74495",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74495"
},
{
"name": "CVE-2026-72111",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-72111"
},
{
"name": "CVE-2026-68254",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-68254"
},
{
"name": "CVE-2026-74720",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74720"
},
{
"name": "CVE-2026-74547",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74547"
},
{
"name": "CVE-2026-74579",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74579"
},
{
"name": "CVE-2026-74458",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74458"
},
{
"name": "CVE-2026-74647",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74647"
},
{
"name": "CVE-2026-74613",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74613"
},
{
"name": "CVE-2026-74525",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74525"
},
{
"name": "CVE-2026-74594",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74594"
},
{
"name": "CVE-2026-74475",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74475"
},
{
"name": "CVE-2026-74659",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74659"
},
{
"name": "CVE-2026-68253",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-68253"
},
{
"name": "CVE-2026-74621",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74621"
},
{
"name": "CVE-2025-38525",
"url": "https://www.cve.org/CVERecord?id=CVE-2025-38525"
},
{
"name": "CVE-2026-74507",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74507"
},
{
"name": "CVE-2026-74606",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74606"
},
{
"name": "CVE-2026-74628",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74628"
},
{
"name": "CVE-2026-74667",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74667"
},
{
"name": "CVE-2026-74601",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74601"
},
{
"name": "CVE-2026-74673",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74673"
},
{
"name": "CVE-2026-74722",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74722"
},
{
"name": "CVE-2026-68198",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-68198"
},
{
"name": "CVE-2026-74635",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74635"
},
{
"name": "CVE-2026-74624",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74624"
},
{
"name": "CVE-2026-74678",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74678"
},
{
"name": "CVE-2026-74575",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74575"
},
{
"name": "CVE-2026-74480",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74480"
},
{
"name": "CVE-2026-74545",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74545"
},
{
"name": "CVE-2026-74468",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74468"
},
{
"name": "CVE-2026-74631",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74631"
},
{
"name": "CVE-2026-74634",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74634"
},
{
"name": "CVE-2026-74644",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74644"
},
{
"name": "CVE-2026-74485",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74485"
},
{
"name": "CVE-2026-74564",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74564"
},
{
"name": "CVE-2026-74616",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74616"
},
{
"name": "CVE-2026-74712",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74712"
},
{
"name": "CVE-2026-74550",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74550"
},
{
"name": "CVE-2026-74509",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74509"
},
{
"name": "CVE-2026-74656",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74656"
},
{
"name": "CVE-2026-74648",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74648"
},
{
"name": "CVE-2026-74650",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74650"
},
{
"name": "CVE-2026-74443",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74443"
},
{
"name": "CVE-2026-74501",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-74501"
}
],
"initial_release_date": "2026-08-28T00:00:00",
"last_revision_date": "2026-08-28T00:00:00",
"links": [],
"reference": "CERTFR-2026-AVI-1090",
"revisions": [
{
"description": "Version initiale",
"revision_date": "2026-08-28T00:00:00.000000"
}
],
"risks": [
{
"description": "D\u00e9ni de service"
},
{
"description": "Atteinte \u00e0 la confidentialit\u00e9 des donn\u00e9es"
},
{
"description": "\u00c9l\u00e9vation de privil\u00e8ges"
}
],
"summary": "De multiples vuln\u00e9rabilit\u00e9s ont \u00e9t\u00e9 d\u00e9couvertes dans le noyau Linux de Debian. Elles permettent \u00e0 un attaquant de provoquer une \u00e9l\u00e9vation de privil\u00e8ges, une atteinte \u00e0 la confidentialit\u00e9 des donn\u00e9es et un d\u00e9ni de service.",
"title": "Multiples vuln\u00e9rabilit\u00e9s dans le noyau Linux de Debian",
"vendor_advisories": [
{
"published_at": "2026-08-25",
"title": "Bulletin de s\u00e9curit\u00e9 Debian msg00377",
"url": "https://lists.debian.org/debian-security-announce/2026/msg00377.html"
}
]
}
CVE-2026-74475 (GCVE-0-2026-74475)
Vulnerability from cvelistv5 – Published: 2026-08-15 12:27 – Updated: 2026-08-19 16:37
VLAI
EPSS
VEX
Title
vxlan: use neigh_ha_snapshot() in route_shortcircuit()
Summary
In the Linux kernel, the following vulnerability has been resolved:
vxlan: use neigh_ha_snapshot() in route_shortcircuit()
The neighbour hardware address n->ha can be updated asynchronously by the
neighbour subsystem, protected by n->ha_lock seqlock. Reading n->ha without
holding the seqlock loop can lead to torn reads or reading a partially updated
MAC address.
Use neigh_ha_snapshot() in route_shortcircuit() to safely copy n->ha under
read_seqbegin()/read_seqretry() lock protection before using it.
Note that arp_reduce() and neigh_reduce() seem to have the same issue
left for future patches.
Severity
10 (Critical)
Assigner
References
8 references
Impacted products
2 products
| Vendor | Product | Version | |
|---|---|---|---|
| Linux | Linux |
Affected:
e4f67addf158f98f8197e08974966b18480dc751 , < 32a9590a8d30426e3db63e6b20893e47e02576c0
(git)
Affected: e4f67addf158f98f8197e08974966b18480dc751 , < d0993fc053f29e15cc7c9fe2029df3882a2ab5ab (git) Affected: e4f67addf158f98f8197e08974966b18480dc751 , < 87210054bad82bbae6f483a742dc45722fb47a6b (git) Affected: e4f67addf158f98f8197e08974966b18480dc751 , < d08e8ac13f2e228cc7fc3c70b5ebe71557b624a0 (git) Affected: e4f67addf158f98f8197e08974966b18480dc751 , < ec341bb76d77b4c2948764375ee6bfeef4bb41c3 (git) Affected: e4f67addf158f98f8197e08974966b18480dc751 , < ff89415d34c3ab9f5312316423122e664ed3524f (git) Affected: e4f67addf158f98f8197e08974966b18480dc751 , < 05f2987f73daa05333fd713d05546142f9f7c5f0 (git) Affected: e4f67addf158f98f8197e08974966b18480dc751 , < 8eca411347e1d38964f9ed2c8d3b6ab0e7e4473d (git) |
|
| Linux | Linux |
Affected:
3.8
Unaffected: 0 , < 3.8 (semver) Unaffected: 5.10.265 , ≤ 5.10.* (semver) Unaffected: 5.15.216 , ≤ 5.15.* (semver) Unaffected: 6.1.183 , ≤ 6.1.* (semver) Unaffected: 6.6.151 , ≤ 6.6.* (semver) Unaffected: 6.12.103 , ≤ 6.12.* (semver) Unaffected: 6.18.44 , ≤ 6.18.* (semver) Unaffected: 7.1.8 , ≤ 7.1.* (semver) Unaffected: 7.2 , ≤ * (original_commit_for_fix) |
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/net/vxlan/vxlan_core.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "32a9590a8d30426e3db63e6b20893e47e02576c0",
"status": "affected",
"version": "e4f67addf158f98f8197e08974966b18480dc751",
"versionType": "git"
},
{
"lessThan": "d0993fc053f29e15cc7c9fe2029df3882a2ab5ab",
"status": "affected",
"version": "e4f67addf158f98f8197e08974966b18480dc751",
"versionType": "git"
},
{
"lessThan": "87210054bad82bbae6f483a742dc45722fb47a6b",
"status": "affected",
"version": "e4f67addf158f98f8197e08974966b18480dc751",
"versionType": "git"
},
{
"lessThan": "d08e8ac13f2e228cc7fc3c70b5ebe71557b624a0",
"status": "affected",
"version": "e4f67addf158f98f8197e08974966b18480dc751",
"versionType": "git"
},
{
"lessThan": "ec341bb76d77b4c2948764375ee6bfeef4bb41c3",
"status": "affected",
"version": "e4f67addf158f98f8197e08974966b18480dc751",
"versionType": "git"
},
{
"lessThan": "ff89415d34c3ab9f5312316423122e664ed3524f",
"status": "affected",
"version": "e4f67addf158f98f8197e08974966b18480dc751",
"versionType": "git"
},
{
"lessThan": "05f2987f73daa05333fd713d05546142f9f7c5f0",
"status": "affected",
"version": "e4f67addf158f98f8197e08974966b18480dc751",
"versionType": "git"
},
{
"lessThan": "8eca411347e1d38964f9ed2c8d3b6ab0e7e4473d",
"status": "affected",
"version": "e4f67addf158f98f8197e08974966b18480dc751",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/net/vxlan/vxlan_core.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "3.8"
},
{
"lessThan": "3.8",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.265",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.216",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.183",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.151",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.103",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.44",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.8",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.265",
"versionStartIncluding": "3.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.216",
"versionStartIncluding": "3.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.183",
"versionStartIncluding": "3.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.151",
"versionStartIncluding": "3.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.103",
"versionStartIncluding": "3.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.44",
"versionStartIncluding": "3.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.8",
"versionStartIncluding": "3.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "3.8",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nvxlan: use neigh_ha_snapshot() in route_shortcircuit()\n\nThe neighbour hardware address n-\u003eha can be updated asynchronously by the\nneighbour subsystem, protected by n-\u003eha_lock seqlock. Reading n-\u003eha without\nholding the seqlock loop can lead to torn reads or reading a partially updated\nMAC address.\n\nUse neigh_ha_snapshot() in route_shortcircuit() to safely copy n-\u003eha under\nread_seqbegin()/read_seqretry() lock protection before using it.\n\nNote that arp_reduce() and neigh_reduce() seem to have the same issue\nleft for future patches."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 10,
"baseSeverity": "CRITICAL",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:L",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - route_shortcircuit() runs on the vxlan_xmit() transmit path when overlay IP/IPv6 traffic is encapsulated; in cloud/SDN VTEP deployments a remote tenant can drive dev_queue_xmit() through bridge/IP forwarding without any local syscall or netlink access.\nAC:L - The attacker controls both sides of the race by concurrently sending overlay traffic that hits route_shortcircuit() and generating neighbour ha updates (ARP/NDP churn); repeated attempts do not depend on victim state or uncontrollable memory layout.\nPR:N - Exploitation requires only the ability to send overlay/underlay packets to a VTEP that already has VXLAN_F_RSC and router FDB entries configured by infrastructure; no CAP_NET_ADMIN, root, or host credentials are needed on the victim.\nUI:N - Triggering is automatic during kernel packet forwarding and VXLAN encapsulation once matching traffic flows; no mount, file open, or other victim action is required beyond normal overlay operation.\nS:C - A torn n-\u003eha read can rewrite the skb Ethernet destination and reselect a different FDB remote, mis-encapsulating traffic to an unintended VXLAN peer and crossing intended multi-tenant overlay segmentation boundaries beyond the local VTEP authority.\nC:H - Unsynchronized reads of neighbour ha during concurrent updates yield torn MAC values that drive post-rewrite FDB lookup and encapsulation, potentially delivering other tenants\u0027 overlay frames to an attacker-controlled remote endpoint or leaking mixed neighbour state.\nI:H - The corrupted hardware address is copied into the skb Ethernet header and steers subsequent vxlan_find_mac_tx()/vxlan_xmit_one() encapsulation, enabling deterministic overlay traffic redirection or injection toward an attacker-chosen VTEP rather than the intended router destination.\nA:L - While the host kernel does not panic, torn MAC rewriting can cause mis-encapsulation, FDB misses, and dropped or misdelivered overlay packets, producing intermittent connectivity loss and performance degradation on affected VTEP nodes under sustained attack."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-19T16:37:28.096Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/32a9590a8d30426e3db63e6b20893e47e02576c0"
},
{
"url": "https://git.kernel.org/stable/c/d0993fc053f29e15cc7c9fe2029df3882a2ab5ab"
},
{
"url": "https://git.kernel.org/stable/c/87210054bad82bbae6f483a742dc45722fb47a6b"
},
{
"url": "https://git.kernel.org/stable/c/d08e8ac13f2e228cc7fc3c70b5ebe71557b624a0"
},
{
"url": "https://git.kernel.org/stable/c/ec341bb76d77b4c2948764375ee6bfeef4bb41c3"
},
{
"url": "https://git.kernel.org/stable/c/ff89415d34c3ab9f5312316423122e664ed3524f"
},
{
"url": "https://git.kernel.org/stable/c/05f2987f73daa05333fd713d05546142f9f7c5f0"
},
{
"url": "https://git.kernel.org/stable/c/8eca411347e1d38964f9ed2c8d3b6ab0e7e4473d"
}
],
"title": "vxlan: use neigh_ha_snapshot() in route_shortcircuit()",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-74475",
"datePublished": "2026-08-15T12:27:10.685Z",
"dateReserved": "2026-08-15T05:44:03.903Z",
"dateUpdated": "2026-08-19T16:37:28.096Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-74476 (GCVE-0-2026-74476)
Vulnerability from cvelistv5 – Published: 2026-08-15 12:27 – Updated: 2026-08-23 12:47
VLAI
EPSS
VEX
Title
veth: convert frag_list skbs before running XDP
Summary
In the Linux kernel, the following vulnerability has been resolved:
veth: convert frag_list skbs before running XDP
A frag_list skb can reach veth with data_len set but nr_frags zero.
veth_convert_skb_to_xdp_buff() only converts skbs that are shared,
locked, have frags[], or do not have enough headroom. It later uses
skb_is_nonlinear() to decide whether to set XDP_FLAGS_HAS_FRAGS and
xdp_frags_size.
That exposes frag_list data to XDP as if it were stored in frags[], but
frags[] is empty. AF_XDP copy mode can then trust the bogus XDP fragment
metadata, walk an empty fragment entry, and crash in memcpy() from
__xsk_rcv().
Route non-linear skbs through skb_pp_cow_data() before exposing them to
XDP, and only advertise XDP frags when the resulting skb has frags[].
skb_copy_bits() already handles frag_list input, and skb_pp_cow_data()
builds frags[] output with skb_add_rx_frag(), which is the
representation XDP multi-buffer expects.
Severity
9.1 (Critical)
Assigner
References
6 references
Impacted products
2 products
| Vendor | Product | Version | |
|---|---|---|---|
| Linux | Linux |
Affected:
718a18a0c8a67f97781e40bdef7cdd055c430996 , < 0be3632597b8349d43a7dc4244b492dc62a05998
(git)
Affected: 718a18a0c8a67f97781e40bdef7cdd055c430996 , < 04958dba44dc795dc79ce2fcbc117821bbbd6542 (git) Affected: 718a18a0c8a67f97781e40bdef7cdd055c430996 , < 5c1c15c540fc45820ce3033c319151ec891bc10a (git) Affected: 718a18a0c8a67f97781e40bdef7cdd055c430996 , < b24ba0bbffe3e23eb2f6838881c1fabcb29fb9fb (git) Affected: 718a18a0c8a67f97781e40bdef7cdd055c430996 , < f9c1fff857e93be709c8b52ed1a643f37bd82c66 (git) Affected: 718a18a0c8a67f97781e40bdef7cdd055c430996 , < d0d6415963040c401e7a7e4e482a698ba52448cb (git) |
|
| Linux | Linux |
Affected:
5.18
Unaffected: 0 , < 5.18 (semver) Unaffected: 6.1.184 , ≤ 6.1.* (semver) Unaffected: 6.6.153 , ≤ 6.6.* (semver) Unaffected: 6.12.103 , ≤ 6.12.* (semver) Unaffected: 6.18.44 , ≤ 6.18.* (semver) Unaffected: 7.1.8 , ≤ 7.1.* (semver) Unaffected: 7.2 , ≤ * (original_commit_for_fix) |
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/net/veth.c",
"net/core/skbuff.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "0be3632597b8349d43a7dc4244b492dc62a05998",
"status": "affected",
"version": "718a18a0c8a67f97781e40bdef7cdd055c430996",
"versionType": "git"
},
{
"lessThan": "04958dba44dc795dc79ce2fcbc117821bbbd6542",
"status": "affected",
"version": "718a18a0c8a67f97781e40bdef7cdd055c430996",
"versionType": "git"
},
{
"lessThan": "5c1c15c540fc45820ce3033c319151ec891bc10a",
"status": "affected",
"version": "718a18a0c8a67f97781e40bdef7cdd055c430996",
"versionType": "git"
},
{
"lessThan": "b24ba0bbffe3e23eb2f6838881c1fabcb29fb9fb",
"status": "affected",
"version": "718a18a0c8a67f97781e40bdef7cdd055c430996",
"versionType": "git"
},
{
"lessThan": "f9c1fff857e93be709c8b52ed1a643f37bd82c66",
"status": "affected",
"version": "718a18a0c8a67f97781e40bdef7cdd055c430996",
"versionType": "git"
},
{
"lessThan": "d0d6415963040c401e7a7e4e482a698ba52448cb",
"status": "affected",
"version": "718a18a0c8a67f97781e40bdef7cdd055c430996",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/net/veth.c",
"net/core/skbuff.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.18"
},
{
"lessThan": "5.18",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.184",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.153",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.103",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.44",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.8",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.184",
"versionStartIncluding": "5.18",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.153",
"versionStartIncluding": "5.18",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.103",
"versionStartIncluding": "5.18",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.44",
"versionStartIncluding": "5.18",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.8",
"versionStartIncluding": "5.18",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "5.18",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nveth: convert frag_list skbs before running XDP\n\nA frag_list skb can reach veth with data_len set but nr_frags zero.\nveth_convert_skb_to_xdp_buff() only converts skbs that are shared,\nlocked, have frags[], or do not have enough headroom. It later uses\nskb_is_nonlinear() to decide whether to set XDP_FLAGS_HAS_FRAGS and\nxdp_frags_size.\n\nThat exposes frag_list data to XDP as if it were stored in frags[], but\nfrags[] is empty. AF_XDP copy mode can then trust the bogus XDP fragment\nmetadata, walk an empty fragment entry, and crash in memcpy() from\n__xsk_rcv().\n\nRoute non-linear skbs through skb_pp_cow_data() before exposing them to\nXDP, and only advertise XDP frags when the resulting skb has frags[].\nskb_copy_bits() already handles frag_list input, and skb_pp_cow_data()\nbuilds frags[] output with skb_add_rx_frag(), which is the\nrepresentation XDP multi-buffer expects."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 9.1,
"baseSeverity": "CRITICAL",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - The bug is hit when a received skb traverses veth XDP processing; in cloud/container deployments (e.g. Cloudflare-style edge nodes) remote traffic routed to a veth peer with XDP+AF_XDP can deliver the malformed frag_list skb without local access.\nAC:L - An attacker can reliably supply the required frag_list skb (data_len\u003e0, nr_frags=0) by transmitting from the veth peer via sockets or GRO aggregation, controlling packet size, timing, and content without depending on uncontrollable kernel state.\nPR:N - Remote exploitation needs no attacker privileges when ingress traffic reaches a veth that already has an XDP program redirecting to an AF_XDP socket; only network-delivered skbs trigger veth_convert_skb_to_xdp_buff() and the faulty __xsk_rcv() path.\nUI:N - No victim user action is required beyond normal network traffic reaching the veth interface; exploitation is automatic once a qualifying frag_list skb is received and redirected to AF_XDP copy mode.\nS:U - The flaw causes kernel memory reads and crashes within the host kernel security boundary; it does not cross VM, hypervisor, or IOMMU isolation boundaries.\nC:H - Bogus XDP_FLAGS_HAS_FRAGS metadata makes __xsk_rcv() memcpy from uninitialized frags[] entries via skb_frag_address(), enabling out-of-bounds kernel memory reads into the AF_XDP receive buffer before faulting.\nI:N - The failure mode is a kernel-side memcpy read using invalid fragment metadata; data is copied into the attacker\u0027s AF_XDP ring buffer rather than corrupting kernel or other tenants\u0027 memory for integrity purposes.\nA:H - The commit and code path confirm a kernel crash when __xsk_rcv() follows bogus fragment metadata and memcpy faults on an invalid frags[] source address, causing oops/panic and denial of service."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-23T12:47:22.315Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/0be3632597b8349d43a7dc4244b492dc62a05998"
},
{
"url": "https://git.kernel.org/stable/c/04958dba44dc795dc79ce2fcbc117821bbbd6542"
},
{
"url": "https://git.kernel.org/stable/c/5c1c15c540fc45820ce3033c319151ec891bc10a"
},
{
"url": "https://git.kernel.org/stable/c/b24ba0bbffe3e23eb2f6838881c1fabcb29fb9fb"
},
{
"url": "https://git.kernel.org/stable/c/f9c1fff857e93be709c8b52ed1a643f37bd82c66"
},
{
"url": "https://git.kernel.org/stable/c/d0d6415963040c401e7a7e4e482a698ba52448cb"
}
],
"title": "veth: convert frag_list skbs before running XDP",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-74476",
"datePublished": "2026-08-15T12:27:11.309Z",
"dateReserved": "2026-08-15T05:44:03.903Z",
"dateUpdated": "2026-08-23T12:47:22.315Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-74478 (GCVE-0-2026-74478)
Vulnerability from cvelistv5 – Published: 2026-08-15 12:27 – Updated: 2026-08-19 16:37
VLAI
EPSS
VEX
Title
um: vector: fix use-after-free in vector_mmsg_rx()
Summary
In the Linux kernel, the following vulnerability has been resolved:
um: vector: fix use-after-free in vector_mmsg_rx()
When vector_mmsg_rx() discards a packet whose overlay header fails
verify_header(), it frees the skb and continues the loop:
if (header_check < 0) {
dev_kfree_skb_irq(skb);
vp->estats.rx_encaps_errors++;
continue;
}
The normal and short-packet paths fall through to the bottom of the
loop body, which clears the consumed slot and advances the cursors:
(*skbuff_vector) = NULL;
mmsg_vector++;
skbuff_vector++;
The verify_header() < 0 path skips that via continue, so the freed skb
is left in skbuff_vector[] and the cursors do not advance. The next
iteration reads the same slot, gets the freed skb, and frees it again,
producing a refcount underflow / use-after-free in the RX path.
Discard the slot the same way the other paths do before continuing.
Only transports whose verify_header() can return negative are affected:
GRE and L2TPv3 do so on a cookie/session-id mismatch (raw/tap do not),
so any peer on such a transport can trigger it without authentication.
Severity
9.8 (Critical)
Assigner
References
8 references
Impacted products
2 products
| Vendor | Product | Version | |
|---|---|---|---|
| Linux | Linux |
Affected:
49da7e64f33e80edffb1a9eeb230fa4c3f42dffb , < 967c779c9853d2a1cc9cd8e61d300250c348f3d9
(git)
Affected: 49da7e64f33e80edffb1a9eeb230fa4c3f42dffb , < a7bc015bb798c525e7a82dd14225c6aeb994274b (git) Affected: 49da7e64f33e80edffb1a9eeb230fa4c3f42dffb , < 7dc9781e320d664c9bdd50003c9acfddf363d1e1 (git) Affected: 49da7e64f33e80edffb1a9eeb230fa4c3f42dffb , < 4b9601595e8b6b5d18878cac0aeabc687d241111 (git) Affected: 49da7e64f33e80edffb1a9eeb230fa4c3f42dffb , < 67d58ab4f2ccf7145f3da07e025735a09c79de1b (git) Affected: 49da7e64f33e80edffb1a9eeb230fa4c3f42dffb , < 180ff4c81faf01ec4e06082c9daa7c40518ead89 (git) Affected: 49da7e64f33e80edffb1a9eeb230fa4c3f42dffb , < 804b681002ead233abf49a3efd681f5468a835f9 (git) Affected: 49da7e64f33e80edffb1a9eeb230fa4c3f42dffb , < af421e9aed3920c7ac88c24daa48606c7112feca (git) |
|
| Linux | Linux |
Affected:
4.17
Unaffected: 0 , < 4.17 (semver) Unaffected: 5.10.265 , ≤ 5.10.* (semver) Unaffected: 5.15.216 , ≤ 5.15.* (semver) Unaffected: 6.1.183 , ≤ 6.1.* (semver) Unaffected: 6.6.151 , ≤ 6.6.* (semver) Unaffected: 6.12.103 , ≤ 6.12.* (semver) Unaffected: 6.18.44 , ≤ 6.18.* (semver) Unaffected: 7.1.8 , ≤ 7.1.* (semver) Unaffected: 7.2 , ≤ * (original_commit_for_fix) |
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"arch/um/drivers/vector_kern.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "967c779c9853d2a1cc9cd8e61d300250c348f3d9",
"status": "affected",
"version": "49da7e64f33e80edffb1a9eeb230fa4c3f42dffb",
"versionType": "git"
},
{
"lessThan": "a7bc015bb798c525e7a82dd14225c6aeb994274b",
"status": "affected",
"version": "49da7e64f33e80edffb1a9eeb230fa4c3f42dffb",
"versionType": "git"
},
{
"lessThan": "7dc9781e320d664c9bdd50003c9acfddf363d1e1",
"status": "affected",
"version": "49da7e64f33e80edffb1a9eeb230fa4c3f42dffb",
"versionType": "git"
},
{
"lessThan": "4b9601595e8b6b5d18878cac0aeabc687d241111",
"status": "affected",
"version": "49da7e64f33e80edffb1a9eeb230fa4c3f42dffb",
"versionType": "git"
},
{
"lessThan": "67d58ab4f2ccf7145f3da07e025735a09c79de1b",
"status": "affected",
"version": "49da7e64f33e80edffb1a9eeb230fa4c3f42dffb",
"versionType": "git"
},
{
"lessThan": "180ff4c81faf01ec4e06082c9daa7c40518ead89",
"status": "affected",
"version": "49da7e64f33e80edffb1a9eeb230fa4c3f42dffb",
"versionType": "git"
},
{
"lessThan": "804b681002ead233abf49a3efd681f5468a835f9",
"status": "affected",
"version": "49da7e64f33e80edffb1a9eeb230fa4c3f42dffb",
"versionType": "git"
},
{
"lessThan": "af421e9aed3920c7ac88c24daa48606c7112feca",
"status": "affected",
"version": "49da7e64f33e80edffb1a9eeb230fa4c3f42dffb",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"arch/um/drivers/vector_kern.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "4.17"
},
{
"lessThan": "4.17",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.265",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.216",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.183",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.151",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.103",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.44",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.8",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.265",
"versionStartIncluding": "4.17",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.216",
"versionStartIncluding": "4.17",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.183",
"versionStartIncluding": "4.17",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.151",
"versionStartIncluding": "4.17",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.103",
"versionStartIncluding": "4.17",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.44",
"versionStartIncluding": "4.17",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.8",
"versionStartIncluding": "4.17",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "4.17",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\num: vector: fix use-after-free in vector_mmsg_rx()\n\nWhen vector_mmsg_rx() discards a packet whose overlay header fails\nverify_header(), it frees the skb and continues the loop:\n\n\tif (header_check \u003c 0) {\n\t\tdev_kfree_skb_irq(skb);\n\t\tvp-\u003eestats.rx_encaps_errors++;\n\t\tcontinue;\n\t}\n\nThe normal and short-packet paths fall through to the bottom of the\nloop body, which clears the consumed slot and advances the cursors:\n\n\t(*skbuff_vector) = NULL;\n\tmmsg_vector++;\n\tskbuff_vector++;\n\nThe verify_header() \u003c 0 path skips that via continue, so the freed skb\nis left in skbuff_vector[] and the cursors do not advance. The next\niteration reads the same slot, gets the freed skb, and frees it again,\nproducing a refcount underflow / use-after-free in the RX path.\n\nDiscard the slot the same way the other paths do before continuing.\n\nOnly transports whose verify_header() can return negative are affected:\nGRE and L2TPv3 do so on a cookie/session-id mismatch (raw/tap do not),\nso any peer on such a transport can trigger it without authentication."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 9.8,
"baseSeverity": "CRITICAL",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - The bug is reached from remotely sent GRE or L2TPv3 packets processed by vector_mmsg_rx() via recvmmsg on the tunnel socket; the fix commit states any peer on those transports can trigger it without authentication.\nAC:L - An attacker reliably triggers verify_header() failure with a wrong GRE key or L2TPv3 session/cookie, and sending two or more malformed packets in one recvmmsg batch causes immediate double-free of the same skb without races or special memory layout.\nPR:N - No privileges on the UML instance are required; exploitation needs only the ability to send network packets on the configured GRE/L2TPv3 transport, and overlay keys/cookies are not authenticated security controls.\nUI:N - Exploitation is driven entirely by remote packets delivered to the vector netdev RX path and requires no victim user or administrator action beyond the interface already being up.\nS:U - The use-after-free corrupts sk_buff memory inside the UML kernel network driver and does not by itself cross a VM, IOMMU, or host-kernel security boundary.\nC:H - The refcount underflow/use-after-free leaves a dangling sk_buff pointer that can be reallocated and read through standard heap grooming, giving an arbitrary kernel memory disclosure primitive.\nI:H - Reclaiming the freed sk_buff enables attacker-controlled contents in kernel heap objects and can be leveraged for arbitrary write or control-flow hijack in the UML kernel context.\nA:H - The double-free in the RX path can immediately oops or panic the UML kernel, and an unauthenticated remote peer can retrigger the condition by sending additional malformed tunnel packets."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-19T16:37:30.555Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/967c779c9853d2a1cc9cd8e61d300250c348f3d9"
},
{
"url": "https://git.kernel.org/stable/c/a7bc015bb798c525e7a82dd14225c6aeb994274b"
},
{
"url": "https://git.kernel.org/stable/c/7dc9781e320d664c9bdd50003c9acfddf363d1e1"
},
{
"url": "https://git.kernel.org/stable/c/4b9601595e8b6b5d18878cac0aeabc687d241111"
},
{
"url": "https://git.kernel.org/stable/c/67d58ab4f2ccf7145f3da07e025735a09c79de1b"
},
{
"url": "https://git.kernel.org/stable/c/180ff4c81faf01ec4e06082c9daa7c40518ead89"
},
{
"url": "https://git.kernel.org/stable/c/804b681002ead233abf49a3efd681f5468a835f9"
},
{
"url": "https://git.kernel.org/stable/c/af421e9aed3920c7ac88c24daa48606c7112feca"
}
],
"title": "um: vector: fix use-after-free in vector_mmsg_rx()",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-74478",
"datePublished": "2026-08-15T12:27:12.549Z",
"dateReserved": "2026-08-15T05:44:03.903Z",
"dateUpdated": "2026-08-19T16:37:30.555Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-74479 (GCVE-0-2026-74479)
Vulnerability from cvelistv5 – Published: 2026-08-15 12:27 – Updated: 2026-08-23 12:47
VLAI
EPSS
VEX
Title
net: pktgen: fix proc entry use-after-free
Summary
In the Linux kernel, the following vulnerability has been resolved:
net: pktgen: fix proc entry use-after-free
pktgen_change_name() replaces pkt_dev->entry while holding t->if_lock.
pktgen_remove_device() removes the same entry before
_rem_dev_from_if_list() takes that lock.
This allows the following interleaving:
CPU 0 (NETDEV_CHANGENAME) CPU 1 (kpktgend)
if_lock(t)
proc_remove(pkt_dev->entry)
proc_remove(pkt_dev->entry)
pkt_dev->entry = proc_create_data(...)
if_unlock(t)
The kthread can pass the stale proc_dir_entry to proc_remove() after the
rename path has freed it. A reproducer with a widened race window reports:
BUG: KASAN: slab-use-after-free in proc_remove+0x78/0x80
Read of size 8 at addr ffff8881478fea70 by task kpktgend_0/67
Call Trace:
proc_remove+0x78/0x80
pktgen_remove_device.isra.0+0x11c/0x4c0
pktgen_thread_worker+0x1214/0x6bc0
kthread+0x2c6/0x3b0
Allocated by task 95:
__proc_create+0x204/0x790
proc_create_data+0x72/0xe0
pktgen_thread_write+0xd61/0x1510
Freed by task 28:
kmem_cache_free+0xcb/0x3d0
proc_free_inode+0x5b/0x80
rcu_core+0x50a/0x1850
The buggy address belongs to the object at ffff8881478fea00
which belongs to the cache proc_dir_entry of size 192
Move proc_remove() into the if_lock-protected list removal helper. Keep it
before list_del_rcu() to preserve the ordering required by add_device().
The rename path must then finish replacing the entry before removal, or
it observes that the device is no longer on the list.
Severity
7.8 (High)
Assigner
References
8 references
Impacted products
2 products
| Vendor | Product | Version | |
|---|---|---|---|
| Linux | Linux |
Affected:
39df232f1a9ba48d41c68ee7d4046756e709cf91 , < 82ed3db9269cb61e3c15bad2f6e221efce90e1e0
(git)
Affected: 39df232f1a9ba48d41c68ee7d4046756e709cf91 , < d1cc9797cf8f7aeb87e7ad01b748c6a960a819e4 (git) Affected: 39df232f1a9ba48d41c68ee7d4046756e709cf91 , < 7991c7cff8b8622cddb3d8dee07dbe74aa4cbec4 (git) Affected: 39df232f1a9ba48d41c68ee7d4046756e709cf91 , < 577443530cb592d5782a1f79847411a9363a65c8 (git) Affected: 39df232f1a9ba48d41c68ee7d4046756e709cf91 , < f85a58340b91f225de3299dfa782c6414098077c (git) Affected: 39df232f1a9ba48d41c68ee7d4046756e709cf91 , < 4ef801b838d85c0ea5852c50667f7344ce3b6cd0 (git) Affected: 39df232f1a9ba48d41c68ee7d4046756e709cf91 , < b006a5404470bd3eb2aa0425fc447183032047ef (git) Affected: 39df232f1a9ba48d41c68ee7d4046756e709cf91 , < 817ff6efdb7f484ea547218e11e17d8e43daa3b4 (git) |
|
| Linux | Linux |
Affected:
2.6.22
Unaffected: 0 , < 2.6.22 (semver) Unaffected: 5.10.266 , ≤ 5.10.* (semver) Unaffected: 5.15.217 , ≤ 5.15.* (semver) Unaffected: 6.1.184 , ≤ 6.1.* (semver) Unaffected: 6.6.153 , ≤ 6.6.* (semver) Unaffected: 6.12.105 , ≤ 6.12.* (semver) Unaffected: 6.18.44 , ≤ 6.18.* (semver) Unaffected: 7.1.8 , ≤ 7.1.* (semver) Unaffected: 7.2 , ≤ * (original_commit_for_fix) |
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/core/pktgen.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "82ed3db9269cb61e3c15bad2f6e221efce90e1e0",
"status": "affected",
"version": "39df232f1a9ba48d41c68ee7d4046756e709cf91",
"versionType": "git"
},
{
"lessThan": "d1cc9797cf8f7aeb87e7ad01b748c6a960a819e4",
"status": "affected",
"version": "39df232f1a9ba48d41c68ee7d4046756e709cf91",
"versionType": "git"
},
{
"lessThan": "7991c7cff8b8622cddb3d8dee07dbe74aa4cbec4",
"status": "affected",
"version": "39df232f1a9ba48d41c68ee7d4046756e709cf91",
"versionType": "git"
},
{
"lessThan": "577443530cb592d5782a1f79847411a9363a65c8",
"status": "affected",
"version": "39df232f1a9ba48d41c68ee7d4046756e709cf91",
"versionType": "git"
},
{
"lessThan": "f85a58340b91f225de3299dfa782c6414098077c",
"status": "affected",
"version": "39df232f1a9ba48d41c68ee7d4046756e709cf91",
"versionType": "git"
},
{
"lessThan": "4ef801b838d85c0ea5852c50667f7344ce3b6cd0",
"status": "affected",
"version": "39df232f1a9ba48d41c68ee7d4046756e709cf91",
"versionType": "git"
},
{
"lessThan": "b006a5404470bd3eb2aa0425fc447183032047ef",
"status": "affected",
"version": "39df232f1a9ba48d41c68ee7d4046756e709cf91",
"versionType": "git"
},
{
"lessThan": "817ff6efdb7f484ea547218e11e17d8e43daa3b4",
"status": "affected",
"version": "39df232f1a9ba48d41c68ee7d4046756e709cf91",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/core/pktgen.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "2.6.22"
},
{
"lessThan": "2.6.22",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.266",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.217",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.184",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.153",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.105",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.44",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.8",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.266",
"versionStartIncluding": "2.6.22",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.217",
"versionStartIncluding": "2.6.22",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.184",
"versionStartIncluding": "2.6.22",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.153",
"versionStartIncluding": "2.6.22",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.105",
"versionStartIncluding": "2.6.22",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.44",
"versionStartIncluding": "2.6.22",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.8",
"versionStartIncluding": "2.6.22",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "2.6.22",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnet: pktgen: fix proc entry use-after-free\n\npktgen_change_name() replaces pkt_dev-\u003eentry while holding t-\u003eif_lock.\npktgen_remove_device() removes the same entry before\n_rem_dev_from_if_list() takes that lock.\n\nThis allows the following interleaving:\n\n CPU 0 (NETDEV_CHANGENAME) CPU 1 (kpktgend)\n if_lock(t)\n proc_remove(pkt_dev-\u003eentry)\n proc_remove(pkt_dev-\u003eentry)\n pkt_dev-\u003eentry = proc_create_data(...)\n if_unlock(t)\n\nThe kthread can pass the stale proc_dir_entry to proc_remove() after the\nrename path has freed it. A reproducer with a widened race window reports:\n\n BUG: KASAN: slab-use-after-free in proc_remove+0x78/0x80\n Read of size 8 at addr ffff8881478fea70 by task kpktgend_0/67\n Call Trace:\n proc_remove+0x78/0x80\n pktgen_remove_device.isra.0+0x11c/0x4c0\n pktgen_thread_worker+0x1214/0x6bc0\n kthread+0x2c6/0x3b0\n Allocated by task 95:\n __proc_create+0x204/0x790\n proc_create_data+0x72/0xe0\n pktgen_thread_write+0xd61/0x1510\n Freed by task 28:\n kmem_cache_free+0xcb/0x3d0\n proc_free_inode+0x5b/0x80\n rcu_core+0x50a/0x1850\n The buggy address belongs to the object at ffff8881478fea00\n which belongs to the cache proc_dir_entry of size 192\n\nMove proc_remove() into the if_lock-protected list removal helper. Keep it\nbefore list_del_rcu() to preserve the ordering required by add_device().\nThe rename path must then finish replacing the entry before removal, or\nit observes that the device is no longer on the list."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - Exploitation requires local access to /proc/net/pktgen procfs writes and a SIOCSIFNAME/ip-link rename of a pktgen-bound netdev; pktgen is configured only via local proc and ioctl paths, not via remote network packets.\nAC:L - The UAF is a race between pktgen_change_name() on NETDEV_CHANGENAME and pktgen_remove_device() in kpktgend; an attacker controls both sides concurrently via rem_device_all/unregister and interface rename, so success does not depend on uncontrollable timing.\nPR:L - Triggering rename needs ns_capable(CAP_NET_ADMIN) and pktgen proc writes are mode 0600; CAP_NET_ADMIN is obtainable by an unprivileged user via user/network namespaces (unshare -Urn), so real init-namespace root is not required.\nUI:N - No victim interaction is required; the attacker drives pktgen device add/remove and netdev rename/unregister directly through local proc writes and netlink/ioctl without needing another user to act.\nS:U - Impact is kernel slab corruption and potential privilege escalation within the same kernel security domain; it does not inherently cross VM, container, or IOMMU boundaries without additional unrelated primitives.\nC:H - The bug is a slab use-after-free of a proc_dir_entry in proc_remove(); KASAN shows reads of freed 192-byte objects, and UAF on proc metadata can be turned into arbitrary kernel memory disclosure via heap grooming.\nI:H - Corrupting or reusing the freed proc_dir_entry during proc_remove()/procfs teardown can enable attacker-controlled writes and control-flow hijack in kernel context, not merely a benign NULL dereference crash.\nA:H - Concurrent rename and removal causes proc_remove() to dereference a freed proc_dir_entry, producing KASAN slab-use-after-free and kernel oops/panic; even without full exploit development, the UAF reliably threatens system availability."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-23T12:47:23.408Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/82ed3db9269cb61e3c15bad2f6e221efce90e1e0"
},
{
"url": "https://git.kernel.org/stable/c/d1cc9797cf8f7aeb87e7ad01b748c6a960a819e4"
},
{
"url": "https://git.kernel.org/stable/c/7991c7cff8b8622cddb3d8dee07dbe74aa4cbec4"
},
{
"url": "https://git.kernel.org/stable/c/577443530cb592d5782a1f79847411a9363a65c8"
},
{
"url": "https://git.kernel.org/stable/c/f85a58340b91f225de3299dfa782c6414098077c"
},
{
"url": "https://git.kernel.org/stable/c/4ef801b838d85c0ea5852c50667f7344ce3b6cd0"
},
{
"url": "https://git.kernel.org/stable/c/b006a5404470bd3eb2aa0425fc447183032047ef"
},
{
"url": "https://git.kernel.org/stable/c/817ff6efdb7f484ea547218e11e17d8e43daa3b4"
}
],
"title": "net: pktgen: fix proc entry use-after-free",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-74479",
"datePublished": "2026-08-15T12:27:13.172Z",
"dateReserved": "2026-08-15T05:44:03.904Z",
"dateUpdated": "2026-08-23T12:47:23.408Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-74480 (GCVE-0-2026-74480)
Vulnerability from cvelistv5 – Published: 2026-08-15 12:27 – Updated: 2026-08-19 16:37
VLAI
EPSS
VEX
Title
net: bridge: stop fast-leave after deleting a port group
Summary
In the Linux kernel, the following vulnerability has been resolved:
net: bridge: stop fast-leave after deleting a port group
br_multicast_leave_group() iterates mp->ports with pp = &p->next in
its fast-leave path. After br_multicast_del_pg() removes p,
continuing the loop advances pp through the deleted entry.
If multicast-to-unicast was enabled, the bridge can hold multiple port
groups for the same port and group with different source MAC
addresses. Once multicast-to-unicast is disabled,
br_port_group_equal() matches those entries by port only. A fast leave
can then delete one entry and continue from its stale next pointer,
leaving mp->ports pointing at a deleted port group.
Fast leave only needs to remove one matching port group. Break after
br_multicast_del_pg() so the loop stops before dereferencing the
removed entry.
Severity
9.8 (Critical)
Assigner
References
8 references
Impacted products
2 products
| Vendor | Product | Version | |
|---|---|---|---|
| Linux | Linux |
Affected:
6db6f0eae6052b70885562e1733896647ec1d807 , < d6c32e2e25a9a06ba021030e26b6d602a277eb72
(git)
Affected: 6db6f0eae6052b70885562e1733896647ec1d807 , < 482bcb85139addb4e8ac8ed10baeda3e0aad4031 (git) Affected: 6db6f0eae6052b70885562e1733896647ec1d807 , < 1a109cc9890d017c41d77e6c82da739579c49f0b (git) Affected: 6db6f0eae6052b70885562e1733896647ec1d807 , < 159ad90cb929c033308bb39a2c5f8fbf393b77aa (git) Affected: 6db6f0eae6052b70885562e1733896647ec1d807 , < 4695430e8132420bf8de94da3eb36a6cf35fde6b (git) Affected: 6db6f0eae6052b70885562e1733896647ec1d807 , < 0309ebbc570000ea0df11c06b69798e5860c5f6f (git) Affected: 6db6f0eae6052b70885562e1733896647ec1d807 , < 4c57056ca6aace2e9f94ae9298bf49ef6b0c95e4 (git) Affected: 6db6f0eae6052b70885562e1733896647ec1d807 , < a39789f211b8a4125f0c70e05b30cf715f4f187d (git) |
|
| Linux | Linux |
Affected:
4.11
Unaffected: 0 , < 4.11 (semver) Unaffected: 5.10.265 , ≤ 5.10.* (semver) Unaffected: 5.15.216 , ≤ 5.15.* (semver) Unaffected: 6.1.183 , ≤ 6.1.* (semver) Unaffected: 6.6.151 , ≤ 6.6.* (semver) Unaffected: 6.12.103 , ≤ 6.12.* (semver) Unaffected: 6.18.44 , ≤ 6.18.* (semver) Unaffected: 7.1.8 , ≤ 7.1.* (semver) Unaffected: 7.2 , ≤ * (original_commit_for_fix) |
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/bridge/br_multicast.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "d6c32e2e25a9a06ba021030e26b6d602a277eb72",
"status": "affected",
"version": "6db6f0eae6052b70885562e1733896647ec1d807",
"versionType": "git"
},
{
"lessThan": "482bcb85139addb4e8ac8ed10baeda3e0aad4031",
"status": "affected",
"version": "6db6f0eae6052b70885562e1733896647ec1d807",
"versionType": "git"
},
{
"lessThan": "1a109cc9890d017c41d77e6c82da739579c49f0b",
"status": "affected",
"version": "6db6f0eae6052b70885562e1733896647ec1d807",
"versionType": "git"
},
{
"lessThan": "159ad90cb929c033308bb39a2c5f8fbf393b77aa",
"status": "affected",
"version": "6db6f0eae6052b70885562e1733896647ec1d807",
"versionType": "git"
},
{
"lessThan": "4695430e8132420bf8de94da3eb36a6cf35fde6b",
"status": "affected",
"version": "6db6f0eae6052b70885562e1733896647ec1d807",
"versionType": "git"
},
{
"lessThan": "0309ebbc570000ea0df11c06b69798e5860c5f6f",
"status": "affected",
"version": "6db6f0eae6052b70885562e1733896647ec1d807",
"versionType": "git"
},
{
"lessThan": "4c57056ca6aace2e9f94ae9298bf49ef6b0c95e4",
"status": "affected",
"version": "6db6f0eae6052b70885562e1733896647ec1d807",
"versionType": "git"
},
{
"lessThan": "a39789f211b8a4125f0c70e05b30cf715f4f187d",
"status": "affected",
"version": "6db6f0eae6052b70885562e1733896647ec1d807",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/bridge/br_multicast.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "4.11"
},
{
"lessThan": "4.11",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.265",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.216",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.183",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.151",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.103",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.44",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.8",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.265",
"versionStartIncluding": "4.11",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.216",
"versionStartIncluding": "4.11",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.183",
"versionStartIncluding": "4.11",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.151",
"versionStartIncluding": "4.11",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.103",
"versionStartIncluding": "4.11",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.44",
"versionStartIncluding": "4.11",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.8",
"versionStartIncluding": "4.11",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "4.11",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnet: bridge: stop fast-leave after deleting a port group\n\nbr_multicast_leave_group() iterates mp-\u003eports with pp = \u0026p-\u003enext in\nits fast-leave path. After br_multicast_del_pg() removes p,\ncontinuing the loop advances pp through the deleted entry.\n\nIf multicast-to-unicast was enabled, the bridge can hold multiple port\ngroups for the same port and group with different source MAC\naddresses. Once multicast-to-unicast is disabled,\nbr_port_group_equal() matches those entries by port only. A fast leave\ncan then delete one entry and continue from its stale next pointer,\nleaving mp-\u003eports pointing at a deleted port group.\n\nFast leave only needs to remove one matching port group. Break after\nbr_multicast_del_pg() so the loop stops before dereferencing the\nremoved entry."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 9.8,
"baseSeverity": "CRITICAL",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - The bug is reached when the bridge network stack processes attacker-supplied IGMP/MLD Leave packets received on a bridge port (br_handle_frame_finish -\u003e br_multicast_rcv -\u003e br_ip4/ip6_multicast_leave_group -\u003e br_multicast_leave_group), requiring no local syscall access.\nAC:L - Once a bridge has IGMP snooping, fast-leave, and leftover duplicate port groups (common on WiFi APs that used multicast-to-unicast), an attacker can reliably trigger the bug by sending IGMP/MLD joins then a Leave; no uncontrollable race or rare timing is required.\nPR:N - No privileges or authentication are required on the target; any host on an attached bridge port can inject IGMP/MLD Leave packets that are processed and reach the vulnerable fast-leave deletion loop.\nUI:N - Exploitation requires only attacker-sent multicast control packets; no victim user action such as opening files, clicking links, or mounting filesystems is needed.\nS:U - Impact is kernel heap corruption and use-after-free within the bridge/multicast subsystem on the same host; it does not cross a VM/hypervisor or IOMMU security boundary by itself.\nC:H - Deleting a port group then continuing the list walk dereferences freed net_bridge_port_group memory and can leave mp-\u003eports dangling, giving a use-after-free read primitive exploitable for arbitrary kernel memory disclosure.\nI:H - Corrupting the mp-\u003eports linked list via stale next pointers after br_multicast_del_pg() enables attacker-influenced kernel heap corruption that can be developed into arbitrary write and privilege escalation.\nA:H - The use-after-free and corrupted multicast database pointers cause kernel oops/panics when subsequent bridge multicast forwarding or MDB operations traverse the broken port-group list, enabling repeatable denial of service."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-19T16:37:33.031Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/d6c32e2e25a9a06ba021030e26b6d602a277eb72"
},
{
"url": "https://git.kernel.org/stable/c/482bcb85139addb4e8ac8ed10baeda3e0aad4031"
},
{
"url": "https://git.kernel.org/stable/c/1a109cc9890d017c41d77e6c82da739579c49f0b"
},
{
"url": "https://git.kernel.org/stable/c/159ad90cb929c033308bb39a2c5f8fbf393b77aa"
},
{
"url": "https://git.kernel.org/stable/c/4695430e8132420bf8de94da3eb36a6cf35fde6b"
},
{
"url": "https://git.kernel.org/stable/c/0309ebbc570000ea0df11c06b69798e5860c5f6f"
},
{
"url": "https://git.kernel.org/stable/c/4c57056ca6aace2e9f94ae9298bf49ef6b0c95e4"
},
{
"url": "https://git.kernel.org/stable/c/a39789f211b8a4125f0c70e05b30cf715f4f187d"
}
],
"title": "net: bridge: stop fast-leave after deleting a port group",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-74480",
"datePublished": "2026-08-15T12:27:13.803Z",
"dateReserved": "2026-08-15T05:44:03.904Z",
"dateUpdated": "2026-08-19T16:37:33.031Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-74481 (GCVE-0-2026-74481)
Vulnerability from cvelistv5 – Published: 2026-08-15 12:27 – Updated: 2026-08-19 16:37
VLAI
EPSS
VEX
Title
mm/page_reporting: use system_freezable_wq to fix UAF during suspend
Summary
In the Linux kernel, the following vulnerability has been resolved:
mm/page_reporting: use system_freezable_wq to fix UAF during suspend
During PM freeze (e.g. S3 suspend or S4 hibernation), device drivers like
virtio_balloon reset their underlying virtio devices and delete their
virtqueues via vdev->config->del_vqs().
However, page reporting work (page_reporting_process) was scheduled on the
global system_wq. Because system_wq lacks the WQ_FREEZABLE flag, the PM
freezer skips it, leaving page_reporting_process active during suspend.
If pages are freed into the buddy allocator while suspending (for example,
when core MM invokes the balloon shrinker during S4 hibernation image
saving), page reporting triggers virtballoon_free_page_report() on deleted
virtqueues, resulting in a Use-After-Free / General Protection Fault:
[ 196.795226] general protection fault, probably for non-canonical address 0xaa1436fe70dae6df: 0000 [#1] SMP NOPTI
[ 196.825967] Workqueue: events page_reporting_process
[ 196.831038] RIP: 0010:virtqueue_add_split+0x233/0x4c0 [virtio_ring]
[ 196.927073] virtballoon_free_page_report+0x3a/0xe0 [virtio_balloon]
[ 196.946943] page_reporting_process+0x370/0x4f0
Fix this by switching page reporting work to system_freezable_wq. This
ensures that the PM freezer pauses page_reporting_process before device
drivers destroy their reporting virtqueues. Because the reporting worker
is frozen, memory reclamation/freeing (e.g. via shrinker execution) can
safely return pages to MM during freeze without triggering unfrozen
reporting work on deleted virtqueues.
This aligns with the driver's existing design. The comment in
virtballoon_freeze() states:
/*
* The workqueue is already frozen by the PM core before this
* function is called.
*/
Testing:
I have verified these fixes using Google’s virtualization infrastructure
by running continuous suspend/resume iterations (40+ cycles) while
churning memory using stress-ng (`stress-ng --vm 4 --vm-bytes 60%
--timeout 1`) to constantly create free pages for the buddy allocator. We
also set the `page_reporting_order` parameter to 0 to make the page
reporting worker highly sensitive, forcing it to pick up any 4K free
pages. This confirmed that the UAF crashes are no longer reproducible.
Severity
7.8 (High)
Assigner
References
8 references
Impacted products
2 products
| Vendor | Product | Version | |
|---|---|---|---|
| Linux | Linux |
Affected:
36e66c554b5c6a9d17a229faca7a61693527b0bd , < a4c60046052777ca1dcc83fe3ece2a5136b301f1
(git)
Affected: 36e66c554b5c6a9d17a229faca7a61693527b0bd , < b2c094e98f8bb823b3ae475f7169fe2091c40c6d (git) Affected: 36e66c554b5c6a9d17a229faca7a61693527b0bd , < 992f270fd808338fbae1f498a5e325e7e2e20368 (git) Affected: 36e66c554b5c6a9d17a229faca7a61693527b0bd , < f978048326570047e8216e81a67f9c71ef2bb1b1 (git) Affected: 36e66c554b5c6a9d17a229faca7a61693527b0bd , < 450f35f4d5a682a0796757e52295df58ddb63bc9 (git) Affected: 36e66c554b5c6a9d17a229faca7a61693527b0bd , < b11907c905fa08eda925395f0724b7a409870f65 (git) Affected: 36e66c554b5c6a9d17a229faca7a61693527b0bd , < faf439b5fa7b231120eac4f7a617e0bfd4f6f5c7 (git) Affected: 36e66c554b5c6a9d17a229faca7a61693527b0bd , < 0b45f6927a14914ff685fe0e6f9d11232a1e03df (git) |
|
| Linux | Linux |
Affected:
5.7
Unaffected: 0 , < 5.7 (semver) Unaffected: 5.10.265 , ≤ 5.10.* (semver) Unaffected: 5.15.216 , ≤ 5.15.* (semver) Unaffected: 6.1.183 , ≤ 6.1.* (semver) Unaffected: 6.6.151 , ≤ 6.6.* (semver) Unaffected: 6.12.103 , ≤ 6.12.* (semver) Unaffected: 6.18.44 , ≤ 6.18.* (semver) Unaffected: 7.1.8 , ≤ 7.1.* (semver) Unaffected: 7.2 , ≤ * (original_commit_for_fix) |
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"mm/page_reporting.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "a4c60046052777ca1dcc83fe3ece2a5136b301f1",
"status": "affected",
"version": "36e66c554b5c6a9d17a229faca7a61693527b0bd",
"versionType": "git"
},
{
"lessThan": "b2c094e98f8bb823b3ae475f7169fe2091c40c6d",
"status": "affected",
"version": "36e66c554b5c6a9d17a229faca7a61693527b0bd",
"versionType": "git"
},
{
"lessThan": "992f270fd808338fbae1f498a5e325e7e2e20368",
"status": "affected",
"version": "36e66c554b5c6a9d17a229faca7a61693527b0bd",
"versionType": "git"
},
{
"lessThan": "f978048326570047e8216e81a67f9c71ef2bb1b1",
"status": "affected",
"version": "36e66c554b5c6a9d17a229faca7a61693527b0bd",
"versionType": "git"
},
{
"lessThan": "450f35f4d5a682a0796757e52295df58ddb63bc9",
"status": "affected",
"version": "36e66c554b5c6a9d17a229faca7a61693527b0bd",
"versionType": "git"
},
{
"lessThan": "b11907c905fa08eda925395f0724b7a409870f65",
"status": "affected",
"version": "36e66c554b5c6a9d17a229faca7a61693527b0bd",
"versionType": "git"
},
{
"lessThan": "faf439b5fa7b231120eac4f7a617e0bfd4f6f5c7",
"status": "affected",
"version": "36e66c554b5c6a9d17a229faca7a61693527b0bd",
"versionType": "git"
},
{
"lessThan": "0b45f6927a14914ff685fe0e6f9d11232a1e03df",
"status": "affected",
"version": "36e66c554b5c6a9d17a229faca7a61693527b0bd",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"mm/page_reporting.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.265",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.216",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.183",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.151",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.103",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.44",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.8",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.265",
"versionStartIncluding": "5.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.216",
"versionStartIncluding": "5.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.183",
"versionStartIncluding": "5.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.151",
"versionStartIncluding": "5.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.103",
"versionStartIncluding": "5.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.44",
"versionStartIncluding": "5.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.8",
"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/page_reporting: use system_freezable_wq to fix UAF during suspend\n\nDuring PM freeze (e.g. S3 suspend or S4 hibernation), device drivers like\nvirtio_balloon reset their underlying virtio devices and delete their\nvirtqueues via vdev-\u003econfig-\u003edel_vqs().\n\nHowever, page reporting work (page_reporting_process) was scheduled on the\nglobal system_wq. Because system_wq lacks the WQ_FREEZABLE flag, the PM\nfreezer skips it, leaving page_reporting_process active during suspend.\n\nIf pages are freed into the buddy allocator while suspending (for example,\nwhen core MM invokes the balloon shrinker during S4 hibernation image\nsaving), page reporting triggers virtballoon_free_page_report() on deleted\nvirtqueues, resulting in a Use-After-Free / General Protection Fault:\n\n [ 196.795226] general protection fault, probably for non-canonical address 0xaa1436fe70dae6df: 0000 [#1] SMP NOPTI\n [ 196.825967] Workqueue: events page_reporting_process\n [ 196.831038] RIP: 0010:virtqueue_add_split+0x233/0x4c0 [virtio_ring]\n [ 196.927073] virtballoon_free_page_report+0x3a/0xe0 [virtio_balloon]\n [ 196.946943] page_reporting_process+0x370/0x4f0\n\nFix this by switching page reporting work to system_freezable_wq. This\nensures that the PM freezer pauses page_reporting_process before device\ndrivers destroy their reporting virtqueues. Because the reporting worker\nis frozen, memory reclamation/freeing (e.g. via shrinker execution) can\nsafely return pages to MM during freeze without triggering unfrozen\nreporting work on deleted virtqueues.\n\nThis aligns with the driver\u0027s existing design. The comment in\nvirtballoon_freeze() states:\n /*\n * The workqueue is already frozen by the PM core before this\n * function is called.\n */\n\nTesting:\nI have verified these fixes using Google\u2019s virtualization infrastructure\nby running continuous suspend/resume iterations (40+ cycles) while\nchurning memory using stress-ng (`stress-ng --vm 4 --vm-bytes 60%\n--timeout 1`) to constantly create free pages for the buddy allocator. We\nalso set the `page_reporting_order` parameter to 0 to make the page\nreporting worker highly sensitive, forcing it to pick up any 4K free\npages. This confirmed that the UAF crashes are no longer reproducible."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - The UAF is reached only through local PM suspend/hibernation and guest memory-free paths (__free_one_page -\u003e page_reporting_notify_free -\u003e page_reporting_process -\u003e virtballoon_free_page_report); it is not reachable via network protocols or remote packet handling.\nAC:L - An attacker with local access can reliably drive the race by churning memory (e.g. stress-ng) to flood page-reporting work while triggering or awaiting S3/S4 suspend, as demonstrated in the fix commit\u0027s reproduction on virtio-balloon VMs.\nPR:L - No real-root capability is required to exercise the memory-free entry path (normal unprivileged mmap/malloc/free syscalls), and many desktop deployments allow session users to initiate suspend via logind/polkit without full init-namespace root.\nUI:N - Exploitation does not require a separate victim action beyond the attacker (or system policy) initiating suspend/hibernation; automated cloud/VM suspend-resume cycles and scripted PM transitions suffice without interactive victim cooperation.\nS:U - Impact is confined to guest kernel memory corruption and crash inside the virtio-balloon/page-reporting subsystem; it does not cross a VM/host, IOMMU, or sandbox security boundary to affect resources outside the kernel\u0027s own authority.\nC:H - This is a kernel heap use-after-free on freed virtqueue metadata accessed through virtqueue_add_split; UAF of kernel objects can be leveraged for arbitrary kernel memory read/info disclosure beyond the observed GPF crash.\nI:H - UAF on virtqueue/vring kernel structures during virtqueue_add_split provides a memory-corruption primitive that can be developed into controlled kernel writes or code execution, not merely a benign crash.\nA:H - The bug provably causes a kernel general protection fault/oops in page_reporting_process during suspend (Workqueue: events), crashing or destabilizing the system and denying availability on every affected suspend/hibernation cycle."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-19T16:37:36.090Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/a4c60046052777ca1dcc83fe3ece2a5136b301f1"
},
{
"url": "https://git.kernel.org/stable/c/b2c094e98f8bb823b3ae475f7169fe2091c40c6d"
},
{
"url": "https://git.kernel.org/stable/c/992f270fd808338fbae1f498a5e325e7e2e20368"
},
{
"url": "https://git.kernel.org/stable/c/f978048326570047e8216e81a67f9c71ef2bb1b1"
},
{
"url": "https://git.kernel.org/stable/c/450f35f4d5a682a0796757e52295df58ddb63bc9"
},
{
"url": "https://git.kernel.org/stable/c/b11907c905fa08eda925395f0724b7a409870f65"
},
{
"url": "https://git.kernel.org/stable/c/faf439b5fa7b231120eac4f7a617e0bfd4f6f5c7"
},
{
"url": "https://git.kernel.org/stable/c/0b45f6927a14914ff685fe0e6f9d11232a1e03df"
}
],
"title": "mm/page_reporting: use system_freezable_wq to fix UAF during suspend",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-74481",
"datePublished": "2026-08-15T12:27:14.441Z",
"dateReserved": "2026-08-15T05:44:03.904Z",
"dateUpdated": "2026-08-19T16:37:36.090Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-74482 (GCVE-0-2026-74482)
Vulnerability from cvelistv5 – Published: 2026-08-15 12:27 – Updated: 2026-08-19 16:37
VLAI
EPSS
VEX
Title
mm/huge_memory: unlock i_mmap_rwsem before releasing after-split folios
Summary
In the Linux kernel, the following vulnerability has been resolved:
mm/huge_memory: unlock i_mmap_rwsem before releasing after-split folios
__folio_split() keeps dereferencing the mapping after the split:
shmem_uncharge(mapping->host) and remap_page() while the folios are still
frozen/locked, and i_mmap_unlock_read(mapping) at the very end, after the
after-split folios have been unlocked and freed.
Nothing holds an inode reference across that. The split relies on @folio
-- which the beyond-EOF drop loop never removes, as it starts at
folio_next(folio) -- staying locked and in the page cache to hold off
eviction. But the unlock loop unlocks @folio before i_mmap_unlock_read()
runs. If the caller's @lock_at is a tail beyond EOF, as memory_failure()
passes when splitting a poisoned tail of a shmem THP that reaches past
i_size during truncation, it too is gone from the page cache; so once
@folio is unlocked no locked, in-cache folio pins the inode, and a
concurrent final iput() can evict and RCU-free it before
i_mmap_unlock_read() touches i_mmap_rwsem:
BUG: KASAN: slab-use-after-free in __up_read+0x634/0x790
i_mmap_unlock_read include/linux/fs.h:537 [inline]
__folio_split+0x732/0x1640 mm/huge_memory.c:4100
try_to_split_thp_page+0xab/0x390 mm/memory-failure.c:1675
memory_failure+0x1394/0x26e0 mm/memory-failure.c:2470
Freed by task 4601:
shmem_free_in_core_inode+0x54/0xb0 mm/shmem.c:5177
evict+0x57f/0xac0 fs/inode.c:870
Do every mapping dereference while @folio still pins the inode: drop
i_mmap_rwsem right after remap_page(), before the loop that unlocks and
frees the after-split folios, and clear @mapping so the exit path does not
unlock it again. shmem_uncharge() and remap_page() already run before
that point, so after this nothing past the unlock loop touches the inode
or the mapping.
This is now a rule the split depends on, alongside keeping @folio frozen
until the page cache is updated: no inode or mapping dereference once the
after-split folios start being unlocked.
Severity
7.8 (High)
Assigner
References
8 references
Impacted products
2 products
| Vendor | Product | Version | |
|---|---|---|---|
| Linux | Linux |
Affected:
baa355fd331424526e742d41d9b90d5f9d10f716 , < bc2f5eabaaf60ec18da70b619a8fba1bfb7dea3a
(git)
Affected: baa355fd331424526e742d41d9b90d5f9d10f716 , < f87c08060818ebb19bafed37c38244538da25097 (git) Affected: baa355fd331424526e742d41d9b90d5f9d10f716 , < 6f5c272d71845a669e4c8ee5c72b376e29a0e6e5 (git) Affected: baa355fd331424526e742d41d9b90d5f9d10f716 , < be106f7855f03d3128ed0ce70ba74b484a90b473 (git) Affected: baa355fd331424526e742d41d9b90d5f9d10f716 , < e3dd774dbfd0b5bc2dbd0995221751b1234f8205 (git) Affected: baa355fd331424526e742d41d9b90d5f9d10f716 , < 10065fb891651d9541e7a5a2db84c1e656ece4f9 (git) Affected: baa355fd331424526e742d41d9b90d5f9d10f716 , < d640efe94d86d3be893d4c19220362546a637e90 (git) Affected: baa355fd331424526e742d41d9b90d5f9d10f716 , < e923bd21058ea02fd0dcd3549d151d143fd036e5 (git) |
|
| Linux | Linux |
Affected:
4.8
Unaffected: 0 , < 4.8 (semver) Unaffected: 5.10.265 , ≤ 5.10.* (semver) Unaffected: 5.15.216 , ≤ 5.15.* (semver) Unaffected: 6.1.183 , ≤ 6.1.* (semver) Unaffected: 6.6.151 , ≤ 6.6.* (semver) Unaffected: 6.12.103 , ≤ 6.12.* (semver) Unaffected: 6.18.44 , ≤ 6.18.* (semver) Unaffected: 7.1.8 , ≤ 7.1.* (semver) Unaffected: 7.2 , ≤ * (original_commit_for_fix) |
{
"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": "bc2f5eabaaf60ec18da70b619a8fba1bfb7dea3a",
"status": "affected",
"version": "baa355fd331424526e742d41d9b90d5f9d10f716",
"versionType": "git"
},
{
"lessThan": "f87c08060818ebb19bafed37c38244538da25097",
"status": "affected",
"version": "baa355fd331424526e742d41d9b90d5f9d10f716",
"versionType": "git"
},
{
"lessThan": "6f5c272d71845a669e4c8ee5c72b376e29a0e6e5",
"status": "affected",
"version": "baa355fd331424526e742d41d9b90d5f9d10f716",
"versionType": "git"
},
{
"lessThan": "be106f7855f03d3128ed0ce70ba74b484a90b473",
"status": "affected",
"version": "baa355fd331424526e742d41d9b90d5f9d10f716",
"versionType": "git"
},
{
"lessThan": "e3dd774dbfd0b5bc2dbd0995221751b1234f8205",
"status": "affected",
"version": "baa355fd331424526e742d41d9b90d5f9d10f716",
"versionType": "git"
},
{
"lessThan": "10065fb891651d9541e7a5a2db84c1e656ece4f9",
"status": "affected",
"version": "baa355fd331424526e742d41d9b90d5f9d10f716",
"versionType": "git"
},
{
"lessThan": "d640efe94d86d3be893d4c19220362546a637e90",
"status": "affected",
"version": "baa355fd331424526e742d41d9b90d5f9d10f716",
"versionType": "git"
},
{
"lessThan": "e923bd21058ea02fd0dcd3549d151d143fd036e5",
"status": "affected",
"version": "baa355fd331424526e742d41d9b90d5f9d10f716",
"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.265",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.216",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.183",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.151",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.103",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.44",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.8",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.265",
"versionStartIncluding": "4.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.216",
"versionStartIncluding": "4.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.183",
"versionStartIncluding": "4.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.151",
"versionStartIncluding": "4.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.103",
"versionStartIncluding": "4.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.44",
"versionStartIncluding": "4.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.8",
"versionStartIncluding": "4.8",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "4.8",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nmm/huge_memory: unlock i_mmap_rwsem before releasing after-split folios\n\n__folio_split() keeps dereferencing the mapping after the split:\nshmem_uncharge(mapping-\u003ehost) and remap_page() while the folios are still\nfrozen/locked, and i_mmap_unlock_read(mapping) at the very end, after the\nafter-split folios have been unlocked and freed.\n\nNothing holds an inode reference across that. The split relies on @folio\n-- which the beyond-EOF drop loop never removes, as it starts at\nfolio_next(folio) -- staying locked and in the page cache to hold off\neviction. But the unlock loop unlocks @folio before i_mmap_unlock_read()\nruns. If the caller\u0027s @lock_at is a tail beyond EOF, as memory_failure()\npasses when splitting a poisoned tail of a shmem THP that reaches past\ni_size during truncation, it too is gone from the page cache; so once\n@folio is unlocked no locked, in-cache folio pins the inode, and a\nconcurrent final iput() can evict and RCU-free it before\ni_mmap_unlock_read() touches i_mmap_rwsem:\n\n BUG: KASAN: slab-use-after-free in __up_read+0x634/0x790\n i_mmap_unlock_read include/linux/fs.h:537 [inline]\n __folio_split+0x732/0x1640 mm/huge_memory.c:4100\n try_to_split_thp_page+0xab/0x390 mm/memory-failure.c:1675\n memory_failure+0x1394/0x26e0 mm/memory-failure.c:2470\n\n Freed by task 4601:\n shmem_free_in_core_inode+0x54/0xb0 mm/shmem.c:5177\n evict+0x57f/0xac0 fs/inode.c:870\n\nDo every mapping dereference while @folio still pins the inode: drop\ni_mmap_rwsem right after remap_page(), before the loop that unlocks and\nfrees the after-split folios, and clear @mapping so the exit path does not\nunlock it again. shmem_uncharge() and remap_page() already run before\nthat point, so after this nothing past the unlock loop touches the inode\nor the mapping.\n\nThis is now a rule the split depends on, alongside keeping @folio frozen\nuntil the page cache is updated: no inode or mapping dereference once the\nafter-split folios start being unlocked."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - The UAF is in __folio_split() on the memory_failure()-\u003etry_to_split_thp_page() path while splitting file-backed shmem THPs; reachability is via local syscalls (memfd/mmap/madvise/ftruncate) or admin hwpoison injection, not network or physical interfaces.\nAC:L - An attacker can deterministically create a shmem THP with tail pages beyond EOF and race MADV_HWPOISON-driven memory_failure() against concurrent truncate/close(iput) using attacker-controlled threads; both sides of the race are attacker-driven.\nPR:L - Reliable exploitation uses MADV_HWPOISON to invoke memory_failure() on a chosen tail page; CAP_SYS_ADMIN is available to user-namespace/container root, and the shmem THP setup needs only ordinary local mapping and truncation privileges.\nUI:N - No separate victim action is required; the attacker creates, maps, poisons, and truncates their own memfd/shmem/tmpfs object to reach the vulnerable split path.\nS:U - Impact is a kernel slab use-after-free on inode/mapping metadata in core MM within the same kernel security domain, not a VM escape, sandbox breakout, or other cross-authority boundary violation.\nC:H - KASAN reports slab-use-after-free in i_mmap_unlock_read() after shmem_free_in_core_inode() RCU-frees the inode; this inode/mapping UAF can be heap-sprayed into an arbitrary kernel memory read primitive.\nI:H - The same UAF corrupts freed inode slab objects and i_mmap_rwsem state, enabling heap grooming for arbitrary kernel writes and potential privilege escalation via control-flow hijacking per kernel UAF guidance.\nA:H - The use-after-free provokes a KASAN BUG/oops during i_mmap_unlock_read() and corrupts core MM inode state, capable of kernel panic or hang when triggered on production shmem/tmpfs workloads."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-19T16:37:38.544Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/bc2f5eabaaf60ec18da70b619a8fba1bfb7dea3a"
},
{
"url": "https://git.kernel.org/stable/c/f87c08060818ebb19bafed37c38244538da25097"
},
{
"url": "https://git.kernel.org/stable/c/6f5c272d71845a669e4c8ee5c72b376e29a0e6e5"
},
{
"url": "https://git.kernel.org/stable/c/be106f7855f03d3128ed0ce70ba74b484a90b473"
},
{
"url": "https://git.kernel.org/stable/c/e3dd774dbfd0b5bc2dbd0995221751b1234f8205"
},
{
"url": "https://git.kernel.org/stable/c/10065fb891651d9541e7a5a2db84c1e656ece4f9"
},
{
"url": "https://git.kernel.org/stable/c/d640efe94d86d3be893d4c19220362546a637e90"
},
{
"url": "https://git.kernel.org/stable/c/e923bd21058ea02fd0dcd3549d151d143fd036e5"
}
],
"title": "mm/huge_memory: unlock i_mmap_rwsem before releasing after-split folios",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-74482",
"datePublished": "2026-08-15T12:27:15.083Z",
"dateReserved": "2026-08-15T05:44:03.904Z",
"dateUpdated": "2026-08-19T16:37:38.544Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-74483 (GCVE-0-2026-74483)
Vulnerability from cvelistv5 – Published: 2026-08-15 12:27 – Updated: 2026-08-23 12:47
VLAI
EPSS
VEX
Title
binfmt_misc: don't leak the user namespace when the mount fails
Summary
In the Linux kernel, the following vulnerability has been resolved:
binfmt_misc: don't leak the user namespace when the mount fails
bm_get_tree() takes a reference to the user namespace and hands it to
get_tree_keyed() as the sget key. sget_fc() moves that reference into
sb->s_fs_info and clears fc->s_fs_info, so from that point on the
superblock owns it and bm_free() doesn't see it anymore.
The superblock drops it in ->put_super(). But generic_shutdown_super()
only calls ->put_super() from inside the if (sb->s_root) branch, so
nothing releases it when bm_fill_super() fails:
- The kzalloc_obj() failure leaves s_root NULL and the whole branch is
skipped.
- A simple_fill_super() failure in the file loop leaves s_root set, but
s_op still points at simple_super_operations, which has no
->put_super(). bm_fill_super() installs s_ops only once
simple_fill_super() returned success, and installing it earlier
wouldn't help either because simple_fill_super() overwrites s_op.
Either way vfs_get_super() calls deactivate_locked_super() and the
reference is gone for good. binfmt_misc mounts are available in a user
namespace and both the inode and the dentry cache are SLAB_ACCOUNT, so
an unprivileged caller under a tight memory cgroup can fail
simple_fill_super() on demand and leak one user namespace per attempt.
Drop the reference in ->kill_sb() instead, which runs unconditionally,
the same way nfsd and rpc_pipefs release their keyed s_fs_info.
That also stops ->put_super() from clearing s_fs_info while the
superblock is still on @fs_supers. generic_shutdown_super() leaves it
there on purpose so that sget_fc() keeps finding it until kill_sb() has
run, but a NULL s_fs_info makes test_keyed_super() miss it, so a
concurrent mount for the same user namespace skips the grab_super()
wait and creates a second superblock for a namespace that is still
being torn down.
Severity
No CVSS data available.
Assigner
References
Impacted products
2 products
| Vendor | Product | Version | |
|---|---|---|---|
| Linux | Linux |
Affected:
21ca59b365c091d583f36ac753eaa8baf947be6f , < ffec017158d3aad8a6ffca1dfad63d63bde9caad
(git)
Affected: 21ca59b365c091d583f36ac753eaa8baf947be6f , < 867aed6a4848761190d5ebdedf9642648f97bceb (git) Affected: 21ca59b365c091d583f36ac753eaa8baf947be6f , < 87a4eb9bbb3497f749bbac612af22ddaa62d7b0d (git) Affected: 21ca59b365c091d583f36ac753eaa8baf947be6f , < b8206f516fe7cbe785cf44bf09c17c438d7c3cad (git) |
|
| Linux | Linux |
Affected:
6.7
Unaffected: 0 , < 6.7 (semver) Unaffected: 6.12.105 , ≤ 6.12.* (semver) Unaffected: 6.18.46 , ≤ 6.18.* (semver) Unaffected: 7.1.8 , ≤ 7.1.* (semver) Unaffected: 7.2 , ≤ * (original_commit_for_fix) |
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"fs/binfmt_misc.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "ffec017158d3aad8a6ffca1dfad63d63bde9caad",
"status": "affected",
"version": "21ca59b365c091d583f36ac753eaa8baf947be6f",
"versionType": "git"
},
{
"lessThan": "867aed6a4848761190d5ebdedf9642648f97bceb",
"status": "affected",
"version": "21ca59b365c091d583f36ac753eaa8baf947be6f",
"versionType": "git"
},
{
"lessThan": "87a4eb9bbb3497f749bbac612af22ddaa62d7b0d",
"status": "affected",
"version": "21ca59b365c091d583f36ac753eaa8baf947be6f",
"versionType": "git"
},
{
"lessThan": "b8206f516fe7cbe785cf44bf09c17c438d7c3cad",
"status": "affected",
"version": "21ca59b365c091d583f36ac753eaa8baf947be6f",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"fs/binfmt_misc.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.7"
},
{
"lessThan": "6.7",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.105",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.46",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.8",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.105",
"versionStartIncluding": "6.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.46",
"versionStartIncluding": "6.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.8",
"versionStartIncluding": "6.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "6.7",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nbinfmt_misc: don\u0027t leak the user namespace when the mount fails\n\nbm_get_tree() takes a reference to the user namespace and hands it to\nget_tree_keyed() as the sget key. sget_fc() moves that reference into\nsb-\u003es_fs_info and clears fc-\u003es_fs_info, so from that point on the\nsuperblock owns it and bm_free() doesn\u0027t see it anymore.\n\nThe superblock drops it in -\u003eput_super(). But generic_shutdown_super()\nonly calls -\u003eput_super() from inside the if (sb-\u003es_root) branch, so\nnothing releases it when bm_fill_super() fails:\n\n- The kzalloc_obj() failure leaves s_root NULL and the whole branch is\n skipped.\n\n- A simple_fill_super() failure in the file loop leaves s_root set, but\n s_op still points at simple_super_operations, which has no\n -\u003eput_super(). bm_fill_super() installs s_ops only once\n simple_fill_super() returned success, and installing it earlier\n wouldn\u0027t help either because simple_fill_super() overwrites s_op.\n\nEither way vfs_get_super() calls deactivate_locked_super() and the\nreference is gone for good. binfmt_misc mounts are available in a user\nnamespace and both the inode and the dentry cache are SLAB_ACCOUNT, so\nan unprivileged caller under a tight memory cgroup can fail\nsimple_fill_super() on demand and leak one user namespace per attempt.\n\nDrop the reference in -\u003ekill_sb() instead, which runs unconditionally,\nthe same way nfsd and rpc_pipefs release their keyed s_fs_info.\n\nThat also stops -\u003eput_super() from clearing s_fs_info while the\nsuperblock is still on @fs_supers. generic_shutdown_super() leaves it\nthere on purpose so that sget_fc() keeps finding it until kill_sb() has\nrun, but a NULL s_fs_info makes test_keyed_super() miss it, so a\nconcurrent mount for the same user namespace skips the grab_super()\nwait and creates a second superblock for a namespace that is still\nbeing torn down."
}
],
"providerMetadata": {
"dateUpdated": "2026-08-23T12:47:24.496Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/ffec017158d3aad8a6ffca1dfad63d63bde9caad"
},
{
"url": "https://git.kernel.org/stable/c/867aed6a4848761190d5ebdedf9642648f97bceb"
},
{
"url": "https://git.kernel.org/stable/c/87a4eb9bbb3497f749bbac612af22ddaa62d7b0d"
},
{
"url": "https://git.kernel.org/stable/c/b8206f516fe7cbe785cf44bf09c17c438d7c3cad"
}
],
"title": "binfmt_misc: don\u0027t leak the user namespace when the mount fails",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-74483",
"datePublished": "2026-08-15T12:27:15.709Z",
"dateReserved": "2026-08-15T05:44:03.904Z",
"dateUpdated": "2026-08-23T12:47:24.496Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-74484 (GCVE-0-2026-74484)
Vulnerability from cvelistv5 – Published: 2026-08-15 12:27 – Updated: 2026-08-19 06:52
VLAI
EPSS
VEX
Title
binfmt_misc: don't let an 'F' entry pin its own instance
Summary
In the Linux kernel, the following vulnerability has been resolved:
binfmt_misc: don't let an 'F' entry pin its own instance
An entry registered with 'F' opens its interpreter at registration time
and holds that file until the entry is freed. Any entry nobody removes
by hand only gets closed once the binfmt_misc superblock is shut down.
If the interpreter lives on a mount that keeps that superblock alive the
two pin each other:
binfmt_misc sb -> inode -> entry -> interp_file -> vfsmount -> binfmt_misc sb
TL;DR the file is never closed. Once the mount namespace is gone there
is nothing left to unregister through either.
There are two ways to trigger this bug:
- Point the interpreter at the instance itself. Its files are regular
files owned by the mounter and both bm_get_inode() and
simple_fill_super() leave i_op at empty_iops. So notify_change() falls
back to simple_setattr() and chmod +x works. We never set SB_I_NOEXEC
and so open_exec() accepts it.
- Use the instance as an overlayfs lower layer. The overlay superblock
holds a clone_private_mount() of every layer until it is destroyed and
that clone is in no namespace. So umount_tree() never reaches it.
That's a DoS. And it isn't only the superblock that leaks. It pins the
user namespace it was mounted in, so every iteration permanently eats
one of the caller's user namespace charges.
So let's just do the sane thing. SB_I_NOEXEC makes open_exec() fail on
the instance's own files and s_stack_depth makes overlayfs reject the
layer before it ever takes a clone. That also covers the ecryptfs and
fuse passthrough variants. What 'F' promises is unchanged.
The stable tag is narrower than the Fixes tags on purpose. Before
sandboxed mounts this needed global root against the single instance
everyone shares, and the change doesn't apply to those trees anyway.
Note that SB_I_NODEV is implicitly raised for userns mounts but raise it
explicitly here as well.
Severity
No CVSS data available.
Assigner
References
Impacted products
2 products
| Vendor | Product | Version | |
|---|---|---|---|
| Linux | Linux |
Affected:
21ca59b365c091d583f36ac753eaa8baf947be6f , < 1cc2decee06acc939337304e9b3f737fd5d8c4bd
(git)
Affected: 21ca59b365c091d583f36ac753eaa8baf947be6f , < 4dad8ca637d44d5a6d5c23fa80c9e2e455198c2b (git) Affected: 21ca59b365c091d583f36ac753eaa8baf947be6f , < 098e92fe0f1bde5af99c8cf504f13f01ef139f85 (git) Affected: 21ca59b365c091d583f36ac753eaa8baf947be6f , < 79055d82772b9584f259b747fe40ff56a076678d (git) |
|
| Linux | Linux |
Affected:
6.7
Unaffected: 0 , < 6.7 (semver) Unaffected: 6.12.103 , ≤ 6.12.* (semver) Unaffected: 6.18.44 , ≤ 6.18.* (semver) Unaffected: 7.1.8 , ≤ 7.1.* (semver) Unaffected: 7.2 , ≤ * (original_commit_for_fix) |
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"fs/binfmt_misc.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "1cc2decee06acc939337304e9b3f737fd5d8c4bd",
"status": "affected",
"version": "21ca59b365c091d583f36ac753eaa8baf947be6f",
"versionType": "git"
},
{
"lessThan": "4dad8ca637d44d5a6d5c23fa80c9e2e455198c2b",
"status": "affected",
"version": "21ca59b365c091d583f36ac753eaa8baf947be6f",
"versionType": "git"
},
{
"lessThan": "098e92fe0f1bde5af99c8cf504f13f01ef139f85",
"status": "affected",
"version": "21ca59b365c091d583f36ac753eaa8baf947be6f",
"versionType": "git"
},
{
"lessThan": "79055d82772b9584f259b747fe40ff56a076678d",
"status": "affected",
"version": "21ca59b365c091d583f36ac753eaa8baf947be6f",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"fs/binfmt_misc.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.7"
},
{
"lessThan": "6.7",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.103",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.44",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.8",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.103",
"versionStartIncluding": "6.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.44",
"versionStartIncluding": "6.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.8",
"versionStartIncluding": "6.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "6.7",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nbinfmt_misc: don\u0027t let an \u0027F\u0027 entry pin its own instance\n\nAn entry registered with \u0027F\u0027 opens its interpreter at registration time\nand holds that file until the entry is freed. Any entry nobody removes\nby hand only gets closed once the binfmt_misc superblock is shut down.\nIf the interpreter lives on a mount that keeps that superblock alive the\ntwo pin each other:\n\n binfmt_misc sb -\u003e inode -\u003e entry -\u003e interp_file -\u003e vfsmount -\u003e binfmt_misc sb\n\nTL;DR the file is never closed. Once the mount namespace is gone there\nis nothing left to unregister through either.\n\nThere are two ways to trigger this bug:\n\n- Point the interpreter at the instance itself. Its files are regular\n files owned by the mounter and both bm_get_inode() and\n simple_fill_super() leave i_op at empty_iops. So notify_change() falls\n back to simple_setattr() and chmod +x works. We never set SB_I_NOEXEC\n and so open_exec() accepts it.\n\n- Use the instance as an overlayfs lower layer. The overlay superblock\n holds a clone_private_mount() of every layer until it is destroyed and\n that clone is in no namespace. So umount_tree() never reaches it.\n\nThat\u0027s a DoS. And it isn\u0027t only the superblock that leaks. It pins the\nuser namespace it was mounted in, so every iteration permanently eats\none of the caller\u0027s user namespace charges.\n\nSo let\u0027s just do the sane thing. SB_I_NOEXEC makes open_exec() fail on\nthe instance\u0027s own files and s_stack_depth makes overlayfs reject the\nlayer before it ever takes a clone. That also covers the ecryptfs and\nfuse passthrough variants. What \u0027F\u0027 promises is unchanged.\n\nThe stable tag is narrower than the Fixes tags on purpose. Before\nsandboxed mounts this needed global root against the single instance\neveryone shares, and the change doesn\u0027t apply to those trees anyway.\n\nNote that SB_I_NODEV is implicitly raised for userns mounts but raise it\nexplicitly here as well."
}
],
"providerMetadata": {
"dateUpdated": "2026-08-19T06:52:35.407Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/1cc2decee06acc939337304e9b3f737fd5d8c4bd"
},
{
"url": "https://git.kernel.org/stable/c/4dad8ca637d44d5a6d5c23fa80c9e2e455198c2b"
},
{
"url": "https://git.kernel.org/stable/c/098e92fe0f1bde5af99c8cf504f13f01ef139f85"
},
{
"url": "https://git.kernel.org/stable/c/79055d82772b9584f259b747fe40ff56a076678d"
}
],
"title": "binfmt_misc: don\u0027t let an \u0027F\u0027 entry pin its own instance",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-74484",
"datePublished": "2026-08-15T12:27:16.346Z",
"dateReserved": "2026-08-15T05:44:03.904Z",
"dateUpdated": "2026-08-19T06:52:35.407Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-74485 (GCVE-0-2026-74485)
Vulnerability from cvelistv5 – Published: 2026-08-15 12:27 – Updated: 2026-08-19 16:37
VLAI
EPSS
VEX
Title
binfmt_misc: reject a flag character as the field delimiter
Summary
In the Linux kernel, the following vulnerability has been resolved:
binfmt_misc: reject a flag character as the field delimiter
The registration string starts with a user chosen delimiter that
separates the individual fields. So that the field parsers terminate
even on a truncated string create_entry() pads the buffer with that
same delimiter:
memset(buf + count, del, 8);
Most fields are scanned for the delimiter with strchr()/scanarg() and
happily stop on the padding. The flags field is different: instead of
scanning for the delimiter check_special_flags() consumes the flag
characters 'P', 'O', 'C' and 'F' and stops at the first byte that is
none of them, relying on the trailing delimiter to end the scan.
If the delimiter is itself a flag character the padding no longer acts
as a terminator. The scan swallows all eight padding bytes and keeps
reading past the end of the allocation until it hits a byte that is
not a flag character. For example registering
PaPEPPxPPiP
with 'P' as the delimiter (name "a", type extension, magic "x",
interpreter "i", empty flags) leaves the flag scan running off the end
of the buffer. The registration is rejected in the end because the
parser does not stop exactly at buf + count, but only after the out of
bounds read has already happened. With an unlucky allocation layout the
scan can walk into an unmapped page; under KASAN it is reported as a
slab out of bounds read. binfmt_misc mounts are available to
unprivileged users in a user namespace so the read is reachable without
privileges.
Reject a delimiter that is one of the flag characters up front. Such a
registration was always rejected anyway, only after the out of bounds
read, so no valid registration string changes meaning.
Severity
7.1 (High)
Assigner
References
8 references
Impacted products
2 products
| Vendor | Product | Version | |
|---|---|---|---|
| Linux | Linux |
Affected:
1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 , < 96bd5d4fea2970b9b08265293ca7a10b9b27c0fd
(git)
Affected: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 , < 9970e094e5d60f0d66914bf9a97d1ef19107ebf5 (git) Affected: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 , < b29e3c1f375c1296362d219ff38bceddf2d2a88a (git) Affected: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 , < 1819f82dee766c58295ecaacdac02cdf6837d7a4 (git) Affected: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 , < 1853e95c9bfe69ef1dd862b3f551e68f4a1b76cc (git) Affected: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 , < 840bb9c49c3e75fb32b593d67ab32f6b77122262 (git) Affected: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 , < 9a2d87db3898b5993b64fd258d0334e0eba9ee0d (git) Affected: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 , < 8e85d50ba1117fd446bf9a250bd8a97d48384bdc (git) |
|
| Linux | Linux |
Affected:
2.6.12
Unaffected: 0 , < 2.6.12 (semver) Unaffected: 5.10.265 , ≤ 5.10.* (semver) Unaffected: 5.15.216 , ≤ 5.15.* (semver) Unaffected: 6.1.183 , ≤ 6.1.* (semver) Unaffected: 6.6.151 , ≤ 6.6.* (semver) Unaffected: 6.12.103 , ≤ 6.12.* (semver) Unaffected: 6.18.44 , ≤ 6.18.* (semver) Unaffected: 7.1.8 , ≤ 7.1.* (semver) Unaffected: 7.2 , ≤ * (original_commit_for_fix) |
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"fs/binfmt_misc.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "96bd5d4fea2970b9b08265293ca7a10b9b27c0fd",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "9970e094e5d60f0d66914bf9a97d1ef19107ebf5",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "b29e3c1f375c1296362d219ff38bceddf2d2a88a",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "1819f82dee766c58295ecaacdac02cdf6837d7a4",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "1853e95c9bfe69ef1dd862b3f551e68f4a1b76cc",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "840bb9c49c3e75fb32b593d67ab32f6b77122262",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "9a2d87db3898b5993b64fd258d0334e0eba9ee0d",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "8e85d50ba1117fd446bf9a250bd8a97d48384bdc",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"fs/binfmt_misc.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "2.6.12"
},
{
"lessThan": "2.6.12",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.265",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.216",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.183",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.151",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.103",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.44",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.8",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.265",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.216",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.183",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.151",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.103",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.44",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.8",
"versionStartIncluding": "2.6.12",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "2.6.12",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nbinfmt_misc: reject a flag character as the field delimiter\n\nThe registration string starts with a user chosen delimiter that\nseparates the individual fields. So that the field parsers terminate\neven on a truncated string create_entry() pads the buffer with that\nsame delimiter:\n\n\tmemset(buf + count, del, 8);\n\nMost fields are scanned for the delimiter with strchr()/scanarg() and\nhappily stop on the padding. The flags field is different: instead of\nscanning for the delimiter check_special_flags() consumes the flag\ncharacters \u0027P\u0027, \u0027O\u0027, \u0027C\u0027 and \u0027F\u0027 and stops at the first byte that is\nnone of them, relying on the trailing delimiter to end the scan.\n\nIf the delimiter is itself a flag character the padding no longer acts\nas a terminator. The scan swallows all eight padding bytes and keeps\nreading past the end of the allocation until it hits a byte that is\nnot a flag character. For example registering\n\n\tPaPEPPxPPiP\n\nwith \u0027P\u0027 as the delimiter (name \"a\", type extension, magic \"x\",\ninterpreter \"i\", empty flags) leaves the flag scan running off the end\nof the buffer. The registration is rejected in the end because the\nparser does not stop exactly at buf + count, but only after the out of\nbounds read has already happened. With an unlucky allocation layout the\nscan can walk into an unmapped page; under KASAN it is reported as a\nslab out of bounds read. binfmt_misc mounts are available to\nunprivileged users in a user namespace so the read is reachable without\nprivileges.\n\nReject a delimiter that is one of the flag characters up front. Such a\nregistration was always rejected anyway, only after the out of bounds\nread, so no valid registration string changes meaning."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 7.1,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - Exploitation requires a local write() to binfmt_misc/register via bm_register_write()-\u003ecreate_entry(); the path is a VFS syscall on a mounted filesystem, not any network protocol or remote packet handler.\nAC:L - An attacker fully controls the registration string and can deterministically choose delimiter P/O/C/F with empty flags so check_special_flags() consumes padding and reads past the kmalloc buffer on every attempt; no race or victim-specific state is required.\nPR:L - binfmt_misc has FS_USERNS_MOUNT; an unprivileged local user can unshare a user namespace, mount binfmt_misc, and write register without init-namespace root, matching the fix commit\u0027s stated unprivileged reachability.\nUI:N - Triggering is entirely attacker-driven through mounting binfmt_misc and writing a crafted registration string; no victim must open files, click links, or perform any interactive action beyond the attacker\u0027s own syscalls.\nS:U - The slab out-of-bounds read and any disclosed kernel data remain within the host kernel security authority; this is standard local kernel memory access, not a VM escape, IOMMU bypass, or sandbox boundary crossing.\nC:H - check_special_flags() scans past buf+count+8 through adjacent kmalloc/slab memory until a non-P/O/C/F byte, a classic out-of-bounds read that can disclose kernel pointers and other sensitive heap contents for KASLR defeat.\nI:N - The defect is read-only: check_special_flags() only dereferences bytes beyond the allocation and sets flags on the soon-freed Node; it performs no out-of-bounds write, metadata corruption, or control-flow hijack primitive.\nA:H - The unbounded flag scan can walk into an unmapped page and fault the kernel; KASAN reports slab-out-of-bounds, and the single write() to register is trivially repeatable for denial-of-service."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-19T16:37:40.898Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/96bd5d4fea2970b9b08265293ca7a10b9b27c0fd"
},
{
"url": "https://git.kernel.org/stable/c/9970e094e5d60f0d66914bf9a97d1ef19107ebf5"
},
{
"url": "https://git.kernel.org/stable/c/b29e3c1f375c1296362d219ff38bceddf2d2a88a"
},
{
"url": "https://git.kernel.org/stable/c/1819f82dee766c58295ecaacdac02cdf6837d7a4"
},
{
"url": "https://git.kernel.org/stable/c/1853e95c9bfe69ef1dd862b3f551e68f4a1b76cc"
},
{
"url": "https://git.kernel.org/stable/c/840bb9c49c3e75fb32b593d67ab32f6b77122262"
},
{
"url": "https://git.kernel.org/stable/c/9a2d87db3898b5993b64fd258d0334e0eba9ee0d"
},
{
"url": "https://git.kernel.org/stable/c/8e85d50ba1117fd446bf9a250bd8a97d48384bdc"
}
],
"title": "binfmt_misc: reject a flag character as the field delimiter",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-74485",
"datePublished": "2026-08-15T12:27:16.980Z",
"dateReserved": "2026-08-15T05:44:03.905Z",
"dateUpdated": "2026-08-19T16:37:40.898Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
Loading…
Trend slope:
-
(linear fit over daily sighting counts)
Show additional events:
Loading…
Experimental. This forecast is provided for visualization only and may change without notice. Do not use it for operational decisions.
Forecast uses a logistic model when the trend is rising, or an exponential decay model when the trend is falling. Fitted via linearized least squares.
Sightings
| Author | Source | Type | Date | Other |
|---|
Nomenclature
- Seen: The vulnerability was mentioned, discussed, or observed by the user.
- Confirmed: The vulnerability has been validated from an analyst's perspective.
- Published Proof of Concept: A public proof of concept is available for this vulnerability.
- Exploited: The vulnerability was observed as exploited by the user who reported the sighting.
- Patched: The vulnerability was observed as successfully patched by the user who reported the sighting.
- Not exploited: The vulnerability was not observed as exploited by the user who reported the sighting.
- Not confirmed: The user expressed doubt about the validity of the vulnerability.
- Not patched: The vulnerability was not observed as successfully patched by the user who reported the sighting.
Loading…
The MITRE ATT&CK techniques below are AI-generated suggestions, inferred from the description of the
vulnerability by the CIRCL/vulnerability-attack-technique-classification-roberta-base
model, served locally by ML-Gateway.
They have not been verified by an analyst and are provided for guidance only.
The approach is described in our paper Mapping CVEs to MITRE ATT&CK Techniques: A Curated Gold-Set Classifier and the Limits of LLM-Assisted Label Expansion.
The approach is described in our paper Mapping CVEs to MITRE ATT&CK Techniques: A Curated Gold-Set Classifier and the Limits of LLM-Assisted Label Expansion.
Loading…
Loading…