DirtyClone: New DirtyFrag-Family Kernel Bug Hands Local Users Root

CVE-2026-43503 (CVSS 8.8) corrupts file-backed memory through a cloned network packet. A working PoC is now public.

ThreatVectr NewsdeskUpdated · Editor: Lee Brown· 3 min read
DirtyClone: New DirtyFrag-Family Kernel Bug Hands Local Users Root
Share

Key points

  • CVE-2026-43503 lets an unprivileged local user corrupt file-backed memory via a cloned network packet and gain root.
  • JFrog Security Research published a working exploit walkthrough on June 25, the first public demonstration of this variant.
  • The CVSS score is 8.8 with local attack vector, low complexity, no user interaction, and no special capabilities required.
  • Containers sharing the host kernel are in scope; namespace isolation doesn't help here.
  • Distribution backports are landing now; treat the public PoC as a starting gun.

What is DirtyClone?

DirtyClone is a local privilege escalation in the Linux kernel's DirtyFrag family. It abuses how the kernel handles a cloned network packet (the skb_clone path interacting with the page cache) to corrupt file-backed memory, ultimately giving an unprivileged user an arbitrary write into a read-only file mapping and then root. The attack requires no special capability: no CAP_NET_ADMIN, no user-namespace toggle. That's a lower bar than several recent net/* bugs have set.

JFrog Security Research published the writeup and a working proof-of-concept on June 25. The researchers walk through the race window and the heap-grooming step before landing the final overwrite against a SUID binary. We covered a comparable local-root path in the nf_tables UAF published by Exodus Intelligence on 8 June; DirtyClone arrives with a working PoC on day one, which makes the timeline sharper.

How does it sidestep earlier mitigations?

Each generation of the DirtyFrag lineage has reached the same corruption primitive through a different subsystem, staying a step ahead of whatever hardening followed the previous variant. DirtyClone does it through the network stack rather than through pipes, which lets it avoid the post-predecessor hardening that defenders may have been counting on.

Should you worry?

Yes, if you run Linux at scale with any untrusted local code execution. A web shell, a compromised service account, or an SSH foothold on a jump box all become plausible paths to root. Containers sharing the host kernel are fully in scope: namespacing doesn't save you because the bug lives below the container boundary.

Detection isn't clean. There's no reliable syscall signature; the exploit traffic looks like ordinary socket activity until the overwrite lands. EDR tools that hook page-cache writes against immutable mappings have a shot at catching it. Most won't, at least not immediately.

What should defenders do?

Push patched kernels through your normal update process and prioritize multi-tenant hosts and anything exposed to untrusted local code. Distribution backports are actively landing. Audit which workloads remain on long-term-support kernel versions that haven't yet received the fix; some older LTS branches are still under analysis according to the upstream security list thread.

The PoC, as published, targets a specific allocator layout. Nothing in the underlying primitive is architecture-specific, so expect ports to appear quickly.

Common questions

Does this affect cloud and container environments?

Yes. Any workload sharing a vulnerable host kernel is in scope, including containerized services. Namespace isolation operates above the level where this bug lives.

Where did the bug come from?

JFrog Security Research discovered and reported it. The writeup went public on June 25 alongside the working proof-of-concept.

Is a patch available?

The fix is in mainline. Check your distribution's security advisories for the backport status on your specific kernel branch.

© 2026 Threat Vectr