
Exploit de escalada de privilegios del kernel de Linux que encadena dos vulnerabilidades de escritura en page-cache (CVE-2026-43284, CVE-2026-43500) para acceso root determinista en las principales distribuciones sin condiciones de carrera.

Este documento describe la clase de vulnerabilidades Dirty Frag, descubierta y reportada por primera vez por Hyunwoo Kim (@v4bel), que puede obtener privilegios de root en las principales distribuciones de Linux encadenando la vulnerabilidad xfrm-ESP Page-Cache Write (CVE-2026-43284) y la vulnerabilidad RxRPC Page-Cache Write (CVE-2026-43500).
Dirty Frag es un caso que extiende la clase de bugs a la que pertenecen Dirty Pipe y Copy Fail. Debido a que es un bug lógico determinista que no depende de una ventana de tiempo, no se requiere condición de carrera, el kernel no entra en pánico cuando el exploit falla, y la tasa de éxito es muy alta.
Para información técnica detallada y la cronología, ver aquí.
xfrm-ESP Page-Cache Write (CVE-2026-43284) fue parcheado en mainline f4c50a4034e6.RxRPC Page-Cache Write (CVE-2026-43500) fue parcheado en mainline aa54b1d27fe0.[!NOTE] En el momento en que este documento se hizo público por primera vez (2026-05-07), el embargo se había roto debido a factores externos, por lo que aún no existía ningún parche o CVE. Después de consultar con los mantenedores en [email protected] en ese momento, el documento Dirty Frag se publicó a petición suya. Para la cronología de divulgación, consulte los detalles técnicos.
git clone https://github.com/V4bel/dirtyfrag.git && cd dirtyfrag && gcc -O0 -Wall -o exp exp.c -lutil && ./exp
Este PoC se proporciona como información precisa tras la consulta con linux-distros. No lo utilice en sistemas que no esté autorizado a probar.
⚠️ Importante: Después de ejecutar este exploit, la caché de páginas queda contaminada. Para limpiar la caché de páginas contaminada y garantizar la estabilidad del sistema, ejecute:
echo 3 > /proc/sys/vm/drop_caches
o reinicie el sistema.
En otras palabras, la vida útil efectiva de las vulnerabilidades es de unos 9 años.
Este Dirty Frag ha sido probado en las siguientes versiones de distribuciones.
sh -c "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; echo 3 > /proc/sys/vm/drop_caches; true"
xfrm-ESP Page-Cache Write proporciona una potente primitiva arbitraria de STORE de 4 bytes como Copy Fail, y está incluida en la mayoría de las distribuciones, pero requiere el privilegio de crear un namespace.
Ubuntu a veces bloquea la creación de user namespaces sin privilegios mediante la política de AppArmor. En tal entorno, xfrm-ESP Page-Cache Write no se puede activar. RxRPC Page-Cache Write no requiere el privilegio de crear un namespace, pero el módulo rxrpc.ko en sí no está incluido en la mayoría de las distribuciones. Sin embargo, en Ubuntu, el módulo rxrpc.ko se carga por defecto.
Encadenar las dos variantes hace que los puntos ciegos se cubran mutuamente, permitiendo obtener privilegios de root en todas las distribuciones principales. Para más detalles, consulte el documento de detalles técnicos.
Sí, sí, lo sé. Sin embargo, esta vulnerabilidad es descendiente de "Dirty Pipe", y es una clase de bug que "ensucia" el miembro frag de struct sk_buff, por lo que este nombre es el más apropiado.
Copy Fail fue la motivación para comenzar esta investigación. En particular, xfrm-ESP Page-Cache Write en la cadena de vulnerabilidades Dirty Frag comparte el mismo sink que Copy Fail. Sin embargo, se activa independientemente de que el módulo algif_aead esté disponible. En otras palabras, incluso en sistemas donde se aplica la mitigación públicamente conocida de Copy Fail (lista negra de algif_aead), su Linux sigue siendo vulnerable a Dirty Frag.
Consulte la sección de Mitigación anterior.