Description (CNA)
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
Affected (CNA)
| Vendor / product | Versions |
|---|---|
| Linux / Linux | affected 13d2a1d2b032de08d7dcab6a1edcd47802681f96 before e2297bbf9cf6ece86f1d1f8c683517a994990f9e; affected 13d2a1d2b032de08d7dcab6a1edcd47802681f96 before 560794ee6e040b6e1c4ac2b3c8909f341a4596ee; affected 13d2a1d2b032de08d7dcab6a1edcd47802681f96 before 23fea7e6736b2e1c6f6f2f05cccf33d36834da73; affected 13d2a1d2b032de08d7dcab6a1edcd47802681f96 before b464affe9f9dfe41ac48930c376e3fb8596651b0; affected 13d2a1d2b032de08d7dcab6a1edcd47802681f96 before dc8b374214ef5bba4882bbd95b361e42555cfc0d; affected 13d2a1d2b032de08d7dcab6a1edcd47802681f96 before d43cded350fe1218493ad3d37a276aff14108ae6; affected 13d2a1d2b032de08d7dcab6a1edcd47802681f96 before 8f756ae1c87414ce9cc21b30e6e4c036d6e9e80b; affected 13d2a1d2b032de08d7dcab6a1edcd47802681f96 before 8382abec0f1568d0a5590d75a3df92f23fcf5196 |
| Linux / Linux | affected 2.6.29; unaffected 0 before 2.6.29; unaffected 5.10.271 through 5.10.*; unaffected 5.15.222 through 5.15.*; unaffected 6.1.189 through 6.1.*; unaffected 6.6.158 through 6.6.*; unaffected 6.12.111 through 6.12.*; unaffected 6.18.53 through 6.18.*; unaffected 7.2.7 through 7.2.*; unaffected 7.3 through * |
CWE
No CWE identifiers supplied.
References
- https://git.kernel.org/stable/c/e2297bbf9cf6ece86f1d1f8c683517a994990f9e
- https://git.kernel.org/stable/c/560794ee6e040b6e1c4ac2b3c8909f341a4596ee
- https://git.kernel.org/stable/c/23fea7e6736b2e1c6f6f2f05cccf33d36834da73
- https://git.kernel.org/stable/c/b464affe9f9dfe41ac48930c376e3fb8596651b0
- https://git.kernel.org/stable/c/dc8b374214ef5bba4882bbd95b361e42555cfc0d
- https://git.kernel.org/stable/c/d43cded350fe1218493ad3d37a276aff14108ae6
- https://git.kernel.org/stable/c/8f756ae1c87414ce9cc21b30e6e4c036d6e9e80b
- https://git.kernel.org/stable/c/8382abec0f1568d0a5590d75a3df92f23fcf5196