CVE-2026-74739

Summary

In the Linux kernel, the following vulnerability has been resolved:

net/sched: cls_u32: skip hash tables in u32_bind_class()

u32_walk() enumerates both struct tc_u_hnode and struct tc_u_knode through the walker callback. u32_bind_class() unconditionally casts the passed fh to tc_u_knode and accesses &n->res, so when fh is actually a tc_u_hnode, which has no tcf_result member, this results in a slab-out-of-bounds read of res->classid in tc_cls_bind_class().

The issue can be reproduced with the following commands:

tc qdisc add dev lo root handle 1: hfsc
tc class add dev lo parent 1: classid 1:1 hfsc sc rate 1000kbit
tc filter add dev lo parent 1:1 protocol ip prio 1 u32 match u32 0 0 flowid 1:1
tc class add dev lo parent 1: classid 1:2 hfsc sc rate 2000kbit

Fix this by skipping hash tables via the TC_U32_KEY(handle) check.

Affected Software

VendorProductVersion RangeStatus
LinuxLinux07d79fc7d94e3f884b8b1c95aa615b202bb5e4c1 < ec5f3005586a785689fd568361b0c5925cb1548baffected
LinuxLinux07d79fc7d94e3f884b8b1c95aa615b202bb5e4c1 < 19d114b93c94bdef70496f26685c2a6b242f41b3affected
LinuxLinux07d79fc7d94e3f884b8b1c95aa615b202bb5e4c1 < 594a064d603202b9ee21e07679d854e5c1750cc4affected
LinuxLinux07d79fc7d94e3f884b8b1c95aa615b202bb5e4c1 < 31f26a95eeee926946809ac456c61a3217936a62affected
LinuxLinux07d79fc7d94e3f884b8b1c95aa615b202bb5e4c1 < e71f8e9ed6f311410b14741f6012afe01869c0faaffected
LinuxLinux07d79fc7d94e3f884b8b1c95aa615b202bb5e4c1 < 6d3724e616faf952c3adcf8414fc21a828ef3709affected
LinuxLinux4.14affected
LinuxLinux0 < 4.14unaffected
LinuxLinux6.1.184 <= 6.1.*unaffected
LinuxLinux6.6.153 <= 6.6.*unaffected
LinuxLinux6.12.105 <= 6.12.*unaffected
LinuxLinux6.18.46 <= 6.18.*unaffected
LinuxLinux7.1.10 <= 7.1.*unaffected
LinuxLinux7.2 <= *unaffected

Weaknesses

References