{"id":25518,"date":"2026-09-18T04:31:30","date_gmt":"2026-09-17T20:31:30","guid":{"rendered":"https:\/\/www.54iter.cn\/?vuln=cve-2026-90109"},"modified":"2026-09-18T04:31:30","modified_gmt":"2026-09-17T20:31:30","slug":"cve-2026-90109","status":"publish","type":"vuln","link":"https:\/\/www.54iter.cn\/?vuln=cve-2026-90109","title":{"rendered":"CVE-2026-90109 &#8211; In the Linux kernel, the following vulnerability has been resolved:\n\nnet: sched: fix 32-bi"},"content":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>net: sched: fix 32-bit backlog wrap in gred, bfifo and plug enqueue<\/p>\n<p>gred_enqueue(), bfifo_enqueue() and plug_enqueue() admit a packet when the<br \/>\ncurrent backlog plus the packet length fits within the queue limit:<\/p>\n<p>  sch-&gt;qstats.backlog + qdisc_pkt_len(skb) limit (gred default VQ)<br \/>\n  gred_backlog+qdisc_pkt_len(skb) limit  (gred configured VQ)<br \/>\n  sch-&gt;qstats.backlog + qdisc_pkt_len(skb) limit (bfifo)<br \/>\n  sch-&gt;qstats.backlog + skb-&gt;len limit             (plug)<\/p>\n<p>sch-&gt;qstats.backlog and q-&gt;backlog are u32, and qdisc_pkt_len()\/skb-&gt;len<br \/>\nare unsigned int, so all sums are computed in 32 bits and wrap at 2^32.<br \/>\nOnce the true backlog exceeds 4 GiB the wrapped sum becomes small and<br \/>\nadmission keeps succeeding, so the queue grows without bound and the kernel<br \/>\ncan be driven to OOM.<\/p>\n<p>Promote the sums to u64 so admission stops once the true backlog exceeds<br \/>\nthe limit.  The limit is u32, so the bounded queue stays below 2^32 and<br \/>\nthe stored u32 backlog never wraps.<\/p>\n<p>The bug can only be reproduced as root (albeit with ridiculous setup):<br \/>\n attach a gred (or bfifo\/plug) qdisc with a limit near 4 GiB,<br \/>\n leaving the default VQ unconfigured (for gred), and drive &gt;4 GiB of<br \/>\n queued traffic (e.g. via a size table \/ stab to inflate qdisc_pkt_len,<br \/>\n or sustained high-rate traffic). The u32 backlog+len sum wraps at 2^32,<br \/>\n admission keeps succeeding, and the queue grows unboundedly to OOM.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>net: sched: fix 32-bit backlog wrap in gred, bfifo and plug enqueue<\/p>\n<p>gred_enqueue(), bfifo_enqueue() and plug_enqueue() admit a pac<\/p>\n","protected":false},"template":"","meta":[],"categories":[],"tags":[],"class_list":["post-25518","vuln","type-vuln","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln\/25518","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=25518"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=25518"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=25518"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}