CRITICAL
net/ti ZeroCoopy InfoLeak
CVE-2026-43039
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
KernelScan AI9.8CRITICAL
01Description
In the Linux kernel, the following vulnerability has been resolved: net: ti: icssg-prueth: fix missing data copy and wrong recycle in ZC RX dispatch emac_dispatch_skb_zc() allocates a new skb via napi_alloc_skb() but never copies the packet data from the XDP buffer into it. The skb is passed up the stack containing uninitialized heap memory instead of the actual received packet, leaking kernel heap contents to userspace. Copy the received packet data from the XDP buffer into the skb using skb_copy_to_linear_data(). Additionally, remove the skb_mark_for_recycle() call since the skb is backed by the NAPI page frag allocator, not page_pool. Marking a non-page_pool skb for recycle causes the free path to return pages to a page_pool that does not own them, corrupting page_pool state. The non-ZC path (emac_rx_packet) does not have these issues because it uses napi_build_skb() to wrap the existing page_pool page directly, requiring no copy, and correctly marks for recycle since the page comes from page_pool_dev_alloc_pages().
02KernelScan AI Analysis
Risk summary
Network-reachable vulnerability in TI ICSSG PRU Ethernet driver's AF_XDP zero-copy receive path. Uninitialized kernel heap memory is leaked to userspace through received network packets, potentially exposing sensitive kernel data. Additionally, incorrect page recycling corrupts kernel page_pool state, which can lead to memory corruption, use-after-free conditions, or kernel panics.
Vulnerability analysis
The root cause is in emac_dispatch_skb_zc() which allocates a new skb via napi_alloc_skb() but fails to copy packet data from the XDP buffer into it. The skb is passed up the network stack containing uninitialized heap memory instead of the actual received packet, leaking kernel heap contents to userspace. Separately, the function incorrectly calls skb_mark_for_recycle() on an skb backed by the NAPI page frag allocator rather than page_pool; when freed, the page is returned to a page_pool that does not own it, corrupting allocator state and potentially causing further memory corruption or crashes. The vulnerability is network-reachable as it affects packet reception in the Ethernet driver's zero-copy RX path, exploitable by sending network packets to the affected interface when AF_XDP zero-copy is enabled.
03Fix Versions
| Branch | Fixed in | Patch commit |
|---|---|---|
| 6.19 | 6.19.12 | a968438d4fc1 |
| mainline | 7.0 | 5597dd284ff8 |