Linux Kernel Memory Corruption via Missing Shared-Frag Marker in skbuff (CVE-2026-46300)
Executive & SecOps Summary
SECOPS ASSESSMENTLinux kernel network stack (skbuff) and systems utilizing IPsec (ESP).
Local attackers can exploit the packet coalescing process to overwrite kernel memory (e.g., page cache), potentially leading to privilege escalation.
Immediately apply the latest kernel security patches provided by your distribution and reboot the system.
Affected Products & Version Scope
Remediation & Live Workaround Commands
PATCH & WORKAROUNDThe primary remediation is upgrading to a patched kernel version. Use your distribution's package manager to apply updates:
# For Ubuntu/Debian
sudo apt update && sudo apt upgrade linux-image-generic
# For RHEL/CentOS/Fedora
sudo dnf update kernel
# A system reboot is required
sudo rebootVerify the kernel version using uname -r and ensure it matches the patched versions released by your vendor.
Block Kernel Privilege Escalation & Ransomware Payloads Before You Can Reboot
Protect unpatched Windows, Linux, and macOS workloads against in-memory exploitation and lateral movement with autonomous EDR.
Technical Root Cause & Exploitation Mechanics
The vulnerability exists in the skb_try_coalesce() function within net/core/skbuff.c. When merging socket buffers, the kernel fails to preserve the SKBFL_SHARED_FRAG flag, which indicates that fragments are externally owned or backed by the page cache. This flag is a critical invariant for the ESP (Encapsulating Security Payload) input path. ESP checks skb_has_shared_frag() to decide whether to perform skb_cow_data() or decrypt in-place. Due to the missing marker, ESP may incorrectly identify a shared fragment as safe for in-place decryption, leading to an out-of-bounds write (CWE-787) over page-cache-backed memory. Given its inclusion in the CISA KEV catalog and a high EPSS score, this vulnerability poses a significant risk of active exploitation.
Official Vendor Advisories & References
In the Linux kernel, the following vulnerability has been resolved: net: skbuff: preserve shared-frag marker during coalescing skb_try_coalesce() can attach paged frags from @from to @to. If @from has SKBFL_SHARED_FRAG set, the resulting @to skb can contain the same externally-owned or page-cache-backed frags, but the shared-frag marker is currently lost. That breaks the invariant relied on by later in-place writers. In particular, ESP input checks skb_has_shared_frag() before deciding whether an uncloned nonlinear skb can skip skb_cow_data(). If TCP receive coalescing has moved shared frags into an unmarked skb, ESP can see skb_has_shared_frag() as false and decrypt in place over page-cache backed frags. Propagate SKBFL_SHARED_FRAG when skb_try_coalesce() transfers paged frags. The tailroom copy path does not need the marker because it copies bytes into @to's linear data rather than transferring frag descriptors.
Subscribe to Daily Vulnerability Briefings & KEV Alerts
Concise morning briefings for SecOps, DevSecOps, and SRE teams covering newly exploited CVEs and mitigation priorities.