What Is Dirty Frag?
Dirty Frag is a critical local privilege escalation (LPE) vulnerability affecting the Linux kernel's networking subsystem. Publicly disclosed on May 7, 2026, it allows any unprivileged local user to gain root access on all major Linux distributions — reliably, deterministically, and without race conditions.
Unlike typical single-bug exploits, Dirty Frag chains two separate vulnerabilities in the kernel's page cache handling:
- CVE-2026-43284 — xfrm-ESP Page-Cache Write vulnerability (in
esp4andesp6modules) - CVE-2026-43500 — RxRPC Page-Cache Write vulnerability (in the
rxrpcmodule)
Both vulnerabilities independently allow controlled writes to the kernel page cache, enabling an attacker to modify protected files — including setuid binaries — in memory and escalate to root.
How Dirty Frag Works
Dirty Frag targets the same fundamental primitive as CopyFail (CVE-2026-31431) — controlled writes to the Linux page cache — but through the networking subsystem rather than the crypto API.
Dirty Frag provides two independent exploitation paths through the kernel networking subsystem — either alone achieves root
The Attack Flow
- The attacker creates specially crafted network packets targeting either the ESP (IPsec) or RxRPC (AFS) protocol handlers
- A flaw in how these modules handle packet fragmentation allows writing controlled data into the kernel page cache
- The attacker targets the page cache entry of a setuid binary (e.g.,
/usr/bin/sudo) - The corrupted page cache is served to subsequent executions of that binary
- When executed, the corrupted binary runs attacker-controlled code as root
Why This Disclosure Is Unusual
Dirty Frag's disclosure was unusual because it was released as a 0-day — without coordinated patches available from all vendors. According to the oss-security mailing list, the coordinated disclosure process broke down, leading to public disclosure before some distributions had patches ready.
Broken Coordinated Disclosure
Unlike CopyFail (which had patches ready at disclosure), Dirty Frag was disclosed on May 7, 2026 with some vendors still preparing fixes. This means a window of active exposure existed where the exploit was public but patches were not universally available. Some distributions (like Ubuntu) released mitigations within 24 hours, but others lagged behind.
Who Is Affected?
Dirty Frag affects all Linux kernel versions with the esp4, esp6, or rxrpc modules available — which is essentially every Linux distribution since 2017.
| Module | Protocol | Common Use | Loaded by Default? |
|---|---|---|---|
esp4 / esp6 |
IPsec ESP | VPN tunnels, network encryption | Often auto-loaded on demand |
rxrpc |
RxRPC (AFS) | Andrew File System | Available but rarely loaded |
IPsec VPN Users: Read Carefully
If your infrastructure uses IPsec VPNs (StrongSwan, Libreswan, Openswan), disabling the esp4/esp6 modules will break your VPN connectivity. For these environments, patching the kernel is the only viable option. Plan emergency maintenance windows accordingly.
Immediate Mitigation
If you cannot patch immediately, disable the affected modules:
# Create modprobe blacklist
cat <<EOF | sudo tee /etc/modprobe.d/dirtyfrag.conf
install esp4 /bin/false
install esp6 /bin/false
install rxrpc /bin/false
EOF
# Unload modules if currently loaded
sudo modprobe -r esp4 2>/dev/null
sudo modprobe -r esp6 2>/dev/null
sudo modprobe -r rxrpc 2>/dev/null
- Check if modules are loaded:
lsmod | grep -E "esp4|esp6|rxrpc" - Verify after mitigation: Attempt to load the modules to confirm they're blocked
- Test VPN connectivity: If using IPsec, you cannot disable esp modules — patch instead
- Plan kernel update: Schedule emergency patching within 24-48 hours
Dirty Frag vs CopyFail: Comparison
Dirty Frag arrives just days after CopyFail (CVE-2026-31431), making May 2026 one of the most significant months for Linux kernel security in years. Here's how they compare:
| Characteristic | CopyFail (CVE-2026-31431) | Dirty Frag (CVE-2026-43284/43500) |
|---|---|---|
| Attack vector | Crypto subsystem (AF_ALG) | Networking subsystem (ESP/RxRPC) |
| Exploit complexity | 732-byte Python script | Network packet crafting |
| Race condition? | No | No |
| Disclosure type | Coordinated (patches ready) | Broken disclosure (partial 0-day) |
| Mitigation impact | Low (algif_aead rarely used) | High if using IPsec VPNs |
| CVSS | 7.8 | 7.8 |
The Bigger Picture: Why Access Management Matters More Than Ever
Two critical kernel LPEs in the same week. Both allow any local user to become root. Both have existed since 2017. The message is clear: if someone has shell access to your Linux system, assume they can become root.
This fundamentally changes how you should think about infrastructure access:
- Minimize local access: Every SSH session is a potential root escalation. Reduce who has standing access.
- Time-limit all access: JIT (Just-in-Time) access means credentials expire automatically — reducing the window of exploitation.
- Record everything: Session recording creates an audit trail that reveals exploitation attempts.
- Assume breach: Design your access architecture assuming any individual server can be compromised. Limit blast radius.
- Patch fast: Automated access management frees your team to focus on patching instead of access ticket handling.
With OnePAM, your production infrastructure has fewer standing access sessions, every session is recorded and auditable, and access automatically expires — meaning even if a kernel LPE exists, the window and scope of exploitation is dramatically reduced.
Two Kernel LPEs in One Week. Is Your Access Locked Down?
CopyFail and Dirty Frag prove that local access = root access. OnePAM's Just-in-Time access, session recording, and auto-expiring credentials minimize your exposure to kernel-level threats.
Start Free TrialRecommendations for Security Teams
Immediate Actions (Next 24 Hours)
1. Identify all systems running affected kernels (essentially all Linux systems).
2. Apply module blacklisting where IPsec is not in use.
3. Schedule emergency kernel patching for all production systems.
4. Audit who currently has shell access to production — revoke any unnecessary standing access.
5. Enable audit logging for the esp4, esp6, and rxrpc modules if you cannot disable them.
Dirty Frag and CopyFail together represent a watershed moment for Linux security. Two independent, reliable, deterministic privilege escalation vulnerabilities disclosed within days of each other — both exploiting the same fundamental page-cache write primitive through different kernel subsystems. The defensive lesson is the same: control who has local access, limit how long they have it, and record what they do with it.