Instituto Nacional de ciberseguridad. Sección Incibe
Instituto Nacional de Ciberseguridad. Sección INCIBE-CERT

Vulnerabilidad en core de bolt (CVE-2026-71291)

Gravedad CVSS v3.1:
ALTA
Tipo:
No Disponible / Otro tipo
Fecha de publicación:
05/08/2026
Última modificación:
23/10/2026

Descripción

Bolt CMS renderiza los valores de los campos de contenido a través del entorno completo a nivel de aplicación de Twig sin ninguna SandboxExtension registrada en ninguna parte del código base. En src/Entity/Field.php, getTwigValue() llama a shouldBeRenderedAsTwig(), que restringe la renderización solo al indicador allow_twig de la definición del campo y a una expresión regular que verifica ’{{’, ’{%’ o ’{#’; cuando es verdadero, el valor del campo en bruto se compila y renderiza a través de ’self::getTwig() -> createTemplate($value) -> render([’record’ => $this -> getContent()])’ sin sandboxing. El propio paquete de Bolt config/bolt/contenttypes.yaml establece ’allow_twig: true’ en el campo de contenido del tipo de contenido predeterminado ’pages’ de forma predeterminada. Cualquier usuario con acceso de edición a ese tipo de contenido (un rol de editor estándar, no solo un administrador) puede inyectar una carga útil de Twig como ’{{ [’id’]|map(’passthru’)|join }}’ que ejecuta comandos arbitrarios del sistema operativo cuando el contenido se guarda y se renderiza, logrando ejecución remota de código como el usuario del servidor web.