
Prueba de concepto de exploit para CVE-2022-0847 (Dirty Pipe), una condición de carrera del kernel de Linux que permite escrituras sin privilegios en archivos de solo lectura y escalada de privilegios.
Un exploit de prueba de concepto para CVE-2022-0847 (Dirty Pipe), una vulnerabilidad del kernel de Linux que permite a usuarios sin privilegios escribir en archivos de solo lectura.
CVE-2022-0847 afecta a los kernels de Linux desde la versión 5.8 hasta la 5.16. Explota una condición de carrera en la implementación de pipes del kernel de Linux para escribir datos arbitrarios en páginas de archivos de solo lectura que están almacenadas en caché en memoria.
/etc/passwd).
├── src/
│ └── exploit.c # Dirty Pipe exploit source code
├── run.sh # QEMU test environment launcher
├── initramfs/ # Root filesystem for testing
├── debugfs.cpio # Compressed initramfs
└── README.md # This file
libelf-dev (para la compilación del kernel)gcc ./src/exploit.c -o ./src/exploit -static -pthread
./run.sh
# Inside QEMU shell:
/home/exploit
cat /etc/passwd # Verify password hash was written
su root # Switch to root (no password needed after exploit)
./src/exploit
El exploit modifica /etc/passwd para inyectar un usuario root con un hash de contraseña conocido.
El exploit funciona mediante:
PIPE_BUF_FLAG_CAN_MERGEsplice() para conectar una página de archivo al búfer del pipeEsto permite escribir en páginas de memoria de solo lectura sin activar COW (Copy-on-Write).
/proc/self/mem si es posibleEste exploit es solo para fines educativos y de pruebas de seguridad autorizadas. El acceso no autorizado a sistemas informáticos es ilegal.