net/sched: hhf: clamp quantum in change and init paths
- 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: hhf: clamp quantum in change and init paths hhf_change() accepts any quantum from userspace, including 1. With a crafted size table qdisc_pkt_len reaches ~2 GiB, so quantum=1 makes the deficit-refill loop spin ~2^31 times under the qdisc lock (a soft lockup / denial of service). Add max(256U, ...) in hhf_change() matching fq_codel_change(). Clamp hhf_init() to [256, 1<<20] matching the siblings, and remove the old fallback that only set quantum=256 on overflow. Conditions to recreate the bug: CONFIG_NET_SCH_HHF=y. Requires CAP_NET_ADMIN (namespace-local via unshare -Urn suffices). tc qdisc add dev dummy0 root hhf tc qdisc change dev dummy0 root hhf quantum 1 stab data 32768 size_log 15 cell_log 0
Timeline
- CVE published
- Record last updated
Affected versions
- Linux Linux
From 10239edf86f137ce4c39b62ea9575e8053c549a0 · fixed in a328698d046098e6f55b3b1460cac6bab577be58; From 10239edf86f137ce4c39b62ea9575e8053c549a0 · fixed in c364ad3ab3c8a6bce469a5cbf02881ab1324c5da; From 10239edf86f137ce4c39b62ea9575e8053c549a0 · fixed in 2c6dd9fc86d446a03728c43f3b96d9ae29aa058f; From 10239edf86f137ce4c39b62ea9575e8053c549a0 · fixed in 6570f326a6a96bedf3d1d1dab6acc9f8c29104ec; From 10239edf86f137ce4c39b62ea9575e8053c549a0 · fixed in 1113b674307ffddd402524bd1fd9d7d5629b705b; From 10239edf86f137ce4c39b62ea9575e8053c549a0 · fixed in 2e77947bbf6c166e76c038663832d0914418f761; From 10239edf86f137ce4c39b62ea9575e8053c549a0 · fixed in 0898c6f9fa9ce2632ae88bd0f34a878ccc6335af; From 10239edf86f137ce4c39b62ea9575e8053c549a0 · fixed in eb56a495f59baf6cad5ed80e3ffb9078098b1346
- Linux Linux
3.14
- KernelLinux
From 3.14.0 · 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/a328698d046098e6f55b3b1460cac6bab577be58
- stable/c/c364ad3ab3c8a6bce469a5cbf02881ab1324c5da
- stable/c/2c6dd9fc86d446a03728c43f3b96d9ae29aa058f
- stable/c/6570f326a6a96bedf3d1d1dab6acc9f8c29104ec
- stable/c/1113b674307ffddd402524bd1fd9d7d5629b705b
- stable/c/2e77947bbf6c166e76c038663832d0914418f761
- stable/c/0898c6f9fa9ce2632ae88bd0f34a878ccc6335af
- stable/c/eb56a495f59baf6cad5ed80e3ffb9078098b1346