// 2 CRITICAL · 2 ZERO-DAY · 5 CVE · 4 EXPLOIT · 3 ADVISORY IN THE LAST 24H
Dirty Frag exploits three CVEs in the Linux kernel to corrupt the page cache and gain root. The problem isn't in Docker images—it's in the host node. Here's why image scanners miss it entirely.

On May 7, 2026, Dirty Frag was forced into public disclosure—a Linux kernel privilege-escalation vulnerability discovered by researcher Hyunwoo Kim and revealed after the embargo broke. Tracked under three distinct CVE identifiers, the bug lets a local attacker with minimal privileges alter read-only files in memory via networking subsystems, gaining root access. The stakes exceed a single system: in containerized environments, the vulnerability lives in the host node's kernel, rendering an attack path that can lead to container escape invisible to Docker image scanning tools.

Key Takeaways
  • Dirty Frag comprises three CVEs with different mechanisms: CVE-2026-43284 (IPsec/XFRM ESP, CVSS 8.8), CVE-2026-43500 (RxRPC/AFS, CVSS 7.8), and CVE-2026-46300/Fragnesia (ESP-in-TCP variant, CVSS 7.8).
  • The technical core is page cache corruption: networking subsystems write in-place to shared buffers without checking the shared flag, altering read-only files in RAM while on-disk content remains unchanged.
  • The exploit is deterministic and does not rely on race conditions; public PoC code exists, with working demonstrations for Kubernetes environments.
  • Red Hat has published specific errata (RHSA-2026:16062, RHSA-2026:16195/16196, RHSA-2026:17795) and rates the issue "Important," but states CVE-2026-43500 does not affect its products.
  • Microsoft has reported limited in-the-wild activity with escalation via su, with the caveat that it cannot definitively distinguish Dirty Frag from its predecessor, Copy Fail.

How Page Cache Corruption Works

The Linux kernel uses the splice() system call to move data from the page cache to networking subsystems without a physical memory copy. This performance optimization exposes shared buffers between the filesystem and the network stack.

According to the Aikido Security advisory, "neither the ESP nor the RxRPC path checks whether the memory is shared before writing to it." The result is that an attacker can induce these paths to write directly onto pages belonging to read-only files loaded in cache. The file on disk is never modified, but subsequent reads—including execution of binaries like /usr/bin/su—retrieve the corrupted copy from RAM.

This pattern explains why traditional file-integrity tools fail: cryptographic signatures computed on disk remain valid, while the code executing in memory is already compromised. The absence of race conditions, typical of many kernel bugs, makes the exploit highly reproducible and predictable.

Fragnesia: When the Fix Introduces a New Vector

The Dirty Frag story didn't end with the first patchset. The initial fix for CVE-2026-43284 introduced a "fragment is shared" marker to block unauthorized writes. However, a follow-on variant dubbed Fragnesia (CVE-2026-46300) demonstrated that this defense mechanism could be bypassed.

As documented by Aikido Security, "an old bug from 2013 in the code that merges packet fragments together quietly drops that marker. It sat harmless for thirteen years because nothing depended on it." The dormant bug, introduced in 2013, gained critical relevance only after the Dirty Frag fix made the marker an essential security control. The Fragnesia variant specifically exploits the ESP-in-TCP path, extending the attack surface beyond the original case.

This sequence—vulnerability, incomplete fix, new variant—raises questions about security reviews of kernel patches, where compatibility with decades of legacy code often obscures interactions between seemingly independent changes.

"A read-only file should stay read-only. Dirty Frag gets the Linux kernel to edit its cached copy anyway."
— Aikido Security advisory

Container Security's Blind Spot: Why Scanners Miss It

The editorial angle required by this dossier—and confirmed by the technical facts—is that Dirty Frag exposes a structural blind spot in containerized workload security. Docker image scanning tools, from SCA engines to registry vulnerability scanners, analyze the static content of images: packages, libraries, configurations. None of these tools inspect the kernel of the host node where the container will run.

In a Kubernetes, OpenShift, or Docker Swarm cluster, the kernel is a shared resource across all pods and services. A vulnerability like Dirty Frag erases the logical boundary between containers: a minimally privileged process inside an isolated pod can corrupt the host node's page cache, compromising the integrity of every other workload on the same host. Container escape, in this scenario, is a direct consequence of the bug's nature rather than a misconfiguration.

Organizations that have invested heavily in image security pipelines—CI/CD scanning, admission policies, runtime enforcement—find themselves managing a risk these controls cannot even detect. The host kernel supply chain, often managed separately by platform teams or cloud providers, has become the unmonitored bottleneck of cloud security.

What to Do Now

Priority actions follow directly from the dossier data:

  • Patch the host node kernel, don't rebuild Docker images: the bug is in the kernel, not the container content. Red Hat errata (RHSA-2026:16062, RHSA-2026:16195/16196, RHSA-2026:17795) provide references for supported distributions.
  • Verify CVE-2026-43500 is absent on affected systems: Red Hat explicitly states this identifier does not affect its products, but other distributions with the rxrpc module loaded may be exposed.
  • Check for kernels with incomplete patches: the Fragnesia variant proves initial fixes can be insufficient. Kernels updated between May and June 2026 must include the second patchset for CVE-2026-46300.
  • Review templates and base images that may remain in service on unpatched nodes: persistence of workloads on old kernels exposes the cluster even if images appear up to date.

In-the-Wild Activity and the Limits of Visibility

Microsoft has reported limited in-the-wild activity, with attacks leveraging su for privilege escalation. The residual uncertainty is significant: the same source cannot confidently distinguish whether observed intrusions are Dirty Frag or Copy Fail, a predecessor with a similar mechanism. This diagnostic overlap limits the ability to estimate the exploit's true prevalence and correlate observed incidents.

Public PoC code, with working exploits for Kubernetes, lowers the barrier to adoption by unsophisticated actors. The combination of a deterministic exploit and highly populated cloud environments creates risk conditions that do not depend on attacker sophistication.

Why Container Security Must Look Beyond the Container

Dirty Frag is not a vulnerability in Docker, Kubernetes, or any container runtime. It is a Linux kernel vulnerability that makes the confinement architecture itself visible. The coldest lesson is that investments in image security—scanners, signatures, policies—do not protect against a compromised host kernel.

The Fragnesia variant adds another layer of caution: even fixes can hide interactions with dormant legacy code, and the absence of confirmed in-the-wild activity does not guarantee absence of risk. For cloud security teams, the priority shifts from the CI/CD pipeline to kernel lifecycle management—a domain often managed on different cadences and with different responsibilities.

The boundary between application security and infrastructure security, already blurred in containerized deployments, dissolves completely here. Anyone running production clusters must now verify not only what runs in containers, but on which kernel, with which patches, and with what awareness of variants not yet cataloged.

Sources

Information verified against cited sources and current as of publication.

Sources


Sources and references
  1. aikido.dev
  2. access.redhat.com
  3. memeburn.com
  4. socprime.com
  5. nvd.nist.gov