
Script de auditoría para CVE-2026-43284 + CVE-2026-43500 "Dirty Frag"
Script de auditoría para CVE-2026-43284 + CVE-2026-43500 "Dirty Frag" — una vulnerabilidad encadenada de escalada de privilegios locales en el kernel de Linux divulgada el 2026-05-07 con un exploit público funcional, antes de que estuvieran disponibles los parches de las distribuciones.
También conocida como "Copy Fail 2: Electric Boogaloo" — los mismos rutas de código, distinto autor del exploit.
Dirty Frag encadena dos bugs distintos del kernel descubiertos por Hyunwoo Kim (@v4bel), cada uno dirigido a la misma clase de vulnerabilidad — descifrado in situ sobre búferes paginados que no son propiedad exclusiva del kernel.
AF_INET / AF_INET6 socket (IPsec ESP)
└── In-place decryption path (commit cac2661c53f3, Jan 2017)
└── splice() feeds page cache pages as destination buffers
└── Plaintext write at attacker-controlled offset in page cache
└── Target SUID binary in memory → root
esp4, esp6f4c50a4034e6AF_RXRPC socket (Andrew File System / RxRPC protocol)
└── Same in-place pattern added to rxrpc (June 2023)
└── Same page-cache write primitive
└── root
rxrpcaa54b1d27fe0| Propiedad | Dirty Cow (2016) | Dirty Pipe (2022) | Copy Fail (2026) | Dirty Frag (2026) |
|---|---|---|---|---|
| Condición de carrera | ✅ Necesaria | ❌ No | ❌ No | ❌ No |
| Granularidad de escritura | Arbitraria | 1 byte alineado | 4 bytes fijos | Texto plano completo, cualquier desplazamiento |
| Modificación del disco | ✅ | ❌ | ❌ | ❌ |
| Rastro forense | ✅ | ❌ | ❌ | ❌ |
| Escape de contenedor | Limitado | Limitado | Posible | Sí (caché de páginas compartida) |
| Exploit público | ✅ | ✅ | ✅ | ✅ antes de los parches |
| Vectores de ataque | 1 | 1 | 1 | 2 (esp + rxrpc) |
| Rango de kernel | Estado |
|---|---|
| < 4.14 | ✅ No afectado |
| 4.14 – última versión sin parchear | ❌ Vulnerable |
mainline con f4c50a4034e6 | ✅ Parcheado |
| Rango de kernel | Estado |
|---|---|
| < 6.4 | ✅ No afectado (el patrón aún no se ha introducido) |
| 6.4 – última versión sin parchear | ❌ Vulnerable |
mainline con aa54b1d27fe0 | ✅ Parcheado |
| Distribución | CVE-2026-43284 | CVE-2026-43500 | Versión parcheada |
|---|---|---|---|
| AlmaLinux / RHEL 8 | ❌ Afectado | ✅ No incluido | kernel-4.18.0-553.123.2.el8_10 |
| AlmaLinux / RHEL 9 | ❌ Afectado | ⚠ Solo si está instalado kernel-modules-partner (repo Devel) | mediante dnf upgrade |
| AlmaLinux / RHEL 10 | ❌ Afectado | ❌ Afectado | mediante dnf upgrade |
| Ubuntu 20.04–24.04 | ❌ Afectado | ⚠ Depende del kernel | mediante apt dist-upgrade |
| Debian stable | ❌ Afectado | ⚠ Depende del kernel | Corrección solo en sid (linux ≥ 7.0.4-1) |
| SUSE / openSUSE | ❌ Afectado | ❌ Afectado | mediante zypper update kernel-default |
| Arch Linux | ❌ Afectado | ❌ Afectado | mediante pacman -Syu linux |
git clone https://github.com/Quaerendir/dirtyfrag-audit
cd dirtyfrag-audit
chmod +x audit_dirtyfrag.sh
./audit_dirtyfrag.sh
Comando remoto de una línea (verificar antes de ejecutar en producción):
curl -fsSL https://raw.githubusercontent.com/Quaerendir/dirtyfrag-audit/main/audit_dirtyfrag.sh | bash
| Código | Significado |
|---|---|
0 | Seguro — ninguna CVE aplicable |
1 | Vulnerable — al menos una CVE activa sin mitigación |
2 | Mitigado — solución alternativa activa, parche aún necesario |
| Comprobación | CVE |
|---|---|
| Rango de versión del kernel (4.14+ para ESP, 6.4+ para rxrpc) | Ambas |
| Versiones de kernel parcheadas específicas de la distro | Ambas |
Módulo esp4 / esp6 cargado (lsmod) | CVE-2026-43284 |
Módulo rxrpc cargado (lsmod) | CVE-2026-43500 |
| Detección de módulo integrado vs cargable | Ambas |
Reglas de lista negra en modprobe.d (por módulo) | Ambas |
| Estado/política XFRM de IPsec — sesiones activas que se romperían | CVE-2026-43284 |
| Módulo kAFS / AFS en uso — consumidores activos de rxrpc | CVE-2026-43500 |
| Estado del parche en vivo de KernelCare | Ambas |
Accesibilidad de /proc/sys/vm/drop_caches | Ambas |
| Contexto de contenedor / Docker / Kubernetes | Ambas |
| Usuarios activos con sesión iniciada (riesgo multiinquilino) | Ambas |
| Estado de SELinux / AppArmor | Ambas |
| Detección de interfaz IPsec/VTI/XFRM | CVE-2026-43284 |
# RHEL / AlmaLinux
dnf clean metadata && dnf upgrade && reboot
# Ubuntu / Debian
apt-get update && apt-get dist-upgrade && reboot
# SUSE
zypper update kernel-default && reboot
# Arch
pacman -Syu linux && reboot
Primero, verifique si hay uso activo:
ip xfrm state # IPsec — if output non-empty, blacklisting breaks IPsec
lsmod | grep kafs # AFS — if loaded, rxrpc is in use
Aplicar solución alternativa:
printf 'install esp4 /bin/false\ninstall esp6 /bin/false\ninstall rxrpc /bin/false\n' \
> /etc/modprobe.d/dirtyfrag.conf
rmmod esp4 esp6 rxrpc 2>/dev/null || true
# IMPORTANT: flush page cache to evict any poisoned pages
echo 3 > /proc/sys/vm/drop_caches
kcarectl --update
kcarectl --patch-info | grep -iE 'CVE-2026-43284|CVE-2026-43500|dirtyfrag'
dm-crypt / LUKS · WireGuard · OpenVPN · SSH · TLS/kTLS · OpenSSL · GnuTLS
Los daemons IKE (strongSwan, libreswan) siguen funcionando — solo se desactiva el procesamiento de paquetes ESP en el kernel.