
Read-only checker for CVE-2026-43284 / CVE-2026-43500 (Dirty Frag) Linux kernel local-root vulns
Read-only checker for the "Dirty Frag" Linux kernel local-root vulns (CVE-2026-43284, CVE-2026-43500). Checks kernel version, module state, KernelCare livepatch, and any modprobe blacklist you've added. Doesn't run exploit code.
Companion to CVE-2026-31431-check.

Heads up: this is a heuristic. A green verdict isn't a guarantee. Cross-reference with your distro's advisory before you call a host safe. MIT, no warranty.
curl -fsSL https://github.com/haydenjames/dirty-frag-check/releases/latest/download/dirty-frag-check.sh | bash
Read it first if you don't trust piping to bash:
curl -fsSLO https://github.com/haydenjames/dirty-frag-check/releases/latest/download/dirty-frag-check.sh
less dirty-frag-check.sh
chmod +x dirty-frag-check.sh && ./dirty-frag-check.sh
Pin to a release tag for change control: https://raw.githubusercontent.com/haydenjames/dirty-frag-check/v1.0.4/dirty-frag-check.sh.
-q for one-line fleet output. -h for help. Exit 0 ok, 1 vulnerable, 2 unknown.
# parallel-ssh
parallel-ssh -h hosts.txt -i 'bash -s -- -q' < dirty-frag-check.sh
# ansible
ansible all -m script -a "dirty-frag-check.sh -q"
Exit codes (0 ok, 1 vulnerable, 2 unknown) work with anything that aggregates by status.
bash 4+, plus the usual awk/grep/sed/lsmod/modprobe. No root
required for the check itself. Applying mitigations does need root.
esp4, esp6, ipcomp, ipcomp6 (CVE-2026-43284) and rxrpc
(CVE-2026-43500) — are loaded, available, or absent.modprobe -n -v. Reports SELinux and
AppArmor status. Detects KernelCare livepatch via kcarectl --patch-info.uname -r against the
vendor-published fixed version for that release. Best-effort; verify
against your distro tracker.Use this when your distro hasn't shipped a kernel update yet, or when you can't reboot soon and need the reach-in modules unloaded:
sudo tee /etc/modprobe.d/disable-dirty-frag.conf <<'EOF'
install esp4 /bin/false
install esp6 /bin/false
install ipcomp /bin/false
install ipcomp6 /bin/false
install rxrpc /bin/false
EOF
sudo rmmod rxrpc ipcomp6 ipcomp esp6 esp4 2>/dev/null || true
If rmmod says "module is in use", something on the box actively uses
IPsec or AF_RXRPC (some VPNs, AFS clients, strongSwan, Libreswan).
Don't force-unload it. Patch the kernel and reboot instead.
KernelCare / TuxCare ELS users: livepatches for CVE-2026-43284 cover
this without a reboot. Check kcarectl --patch-info.
Aimed at AlmaLinux 8/9/10, Rocky, RHEL, CloudLinux 8/9/10, Ubuntu, Debian, and CentOS 7 (TuxCare ELS / KernelCare). The fixed-version table is RHEL-family-specific; Ubuntu/Debian fall back to package-manager freshness. Confirm any green verdict against your distro's tracker.
MIT — see LICENSE.