{ "dataType": "CVE_RECORD", "dataVersion": "5.2", "cveMetadata": { "cveId": "CVE-2026-74739", "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67", "state": "PUBLISHED", "assignerShortName": "Linux", "dateReserved": "2026-08-15T05:44:03.930Z", "datePublished": "2026-08-26T14:36:51.746Z", "dateUpdated": "2026-10-16T19:16:12.856Z" }, "containers": { "cna": { "providerMetadata": { "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67", "shortName": "Linux", "dateUpdated": "2026-08-27T05:01:00.695Z" }, "descriptions": [ { "lang": "en", "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnet/sched: cls_u32: skip hash tables in u32_bind_class()\n\nu32_walk() enumerates both struct tc_u_hnode and struct tc_u_knode\nthrough the walker callback. u32_bind_class() unconditionally casts the\npassed fh to tc_u_knode and accesses &n->res, so when fh is actually a\ntc_u_hnode, which has no tcf_result member, this results in a\nslab-out-of-bounds read of res->classid in tc_cls_bind_class().\n\nThe issue can be reproduced with the following commands:\n\n tc qdisc add dev lo root handle 1: hfsc\n tc class add dev lo parent 1: classid 1:1 hfsc sc rate 1000kbit\n tc filter add dev lo parent 1:1 protocol ip prio 1 u32 match u32 0 0 flowid 1:1\n tc class add dev lo parent 1: classid 1:2 hfsc sc rate 2000kbit\n\nFix this by skipping hash tables via the TC_U32_KEY(handle) check." } ], "metrics": [ { "cvssV3_1": { "version": "3.1", "vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H", "baseScore": 7.8, "baseSeverity": "HIGH" }, "scenarios": [ { "lang": "en", "value": "AV:L - The bug is reached only via RTM_NEWTCLASS rtnetlink (tc class add) in __tc_ctl_tclass(), which calls tc_bind_tclass() to walk u32 filters; per kernel CNA guidance, tc/qdisc/netlink classifier configuration is Local, not remotely reachable by packets.\nAC:L - The reproducer is deterministic: install a u32 filter with flowid, then add another tc class so reverse binding walks hash nodes; the attacker controls every netlink step and needs no race or uncontrollable victim state.\nPR:L - RTM_NEWTCLASS requires CAP_NET_ADMIN enforced by netlink_net_capable() in rtnetlink; this capability is obtainable by unprivileged users in a user+network namespace (unshare -Urn) or containers granted NET_ADMIN, not init-namespace root only.\nUI:N - Exploitation requires only the attacker's own tc/netlink operations (qdisc, filter, class add) inside a namespace they control; no separate victim action such as opening files or mounting media is needed.\nS:U - Impact is kernel slab memory read and possible adjacent-slab corruption during tc class binding within the same host kernel; this is standard local kernel compromise, not VM escape, IOMMU bypass, or another cross-authority boundary.\nC:H - u32_bind_class() casts tc_u_hnode to tc_u_knode and reads &n->res.classid past the hnode allocation in tc_cls_bind_class(); per CNA guidance, slab out-of-bounds reads of kernel memory warrant High confidentiality impact.\nI:H - If the out-of-bounds classid read matches the newly created class, tc_cls_bind_class() calls __tcf_bind_filter(), which xchg-writes to &r->class at the bogus offset, enabling adjacent slab corruption and potential control-flow hijack per memory-corruption guidance.\nA:H - The slab out-of-bounds access is reported as a KASAN violation on trigger, and mistaken reverse binding can corrupt adjacent kernel objects leading to oops/panic during later tc operations; per CNA guidance, kernel crashes and memory corruption score Availability High." } ] } ], "affected": [ { "product": "Linux", "vendor": "Linux", "defaultStatus": "unaffected", "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git", "programFiles": [ "net/sched/cls_u32.c" ], "versions": [ { "version": "07d79fc7d94e3f884b8b1c95aa615b202bb5e4c1", "lessThan": "ec5f3005586a785689fd568361b0c5925cb1548b", "status": "affected", "versionType": "git" }, { "version": "07d79fc7d94e3f884b8b1c95aa615b202bb5e4c1", "lessThan": "19d114b93c94bdef70496f26685c2a6b242f41b3", "status": "affected", "versionType": "git" }, { "version": "07d79fc7d94e3f884b8b1c95aa615b202bb5e4c1", "lessThan": "594a064d603202b9ee21e07679d854e5c1750cc4", "status": "affected", "versionType": "git" }, { "version": "07d79fc7d94e3f884b8b1c95aa615b202bb5e4c1", "lessThan": "31f26a95eeee926946809ac456c61a3217936a62", "status": "affected", "versionType": "git" }, { "version": "07d79fc7d94e3f884b8b1c95aa615b202bb5e4c1", "lessThan": "e71f8e9ed6f311410b14741f6012afe01869c0fa", "status": "affected", "versionType": "git" }, { "version": "07d79fc7d94e3f884b8b1c95aa615b202bb5e4c1", "lessThan": "6d3724e616faf952c3adcf8414fc21a828ef3709", "status": "affected", "versionType": "git" } ] }, { "product": "Linux", "vendor": "Linux", "defaultStatus": "affected", "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git", "programFiles": [ "net/sched/cls_u32.c" ], "versions": [ { "version": "4.14", "status": "affected" }, { "version": "0", "lessThan": "4.14", "status": "unaffected", "versionType": "semver" }, { "version": "6.1.184", "lessThanOrEqual": "6.1.*", "status": "unaffected", "versionType": "semver" }, { "version": "6.6.153", "lessThanOrEqual": "6.6.*", "status": "unaffected", "versionType": "semver" }, { "version": "6.12.105", "lessThanOrEqual": "6.12.*", "status": "unaffected", "versionType": "semver" }, { "version": "6.18.46", "lessThanOrEqual": "6.18.*", "status": "unaffected", "versionType": "semver" }, { "version": "7.1.10", "lessThanOrEqual": "7.1.*", "status": "unaffected", "versionType": "semver" }, { "version": "7.2", "lessThanOrEqual": "*", "status": "unaffected", "versionType": "original_commit_for_fix" } ] } ], "cpeApplicability": [ { "nodes": [ { "operator": "OR", "negate": false, "cpeMatch": [ { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "4.14", "versionEndExcluding": "6.1.184" }, { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "4.14", "versionEndExcluding": "6.6.153" }, { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "4.14", "versionEndExcluding": "6.12.105" }, { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "4.14", "versionEndExcluding": "6.18.46" }, { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "4.14", "versionEndExcluding": "7.1.10" }, { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "4.14", "versionEndExcluding": "7.2" } ] } ] } ], "references": [ { "url": "https://git.kernel.org/stable/c/ec5f3005586a785689fd568361b0c5925cb1548b" }, { "url": "https://git.kernel.org/stable/c/19d114b93c94bdef70496f26685c2a6b242f41b3" }, { "url": "https://git.kernel.org/stable/c/594a064d603202b9ee21e07679d854e5c1750cc4" }, { "url": "https://git.kernel.org/stable/c/31f26a95eeee926946809ac456c61a3217936a62" }, { "url": "https://git.kernel.org/stable/c/e71f8e9ed6f311410b14741f6012afe01869c0fa" }, { "url": "https://git.kernel.org/stable/c/6d3724e616faf952c3adcf8414fc21a828ef3709" } ], "title": "net/sched: cls_u32: skip hash tables in u32_bind_class()", "x_generator": { "engine": "bippy-1.2.0" } }, "adp": [ { "metrics": [ { "other": { "type": "ssvc", "content": { "id": "CVE-2026-74739", "role": "CISA Coordinator", "options": [ { "Exploitation": "none" }, { "Automatable": "no" }, { "Technical Impact": "total" } ], "version": "2.0.3", "timestamp": "2026-10-16T19:15:59.810780Z" } } } ], "title": "CISA ADP Vulnrichment", "providerMetadata": { "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0", "shortName": "CISA-ADP", "dateUpdated": "2026-10-16T19:16:12.856Z" } } ] } }