net/sched: drr: clamp quantum in change class
- Published
- Last modified
- Where the record stands: published, rejected by its publisher, or superseded by another id.What do these mean? →
- published
- Whether CISA lists it in its Known Exploited Vulnerabilities catalog: proof that attackers are using it.What do these mean? →
- Not listed in CISA KEV
- Fix
- Fixed in 5.10.271, 5.15.222, 6.1.189, 6.6.158, 6.12.111, and 2 more
- Whether working attack code is public (Exploit-DB, Metasploit, Nuclei or GitHub). Public code makes attacks easier.What do these mean? →
- None on Exploit-DB, Metasploit or GitHub
Summary
In the Linux kernel, the following vulnerability has been resolved: net/sched: drr: clamp quantum in change class drr_change_class() rejects explicit quantum==0 but falls back to psched_mtu() with no floor. With a crafted size table qdisc_pkt_len reaches ~2 GiB, so quantum=1 (or a zero psched_mtu on a headerless device) makes the deficit-refill loop spin under the qdisc lock. Add clamp_t(u32, quantum, 256, 1<<20) after the zero reject and on the fallback path. The explicit-zero reject is preserved. Conditions to recreate the bug: CONFIG_NET_SCH_DRR=y. Requires CAP_NET_ADMIN (namespace-local via unshare -Urn suffices). tc qdisc add dev dummy0 root drr tc class add dev dummy0 parent 1: classid 1:1 drr quantum 1
Timeline
- CVE published
- Record last updated
Affected versions
- Linux Linux
From 13d2a1d2b032de08d7dcab6a1edcd47802681f96 · fixed in e2297bbf9cf6ece86f1d1f8c683517a994990f9e; From 13d2a1d2b032de08d7dcab6a1edcd47802681f96 · fixed in 560794ee6e040b6e1c4ac2b3c8909f341a4596ee; From 13d2a1d2b032de08d7dcab6a1edcd47802681f96 · fixed in 23fea7e6736b2e1c6f6f2f05cccf33d36834da73; From 13d2a1d2b032de08d7dcab6a1edcd47802681f96 · fixed in b464affe9f9dfe41ac48930c376e3fb8596651b0; From 13d2a1d2b032de08d7dcab6a1edcd47802681f96 · fixed in dc8b374214ef5bba4882bbd95b361e42555cfc0d; From 13d2a1d2b032de08d7dcab6a1edcd47802681f96 · fixed in d43cded350fe1218493ad3d37a276aff14108ae6; From 13d2a1d2b032de08d7dcab6a1edcd47802681f96 · fixed in 8f756ae1c87414ce9cc21b30e6e4c036d6e9e80b; From 13d2a1d2b032de08d7dcab6a1edcd47802681f96 · fixed in 8382abec0f1568d0a5590d75a3df92f23fcf5196
- Linux Linux
2.6.29
- KernelLinux
From 2.6.29 · fixed in 5.10.271; From 5.11.0 · fixed in 5.15.222; From 5.16.0 · fixed in 6.1.189; From 6.2.0 · fixed in 6.6.158; From 6.7.0 · fixed in 6.12.111; From 6.13.0 · fixed in 6.18.53; From 6.19.0 · fixed in 7.2.7
References 8
git.kernel.org
- stable/c/e2297bbf9cf6ece86f1d1f8c683517a994990f9e
- stable/c/560794ee6e040b6e1c4ac2b3c8909f341a4596ee
- stable/c/23fea7e6736b2e1c6f6f2f05cccf33d36834da73
- stable/c/b464affe9f9dfe41ac48930c376e3fb8596651b0
- stable/c/dc8b374214ef5bba4882bbd95b361e42555cfc0d
- stable/c/d43cded350fe1218493ad3d37a276aff14108ae6
- stable/c/8f756ae1c87414ce9cc21b30e6e4c036d6e9e80b
- stable/c/8382abec0f1568d0a5590d75a3df92f23fcf5196