A public exploit dropped on May 7, 2026. Researcher Hyunwoo Kim disclosed it before distributions had finished packaging patches — someone leaked it early. The Dirty Frag Linux exploit chains two kernel bugs, CVE-2026-43284 and CVE-2026-43500, and gives any unprivileged local user a root shell in a single command. Microsoft’s threat intelligence team confirmed active in-the-wild exploitation nine days later. If you haven’t patched yet, this post gets you there in under ten minutes.

How Dirty Frag Works
The flaw lives in how the Linux kernel handles memory during network packet decryption. When MSG_SPLICE_PAGES attaches pages from a pipe directly to a network socket buffer, the IPsec ESP receive path treats those externally-backed pages as privately owned. It then decrypts data in-place — writing directly over memory the kernel doesn’t actually own.
An attacker who can manipulate this behavior gets a controlled write into the kernel page cache. From there, root access follows. The two CVEs cover each other’s gaps:
| CVE | Component | Present Since | Requirement |
|---|---|---|---|
| CVE-2026-43284 | IPsec ESP (esp4/esp6) | 2017 | User namespace (default on most distros) |
| CVE-2026-43500 | rxrpc | June 2023 | kernel-modules-partner package OR rxrpc loaded |
According to the Microsoft Security Blog, Dirty Frag is designed for more reliable privilege escalation than traditional race-condition exploits. It’s a deterministic logic bug. No timing window. No kernel panic on failure. High success rate on the first try.
A second public exploit named “Copy Fail 2: Electric Boogaloo” targets this same vulnerability under a different alias. It hits the same code paths. The same kernel patch blocks both. Don’t let the different name confuse your patch tracking.
Which Systems Are Affected?
Every mainstream Linux kernel built from roughly 2017 onwards carries CVE-2026-43284. CVE-2026-43500 has a narrower scope. Here’s the breakdown by distro:
| Distribution | CVE-2026-43284 | CVE-2026-43500 |
|---|---|---|
| RHEL 8 / AlmaLinux 8 / Rocky 8 | Affected | Not affected (no rxrpc module) |
| RHEL 9 / AlmaLinux 9 / Rocky 9 | Affected | Affected if kernel-modules-partner installed |
| Ubuntu 22.04 / 24.04 / 26.04 | Affected | Affected |
| Debian 11 / 12 | Affected | Affected |
| Fedora / CentOS Stream | Affected | Affected |
| Amazon Linux 2023 | Affected | Check with: lsmod | grep rxrpc |

Check Your Exposure Now
Run these three checks on every server in your fleet:
# Check 1: Are user namespaces enabled? (needed for CVE-2026-43284 path)
sysctl user.max_user_namespaces
# Value > 0 means the CVE-2026-43284 path is reachable
# Check 2: Is rxrpc loaded? (needed for CVE-2026-43500 path)
lsmod | grep rxrpc
# Any output = rxrpc is active
# Check 3: Is kernel-modules-partner installed? (RHEL/Alma/Rocky 9 only)
rpm -q kernel-modules-partner 2>/dev/null && echo "INSTALLED" || echo "not installed"
Any system with user namespaces enabled is reachable via CVE-2026-43284 alone. That covers most Ubuntu and Debian servers out of the box, plus RHEL/Alma/Rocky systems that haven’t explicitly disabled unprivileged namespaces.
Apply the Kernel Patch
Patched kernels are in production repositories across all major distros. Update and reboot:
RHEL / AlmaLinux / Rocky / Oracle Linux
dnf clean metadata && dnf upgrade kernel -y
reboot
uname -r
Ubuntu / Debian
apt update && apt upgrade linux-image-generic -y
reboot
uname -r
Fedora / CentOS Stream
dnf upgrade --refresh -y && reboot
CloudLinux / cPanel (live patch, no reboot needed)
kcarectl --update
kcarectl --patch-info | grep -E "CVE-2026-43284|CVE-2026-43500"
After rebooting, drop the page cache. The exploit can modify system binaries in the page cache before a patch is applied. Flushing it removes any stale writes:
sync && echo 3 > /proc/sys/vm/drop_caches
No-Reboot Mitigation (While You Wait for a Patch Window)
If a reboot requires a change window, reduce the attack surface immediately with these steps — no restart needed.
Disable unprivileged user namespaces — blocks CVE-2026-43284:
# Apply immediately
sysctl -w user.max_user_namespaces=0
# Make it persistent across reboots
echo "user.max_user_namespaces=0" >> /etc/sysctl.d/99-disable-userns.conf
sysctl -p /etc/sysctl.d/99-disable-userns.conf
Unload rxrpc if it’s loaded — blocks CVE-2026-43500:
rmmod rxrpc 2>/dev/null && echo "rxrpc unloaded" || echo "rxrpc not loaded"
echo "blacklist rxrpc" >> /etc/modprobe.d/blacklist-rxrpc.conf
Note: disabling user namespaces may break rootless Docker, Podman, and some container runtimes. Test in a non-production environment first if your servers run containers.

Confirm You Weren’t Hit Before Patching
Microsoft confirmed active exploitation in the wild starting May 16, 2026. If your server was unpatched during that window, check for signs of compromise:
# Look for unexpected setuid binaries added recently
find / -perm -4000 -newer /tmp -ls 2>/dev/null
# Check for modified system binaries (compare against RPM/dpkg database)
rpm -Va 2>/dev/null | grep "^..5" | grep -v config # RHEL/Alma/Rocky
debsums -c 2>/dev/null | head -30 # Debian/Ubuntu
# Review auth logs for unexpected root escalation
grep -E "(sudo|su\[)" /var/log/secure /var/log/auth.log 2>/dev/null | tail -50
# Check recently modified files in /etc and /bin
find /etc /bin /usr/bin -newer /var/log/lastlog -ls 2>/dev/null | head -30
The Dirty Frag Linux exploit’s post-exploitation pattern — per Microsoft — involves modifying LDAP authentication files and wiping PHP session data. If you run GLPI or similar PHP-based management tools, review those directories specifically.
This is the second major kernel LPE in three weeks following Copy Fail. Our write-up on CVE-2026-31431 Copy Fail covers the same mitigation approach for that earlier flaw. If you haven’t patched Copy Fail yet either, a single kernel update closes both. The Linux server hardening checklist covers disabling unprivileged user namespaces as a standing configuration item — it reduces exposure to this entire class of vulnerability across the board.
Full technical CVE details are at nvd.nist.gov CVE-2026-43284.
Conclusion
The Dirty Frag Linux exploit has a public PoC, a second exploit alias in the wild, and confirmed active attacks per Microsoft. Patched kernels are available right now on every major distro. Disable unprivileged user namespaces for immediate protection, then schedule the kernel update and reboot. Don’t forget to flush the page cache after patching. If your server ran unpatched between May 7 and today, run the compromise checks above before you call it done.