{"id":33303,"date":"2026-10-06T20:31:43","date_gmt":"2026-10-06T12:31:43","guid":{"rendered":"https:\/\/www.54iter.cn\/?vuln=cve-2026-98234"},"modified":"2026-10-06T20:31:43","modified_gmt":"2026-10-06T12:31:43","slug":"cve-2026-98234","status":"publish","type":"vuln","link":"https:\/\/www.54iter.cn\/?vuln=cve-2026-98234","title":{"rendered":"CVE-2026-98234 &#8211; In the Linux kernel, the following vulnerability has been resolved:\n\nnet\/sched: hhf: cap h"},"content":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>net\/sched: hhf: cap hh_flows_limit at change time<\/p>\n<p>hhf_change() stores TCA_HHF_HH_FLOWS_LIMIT with no upper bound. A huge<br \/>\nhh_flows_limit lets each new heavy-hitter flow pass the<br \/>\nhh_flows_current_cnt check in alloc_new_hh() and forces a fixed-size<br \/>\nkzalloc(GFP_ATOMIC) per flow under spoofed traffic, for unbounded memory<br \/>\ngrowth.<\/p>\n<p>Bound the attribute with NLA_POLICY_MAX() at 2*HH_FLOWS_CNT (the<br \/>\nhhf_init() default) and report the rejected value via extack. The<br \/>\ndeprecated nested parse is kept: legacy tc does not set NLA_F_NESTED on<br \/>\nTCA_OPTIONS. Configs relying on hh_limit above the default were relying<br \/>\non unbounded, unsafe behaviour and are not supported going forward.<\/p>\n<p>hhf_init() also ran hhf_change() before setting the default<br \/>\nhh_flows_limit, so a user-supplied hh_limit at add time was clobbered<br \/>\nback to 2048. Set the default before hhf_change() so the configured<br \/>\nvalue sticks.<\/p>\n<p>This is a follow-up to commit eb56a495f59b (&#8220;net\/sched: hhf: clamp<br \/>\nquantum in change and init paths&#8221;), which bounded the quantum of the<br \/>\nsame qdisc; the hh_flows_limit bound is the remaining unbounded knob of<br \/>\nthat series&#8217; scope.<\/p>\n<p>Conditions to recreate the bug: CAP_NET_ADMIN in a user namespace;<br \/>\ntc qdisc change dev X root hhf hh_limit 4294967295 succeeds and the<br \/>\nvalue is echoed by tc qdisc show, unbounding heavy-hitter flow<br \/>\nallocations; also tc qdisc add dev X root hhf hh_limit 500 stores 2048<br \/>\ninstead of 500.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>net\/sched: hhf: cap hh_flows_limit at change time<\/p>\n<p>hhf_change() stores TCA_HHF_HH_FLOWS_LIMIT with no upper bound. A huge<br \/>\nhh_flows_<\/p>\n","protected":false},"template":"","meta":[],"categories":[],"tags":[],"class_list":["post-33303","vuln","type-vuln","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln\/33303","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln"}],"about":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/types\/vuln"}],"wp:attachment":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=33303"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=33303"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=33303"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}