CVE-2026-99055: tcp: reject net_iov in zerocopy receive mapping hints
In the Linux kernel, the following vulnerability has been resolved:
tcp: reject netiov in zerocopy receive mapping hints
After copying a readable prefix, receivefallbacktocopy() asks tcpzerocopysethintforskb() where page mapping can resume. If the next skb is unreadable, findnextmappablefrag() passes its netiov fragment to canmapfrag().
skbfragpage() returns NULL for a netiov, but canmapfrag() dereferences it in PageCompound(). A v7.2 KASAN run on a connected TCP socket with 64 readable bytes followed by a 4096-byte NETIOVDMABUF fragment reported:
BUG: KASAN: null-ptr-deref in canmapfrag tcpzerocopyreceive -> canmapfrag Kernel panic - not syncing: KASAN: paniconwarn set
The diagnostic inserted the netiov directly because the test host has no devmem-capable NIC. Hardware end-to-end reachability remains untested and requires CONFIGNETDEVMEM plus a supported DMA-buf-bound RX queue.
Reject all netiov fragments before skbfragpage(). This covers both DMABUF and IOURING netiov types while leaving page-backed checks unchanged. With the guard, the same queue copied the readable prefix, returned a 4096-byte skip hint, and completed without a fault.
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Compensating control
In tcp zerocopy receive mapping, reject all net_iov fragments before calling skb_frag_page(), including the can_map_frag path.