'Copy Fail' Linux Vulnerability: Cloudflare's Technical Response
How Cloudflare addressed the critical 'Copy Fail' Linux vulnerability and its impact.

The open-source world, long lauded for its transparency and community-driven security, has once again demonstrated that even its most robust foundations are not immune to critical flaws. On May 7th, 2026, a vulnerability known as “Dirty Frag” was disclosed, presenting a stark reminder of the constant vigilance required in modern IT infrastructure. This isn’t a theoretical threat; unprivileged local users can reliably achieve root access, leading to full system compromise. The rapid public release of proof-of-concept exploits, outpacing widespread patching, elevates this from a mere bug to a critical security incident demanding immediate attention from system administrators, security teams, and architects.
Dirty Frag is not an isolated incident; it builds upon a lineage of privilege escalation vulnerabilities like Dirty Pipe and Copy Fail, targeting specific, high-performance kernel subsystems. At its core, the exploit abuses the kernel’s efficient handling of network packets and memory management. Specifically, it leverages flaws within the esp4 and esp6 (IPsec ESP, part of the xfrm-framework) and the rxrpc (RxRPC subsystem) components. These subsystems are designed for high-speed data processing, often employing zero-copy mechanisms such as splice() and vmsplice().
The vulnerability lies in how these zero-copy operations interact with the kernel’s page cache and the handling of fragmented network buffers (sk_buff). An attacker-controlled packet, processed through the vulnerable fast-path functions like esp_input or rxkad_verify_packet_1, can be decrypted in place. Crucially, this decryption process can be manipulated to write attacker-controlled data directly into shared, page-cache-backed memory regions. These regions are often used by critical, read-only system files, such as /etc/passwd. By overwriting critical entries in these files, an attacker can effectively grant themselves elevated privileges.
The technical details are encapsulated in two CVEs: CVE-2026-43284 (xfrm-ESP Page-Cache Write) and CVE-2026-43500 (RxRPC Page-Cache Write). While patches for CVE-2026-43284 have been integrated into newer kernel versions (e.g., Linux 7.0.6) and some LTS branches (e.g., 6.18.29 LTS with the commit “rxrpc: Also unshare DATA/RESPONSE packets when paged frags are present”), patches for CVE-2026-43500 are still in various stages of release across different distributions. This creates a fragmented landscape where systems may be vulnerable to one or both aspects of the Dirty Frag attack. The deterministic nature of this bug, unlike race-condition-dependent flaws, makes exploitation highly reliable, significantly increasing its immediate threat.
The impact of Dirty Frag is far-reaching, affecting a broad spectrum of popular Linux distributions. This includes enterprise mainstays like Red Hat Enterprise Linux (RHEL 8, 9, and the upcoming 10), its downstream derivatives such as CentOS Stream, AlmaLinux, and Rocky Linux, as well as community-focused distributions like Ubuntu, Fedora, and openSUSE. Even cloud providers are not immune, with Amazon Linux kernels also confirmed to be vulnerable. The inclusion of Windows Subsystem for Linux 2 (WSL2) further expands the attack surface into developer and end-user environments.
This wide-ranging impact means that organizations relying on any of these distributions, particularly those with multi-tenant environments, containerized workloads, or publicly accessible cloud instances, face a significant risk. The availability of public proof-of-concept exploits means that sophisticated attackers, and potentially even less skilled actors, can weaponize this vulnerability quickly. Microsoft Defender has already begun monitoring limited instances of in-the-wild exploitation, underscoring the urgency of the situation. The community sentiment, particularly on platforms like Reddit and Hacker News, reflects a growing frustration with recurring, critical local privilege escalation bugs that emerge with publicly available exploit code before robust patching cycles can be completed.
Addressing Dirty Frag requires a strategic approach, as direct patching might not be immediately available for all affected kernels, and proposed mitigations come with significant operational trade-offs.
Temporary Mitigations:
The most immediate, albeit impactful, mitigation involves disabling the kernel modules responsible for the vulnerable functionalities. This is typically achieved by creating configuration files in /etc/modprobe.d/.
Disabling esp4, esp6 and rxrpc:
To prevent the loading of these modules, you can create a file like /etc/modprobe.d/dirtyfrag.conf with the following content:
install esp4 /bin/false
install esp6 /bin/false
install rxrpc /bin/false
Trade-off: This action will break IPsec VPN functionality and the Andrew File System (AFS). If your network infrastructure relies heavily on IPsec for secure site-to-site or remote access VPNs, or if you utilize AFS for distributed file sharing, this mitigation will render those services inoperable until kernel patches are applied and the modules can be safely re-enabled.
Disabling Unprivileged User Namespaces (for CVE-2026-43284):
An alternative mitigation specifically for the xfrm-ESP component (CVE-2026-43284) is to disable unprivileged user namespaces. This is often controlled via sysctl settings:
# Check current setting
sysctl kernel.unprivileged_userns_clone
# Disable for runtime
sysctl -w kernel.unprivileged_userns_clone=0
# Disable permanently (add to /etc/sysctl.conf or a file in /etc/sysctl.d/)
echo "kernel.unprivileged_userns_clone = 0" | sudo tee -a /etc/sysctl.conf
Trade-off: Disabling unprivileged user namespaces will break rootless containers (e.g., Docker, Podman running in rootless mode) and is fundamental to the security sandbox of applications like Google Chrome. If your development or deployment workflow relies on these technologies, this mitigation is likely not feasible without significant disruption.
Post-Mitigation Cleanup:
It is important to note that even after applying module-blocking mitigations, a system compromised before these changes might retain a “dirty” memory state. Applying a drop_caches command or performing a reboot might be necessary to clear this state and ensure the system is fully clean.
Dirty Frag is a severe and reliable local privilege escalation vulnerability with public exploits available. This combination creates a high-risk scenario, particularly for shared environments where a compromised unprivileged user can quickly escalate to root and achieve full system control, including container escapes. Existing mitigations for Copy Fail do not protect against Dirty Frag, meaning systems that were previously hardened against similar vulnerabilities remain exposed.
The immediate priority is to identify vulnerable systems across your infrastructure and apply the relevant kernel updates as soon as they become available from your distribution vendor. In parallel, evaluate the temporary mitigations discussed above, understanding the direct operational impact they will have on your services. If you cannot afford to disable critical functionalities like IPsec or unprivileged user namespaces, your response must be expedited patching.
This incident serves as a crucial reminder: the dynamism of open-source development, while a strength, also means vulnerabilities can emerge unexpectedly. Robust security postures must include proactive threat intelligence, rapid patch management, and a thorough understanding of the attack vectors and their operational implications. The resilience of your systems depends not just on the quality of the code, but on the speed and decisiveness of your response to threats like Dirty Frag.