Critical ‘DirtyClone’ Flaw in Linux Kernel Grants Silent Root Access via Page Cache Manipulation

A critical Local Privilege Escalation (LPE) flaw has been identified within the Linux kernel, providing an avenue for unprivileged local users to escalate to full root privileges by manipulating the system’s page cache. This vulnerability, designated as CVE-2026-43503, exposes a significant gap in the XFRM/IPsec subsystem’s packet-processing logic. Most concerningly, this flaw manages to bypass previous security mitigations, allowing for a silent system compromise that leaves virtually no footprint in kernel logs or audit traces.

The JFrog Security Research team discovered this residual vulnerability during an exhaustive audit of recent kernel patch implementations. They have dubbed this specific variant “DirtyClone.” With a high-severity CVSS score of 8.8, this vulnerability demands immediate remediation by system administrators.

Understanding the DirtyClone Exploitation Pattern

The discovery of DirtyClone highlights a broader, systemic exploitation pattern affecting various socket buffer processing paths. It proves that the underlying attack primitive—exploiting how the kernel handles memory references—extends far beyond a single isolated code path.

DirtyFrag Family Diagram
The DirtyFrag Vulnerability Family (Source: JFrog)

DirtyClone is part of the larger “DirtyFrag” family of vulnerabilities. These flaws target the mechanism by which socket buffers reference shared page-cache memory. Various iterations—including DirtyFrag, Fragnesia, and DirtyClone—all utilize a shared technique: tricking the kernel into treating read-only, file-backed page cache memory as if it were a writable network buffer.

Vulnerability CVE Disclosed Subsystem Write Primitive Root Required?
Copy Fail CVE-2026-31431 April 30, 2026 algif_aead (AF_ALG) 4-byte page-cache write No
DirtyFrag CVE-2026-43284 May 8, 2026 IPsec ESP (xfrm) Full write primitive No
Fragnesia CVE-2026-46300 May 14, 2026 XFRM ESP-in-TCP Arbitrary byte write No
DirtyClone CVE-2026-43503 May 23, 2026 XFRM/IPsec (netfilter TEE) Flag dropped in __pskb_copy_fclone() No

When these distinct memory contexts intersect, the kernel inadvertently modifies memory that is semantically tied to a physical file, leading to direct, in-place corruption of file-backed data. This poses an existential risk to multi-tenant cloud environments, Kubernetes clusters, and containerized workloads where user namespaces are actively utilized.

Technical Execution: The Anatomy of the Attack

To execute the DirtyClone attack, a local user must possess or acquire the CAP_NET_ADMIN capability—a privilege frequently obtainable through unprivileged user namespaces. The technical workflow follows a precise sequence:

  1. Memory Mapping: The attacker maps a privileged binary (e.g., /usr/bin/su) into memory, forcing the host to load it into the page cache.
  2. Zero-Copy Exploitation: Using system calls such as vmsplice and splice, the attacker directs the kernel to attach this page-cache-backed memory directly into a socket buffer, bypassing a standard, safe memory copy.
  3. Packet Duplication: By configuring a loopback-based IPsec tunnel and a netfilter rule via the TEE target, the attacker triggers nf_dup_ipv4, which invokes the __pskb_copy_fclone function to clone the socket buffer.
  4. The Critical Oversight: During this cloning process, a logic error occurs where the cloned buffer fails to preserve the SKBFL_SHARED_FRAG flag. This flag is the kernel’s internal “safety marker” indicating the buffer references shared page memory.
  5. In-Place Decryption: When the cloned packet reaches the IPsec receive path for decryption, the kernel treats the buffer as a standard writable buffer and writes the decrypted data directly into the file-backed page cache.

Related Articles

Back to top button