{"id":29180,"date":"2026-09-25T20:32:04","date_gmt":"2026-09-25T12:32:04","guid":{"rendered":"https:\/\/www.54iter.cn\/?vuln=cve-2026-98025"},"modified":"2026-09-25T20:32:04","modified_gmt":"2026-09-25T12:32:04","slug":"cve-2026-98025","status":"publish","type":"vuln","link":"https:\/\/www.54iter.cn\/?vuln=cve-2026-98025","title":{"rendered":"CVE-2026-98025 &#8211; In the Linux kernel, the following vulnerability has been resolved:\n\nnet: usb: cx82310_eth"},"content":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>net: usb: cx82310_eth: drop URB after 0xffff reboot sentinel to prevent partial_data heap overflow<\/p>\n<p>The 0xffff length sentinel detects a router reboot and schedules<br \/>\nre-enabling of ethernet mode, but then falls through to the rest<br \/>\nof the loop body.  The next check is<\/p>\n<p>\t} else if (len &gt; CX82310_MTU) {<\/p>\n<p>which is the else of the just-matched if &#8212; it never fires for<br \/>\nlen == 0xffff.  The MTU bound that normally caps the<br \/>\nincomplete-packet save path is silently bypassed.<\/p>\n<p>With 0xffff &gt; skb-&gt;len always true (rx_urb_size is 4096), the<br \/>\nincomplete-packet branch saves dev-&gt;partial_len = skb-&gt;len bytes<br \/>\ninto dev-&gt;partial_data.  partial_data is kmalloc(hard_mtu) =<br \/>\nkmalloc(CX82310_MTU + 2) = 1516 bytes, but skb-&gt;len after the<br \/>\n2-byte header pull can be up to 4094.  A device that sends a<br \/>\n4096-byte URB starting with [0xff 0xff] therefore copies 4094<br \/>\ndevice-provided bytes into a buffer allocated for 1516 bytes,<br \/>\nexceeding its requested size by 2578 bytes.<\/p>\n<p>The next URB then reads dev-&gt;partial_len (4094) back from the same<br \/>\n1516-byte buffer and dev-&gt;partial_rem (65535 &#8211; 4094 = 61441) from<br \/>\nthe new URB&#8217;s ~4KB skb, both well past their allocations, and<br \/>\ndelivers the spliced result as a 64KB &#8220;frame&#8221; to the network<br \/>\nstack.<\/p>\n<p>Bail out of rx_fixup after scheduling the re-enable work; the<br \/>\nremainder of a reboot-marker URB is not meaningful packet data.<br \/>\nThis restores the invariant that partial_len &lt; CX82310_MTU + 2 on<br \/>\nthe save path, since every other route there has already passed<br \/>\nthe MTU check.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>net: usb: cx82310_eth: drop URB after 0xffff reboot sentinel to prevent partial_data heap overflow<\/p>\n<p>The 0xffff length sentinel dete<\/p>\n","protected":false},"template":"","meta":[],"categories":[],"tags":[],"class_list":["post-29180","vuln","type-vuln","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln\/29180","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=29180"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=29180"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=29180"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}