
Un exploit de prueba de concepto para CVE-2022-0185, un desbordamiento de búfer en el heap en la función legacy_parse_param del kernel de Linux (fs/fs_context.c). Esto permite a un usuario local sin privilegios escalar privilegios a root.
Exploit original de Crusaders of Rust. Análisis completo: https://www.willsroot.io/2022/01/cve-2022-0185.html
El fallo es un subdesbordamiento de entero en la comprobación de límites dentro de legacy_parse_param(). Cuando el size del búfer interno alcanza 4095 bytes, la resta sin signo se envuelve y evita la comprobación, lo que permite un desbordamiento de heap sin límites en el slab kmalloc-4k.
Kernels afectados: Linux 5.1 – 5.15 Parcheado en: Linux 5.16+
make
# Enter a user namespace to get CAP_SYS_ADMIN
unshare -Urm
# Run the exploit — makes /bin/bash SUID
./exploit_fuse
# Get a root shell
bash -p
Funciona en kernels de Ubuntu ≥ 5.7. Ajusta los offsets de
single_startymodprobe_pathenexploit_fuse.cpara tu versión del kernel.
./exploit_kctf
~50% de fiabilidad, orientado a Kubernetes 1.22 (kernel 5.10).
Solo para fines educativos y de investigación. No lo utilices contra sistemas que no te pertenezcan o para los que no tengas permiso explícito de prueba.
| Archivo | Descripción |
|---|
exploit_fuse.c | Exploit LPE para Ubuntu usando FUSE + SYSVIPC |
exploit_kctf.c | Escape de contenedor kCTF usando pipes + cadena ROP |
fakefuse.c / .h | Sistema de archivos FUSE personalizado para la condición de carrera |
util.c / .h | Utilidades compartidas |
libfuse/, libfuse3.a | libfuse compilada estáticamente (sin dl_open) |
Makefile | Script de compilación |