Skip to content
Not rated

CVE-2026-99284 net: skbuff: propagate shared-frag marker in skb_zerocopy()

Description

In the Linux kernel, the following vulnerability has been resolved: net: skbuff: propagate shared-frag marker in skb_zerocopy() skb_zerocopy() moves frag descriptors from @from into @to and takes a reference on each frag, but it does not copy skb_shinfo(from)->flags into skb_shinfo(to)->flags. A destination skb holding the same page-cache backed frags as the source therefore reports skb_has_shared_frag() as false. That breaks the invariant relied on by later in-place writers. ESP input checks skb_has_shared_frag() before deciding whether an uncloned nonlinear skb can skip skb_cow_data(); with the marker lost, an skb that skb_zerocopy() built for nfnetlink_queue or for an openvswitch upcall is decrypted in place, letting an unprivileged user write into the page cache of a root-owned read-only file. Propagate SKBFL_SHARED_FRAG when frag descriptors are copied, as done for the other frag-transfer helpers.

Affected products and versions

Product Affected versions Fixed in
Linux 7.4 earliest → < 7.4-rc1 7.4-rc1
Linux 7.3 earliest → < 7.3.2 7.3.2
Linux 7.2 earliest → < 7.2.15 7.2.15
Linux 6.18 earliest → < 6.18.61 6.18.61
Linux 3.14 No fix stated
The 18300 CVEs of Linux →
Track this CVE