{"id":41299,"date":"2026-10-19T00:33:05","date_gmt":"2026-10-18T16:33:05","guid":{"rendered":"https:\/\/www.54iter.cn\/?vuln=cve-2026-98827"},"modified":"2026-10-19T00:33:05","modified_gmt":"2026-10-18T16:33:05","slug":"cve-2026-98827","status":"publish","type":"vuln","link":"https:\/\/www.54iter.cn\/?vuln=cve-2026-98827","title":{"rendered":"CVE-2026-98827 &#8211; In the Linux kernel, the following vulnerability has been resolved:\n\nwifi: ath9k_htc: boun"},"content":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>wifi: ath9k_htc: bound TX aggregation to MAX_TX_BUF_SIZE<\/p>\n<p>__hif_usb_tx() dequeues up to MAX_TX_AGGR_NUM (20) frames into a<br \/>\nsingle tx_buf of MAX_TX_BUF_SIZE (32768) bytes, limiting the batch<br \/>\nby record count but never by cumulative byte length.<\/p>\n<p>With large frames (MTU 2304), 20 aggregated frames of 2292 bytes<br \/>\neach exceed the allocation (20 * 2296 = 45920 bytes), so the<br \/>\nmemcpy() in the loop writes up to 13152 bytes past tx_buf-&gt;buf<br \/>\nbefore usb_submit_urb().<\/p>\n<p>Peek the queue head and stop before copying any record that would<br \/>\ncross MAX_TX_BUF_SIZE, then dispatch the current batch. Leftover<br \/>\nskbs remain queued and are drained on the next URB completion.<\/p>\n<p>The byte bound changes the loop&#8217;s exit semantics: it can now exit<br \/>\nbefore i == tx_skb_cnt &#8211; 1. Stock only finalized tx_buf-&gt;len on<br \/>\nthat last index (len += offset), so an early break would submit a<br \/>\nURB holding only the last record&#8217;s length while every dequeued skb<br \/>\nis freed on completion, silently dropping frames. Make tx_buf-&gt;len<br \/>\na running total and advance tx_buf-&gt;offset per record instead; the<br \/>\nstride round_up(nskb-&gt;len + 4, 4) is identical to the stock stride<br \/>\nwhen the loop runs to completion.<\/p>\n<p>Tested on hardware with an MTU 2304 flood: the loop stops at<br \/>\nrecord 15 (len = 32144, offset = 32144, within 32768), no<br \/>\noversized URB is submitted, and MTU 1500 pings pass 20\/20.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>wifi: ath9k_htc: bound TX aggregation to MAX_TX_BUF_SIZE<\/p>\n<p>__hif_usb_tx() dequeues up to MAX_TX_AGGR_NUM (20) frames into a<br \/>\nsingle t<\/p>\n","protected":false},"template":"","meta":[],"categories":[],"tags":[],"class_list":["post-41299","vuln","type-vuln","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln\/41299","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=41299"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=41299"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=41299"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}