
CraftCMS tiene una vulnerabilidad RCE mediante condicionales relacionales en el panel de control
CVE-2026-31857 es un problema de ejecución remota de código en las reglas de condiciones relacionales de Craft CMS. BaseElementSelectConditionRule::getElementIds() renderiza entrada controlada por el usuario como una plantilla Twig sin sandbox. Un usuario autenticado del Panel de Control puede enviar una condición manipulada a través de un endpoint de listado de elementos y ejecutar comandos en el servidor. No se requieren privilegios de administrador.
Craft CMS 4.0.0-beta.1 hasta 4.17.3 y 5.0.0-RC1 hasta 5.9.8 están afectados. Este PoC utiliza la forma de solicitud del índice de elementos de Craft 5.
Se requiere Python 3 con solo la biblioteca estándar. Proporcione la URL base y un nombre de usuario del Panel de Control; el script solicita la contraseña:
python3 poc.py https://craft.example editor
Introduzca comandos en cmd>, o introduzca exit para salir. El directorio de trabajo actual persiste entre comandos. Para lanzar un comando de larga duración, finalícelo con &; su entrada y salida se desvinculan de la solicitud HTTP y su salida se descarta. La salida de comandos devuelta a través del encabezado de respuesta está limitada a los últimos 1200 bytes.