Description
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 products
Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.
Linux Linux
Default version status: unaffected
13d2a1d2b032de08d7dcab6a1edcd47802681f96 to < e2297bbf9cf6ece86f1d1f8c683517a994990f9eaffected13d2a1d2b032de08d7dcab6a1edcd47802681f96 to < 560794ee6e040b6e1c4ac2b3c8909f341a4596eeaffected13d2a1d2b032de08d7dcab6a1edcd47802681f96 to < 23fea7e6736b2e1c6f6f2f05cccf33d36834da73affected13d2a1d2b032de08d7dcab6a1edcd47802681f96 to < b464affe9f9dfe41ac48930c376e3fb8596651b0affected13d2a1d2b032de08d7dcab6a1edcd47802681f96 to < dc8b374214ef5bba4882bbd95b361e42555cfc0daffected13d2a1d2b032de08d7dcab6a1edcd47802681f96 to < d43cded350fe1218493ad3d37a276aff14108ae6affected13d2a1d2b032de08d7dcab6a1edcd47802681f96 to < 8f756ae1c87414ce9cc21b30e6e4c036d6e9e80baffected13d2a1d2b032de08d7dcab6a1edcd47802681f96 to < 8382abec0f1568d0a5590d75a3df92f23fcf5196affected
Linux Linux
Default version status: affected
2.6.29affected0 to < 2.6.29unaffected5.10.271 to ≤ 5.10.*unaffected5.15.222 to ≤ 5.15.*unaffected6.1.189 to ≤ 6.1.*unaffected6.6.158 to ≤ 6.6.*unaffected6.12.111 to ≤ 6.12.*unaffected6.18.53 to ≤ 6.18.*unaffected7.2.7 to ≤ 7.2.*unaffected7.3 to ≤ *unaffected
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 ↗