the_open_door
café
ESEN
← Volver al índice

Laravel Ignition RCE (CVE-2021-3129)

Ignition es la pantalla de errores interactiva que Laravel muestra en desarrollo. La CVE-2021-3129 afecta a Laravel <= 8.4.2 con Ignition < 2.5.2 cuando el modo depuración está activo (APP_DEBUG=true): el endpoint /_ignition/execute-solution permite a un atacante no autenticado ejecutar código.

El vector encadena dos cosas: (1) escribir contenido controlado en el fichero de log de Laravel a través de Ignition y (2) usar una de las "soluciones" que ofrece el depurador para procesar ese log envenenado con una cadena de deserialización (gadget de phpggc, normalmente Monolog/RCE). El resultado es ejecución de comandos con los privilegios del servidor web.

El exploit público de knqyf263 lo automatiza: apunta a la URL y ejecuta un comando:

git clone https://github.com/knqyf263/CVE-2021-3129
# En exploit.py: Exploit("http://<ip>/", "id")
python3 exploit.py

Se identifica por la página de error de Laravel, que en modo debug muestra la versión del framework y la traza completa, y por la ruta /_ignition/execute-solution respondiendo (405 a GET).

Matices. Requiere APP_DEBUG=true; con el modo debug apagado, Ignition no expone el endpoint explotable. La cadena concreta depende de la versión de phpggc y de las librerías presentes (Monolog, Faker...).

Cómo detectarlo. La firma en el log de acceso es un POST no autenticado a /_ignition/execute-solution (y a /_ignition/health-check), endpoints que solo existen con el modo debug activo y que ninguna operación normal de producción invoca. En el host, el ataque deja escrituras en el laravel.log con contenido de gadget (base64/phar://) seguidas del proceso web (php-fpm/apache) lanzando sh/id como hijo. Que la app responda con la página de error de Ignition (mostrando versión y traza) ya indica APP_DEBUG=true, la precondición del ataque.

Defensa. APP_DEBUG=false en producción, actualizar Ignition a 2.5.2+ y no exponer la pantalla de errores. Relacionado con envenenamiento de logs y inyección de comandos.

Máquinas donde se aplica

  • LaVitaProving Grounds Practice