{"id":41275,"date":"2026-10-19T00:32:57","date_gmt":"2026-10-18T16:32:57","guid":{"rendered":"https:\/\/www.54iter.cn\/?vuln=cve-2026-98803"},"modified":"2026-10-19T00:32:57","modified_gmt":"2026-10-18T16:32:57","slug":"cve-2026-98803","status":"publish","type":"vuln","link":"https:\/\/www.54iter.cn\/?vuln=cve-2026-98803","title":{"rendered":"CVE-2026-98803 &#8211; In the Linux kernel, the following vulnerability has been resolved:\n\nnet: stmmac: fix rx S"},"content":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>net: stmmac: fix rx Scatter-Gather support<\/p>\n<p>When a received frame is larger than dma_buf_sz, the DMA scatters it<br \/>\nacross multiple RX descriptors (rx Scatter-Gather). The secondary RX<br \/>\nbuffer (sec_page) was only allocated and programmed when split-header<br \/>\n(SPH) was active, so for regular frames buffer2 was neither allocated<br \/>\nnor backed by a valid mapping. As soon as an incoming frame overflowed<br \/>\nbuffer1, the DMA wrote the overflow into the unmapped secondary-buffer<br \/>\naddress, triggering an SMMU translation fault on IOMMU-based platforms:<\/p>\n<p>arm-smmu 15000000.iommu: Unhandled context fault: fsr=0x402, iova=0x00000000, fsynr=0x7f0011, cbfrsynra=0x1c90, cb=11<br \/>\narm-smmu 15000000.iommu: FSR    = 00000402 [Format=2 TF], SID=0x1c90<br \/>\narm-smmu 15000000.iommu: FSYNR0 = 007f0011 [S1CBNDX=127 WNR PLVL=1]<\/p>\n<p>Enable scatter-gather for non-SPH frames on cores that can program an<br \/>\nindependent secondary RX buffer (GMAC4\/XGMAC): allocate and mark buffer2<br \/>\nas valid in stmmac_init_rx_buffers() and stmmac_rx_refill(), and account<br \/>\nfor it in the buffer length computation. Legacy cores have no set_sec_addr<br \/>\nop, so they keep buffer2 disabled.<\/p>\n<p>Since buffer2 is handed to the DMA at page offset 0, the page pool sync<br \/>\nwindow is widened to cover both buffers in every mode: offset is set to 0<br \/>\nand max_len to dma_buf_sz + stmmac_rx_offset().<\/p>\n<p>The FCS can straddle the buffer1\/buffer2 boundary and a descriptor<br \/>\nboundary, so it is now stripped from the tail of the assembled frame with<br \/>\npskb_trim() instead of from a single buffer, avoiding an unsigned underflow<br \/>\nfor frames that overflow a buffer by 1..3 bytes. For single-buffer frames<br \/>\nthe XDP program must not see the FCS, so it is removed from the XDP buffer<br \/>\nbefore the program runs.<\/p>\n<p>Native XDP currently only supports single-buffer (linear) frames. An<br \/>\noversized frame accepted by the MAC (jumbo enabled) is received via<br \/>\nbuffer2; the XDP program only sees buffer1, so on a TX\/REDIRECT verdict<br \/>\nthe frame is forwarded truncated. XDP multi-buffer support to handle<br \/>\nthis case is planned as a follow-up.<\/p>\n<p>AF_XDP zero-copy RX is not covered by this change: a ZC queue still<br \/>\nprograms buffer2 at DMA address 0 (and XGMAC has no buffer2-valid bit),<br \/>\nso an oversized frame overflowing buffer1 can still trigger the same<br \/>\nSMMU translation fault. Handling is planned as a follow-up.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>net: stmmac: fix rx Scatter-Gather support<\/p>\n<p>When a received frame is larger than dma_buf_sz, the DMA scatters it<br \/>\nacross multiple RX<\/p>\n","protected":false},"template":"","meta":[],"categories":[],"tags":[],"class_list":["post-41275","vuln","type-vuln","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln\/41275","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=41275"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=41275"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=41275"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}