Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

FeedsContactoPrivacidad© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
cve-2026-9558-poc — PoC de explotabilidad para CVE-2026-9558 (SSTI Mautic Theme) | Kitploit
Herramientas/GitHubGitHub/covepseng/cve-2026-9558-poc
Escalada de PrivilegiosAnálisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebPruebas de PenetraciónAprendizaje y EducaciónDesarrollo de PayloadsLabs y Práctica
GitHubcovepseng/cve-2026-9558-poc

cve-2026-9558-poc

PoC de explotabilidad para CVE-2026-9558 (SSTI Mautic Theme)

Ver Repositorio
126hace 3 mesesAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

CVE-2026-9558 — Inyección de Plantillas de Temas de Mautic del Lado del Servidor (SSTI) para Tomar Control Completo de Administrador

Tabla de Contenidos

  • Descripción general
  • Versiones Afectadas
  • Causa Raíz
  • Análisis
  • Estructura del Repositorio
  • Requisitos
  • Uso
  • Salida Esperada
  • Referencias
  • Descargo de Responsabilidad

Descripción general

CVE-2026-9558 es una vulnerabilidad de Inyección de Plantillas del Lado del Servidor (SSTI) en el motor de temas de Mautic. Los temas subidos a través del Administrador de Temas son archivos ZIP que contienen plantillas Twig, y en las versiones afectadas, esas plantillas son renderizadas por el entorno Twig predeterminado de la aplicación sin ninguna política de SandboxExtension adjunta.

Debido a que Twig puede invocar funciones PHP arbitrarias a través de filtros como map, filter y reduce, un usuario autenticado con permisos de carga de temas puede instalar un tema cuya plantilla ejecuta un comando arbitrario del sistema tan pronto como se renderiza — lo que ocurre automáticamente la primera vez que un usuario abre el constructor de correos electrónicos o páginas de aterrizaje con ese tema.

{{ ["id"] | map("system") | join }}

Versiones Afectadas

Rango afectadoCorregido en
>= 1.3.0, < 4.4.134.4.13 (4.4.20 mediante ELTS)
>= 5.0.0, < 5.2.115.2.11
>= 6.0.0, < 6.0.96.0.9
>= 7.0.0, < 7.1.27.1.2

Este laboratorio apunta a 7.1.1, la última versión antes de la corrección.


Causa Raíz

La documentación del desarrollador de Mautic afirma que las plantillas de temas se renderizan en un sandbox restringido de Twig:

Mautic renderiza las plantillas de Temas subidas por el usuario en un entorno sandbox restringido de Twig. El sandbox bloquea ciertas funciones y filtros que podrían permitir la ejecución remota de código, la fuga de datos o la exploración del sistema de archivos.

En las versiones afectadas, esa política de sandbox no existe. La corrección (7.1.2) introduce ThemeSandboxPolicy.php, una implementación de SecurityPolicyInterface basada en listas negras que bloquea los filtros map, filter y reduce, y un conjunto de funciones que incluyen source() (lectura arbitraria de archivos) y configGetParameter() (filtra credenciales de base de datos y la clave secreta de la aplicación). El comentario en línea de la propia corrección documenta la forma exacta del payload utilizado en esta PoC:

private const DENIED_FILTERS = [
    'map',    // {{ ['id']|map('system')|join }} -> RCE
    'reduce',
    'filter',
];

Antes de esta política, no existía tal restricción en ninguna ruta de renderizado de temas.


Análisis

La cadena fue validada de extremo a extremo contra una cuenta con pocos privilegios que solo tenía los grupos de permisos Temas (crear/editar) y Correos electrónicos (crear/editar) — no Administrador — para coincidir con la condición previa PR:L en el vector CVSS del aviso.

  1. Ejecución de comandos — subir un tema modificado y abrir el constructor de correos electrónicos ejecuta las llamadas system() incrustadas en el archivo .twig del tema.
  2. Robo de credenciales — la misma primitiva lee el propio config/local.php de Mautic, exponiendo las credenciales de la base de datos y la secret_key de la aplicación en texto plano.
  3. Escalada de privilegios — las credenciales de base de datos robadas se utilizan para abrir una conexión PDO directa desde dentro del payload SSTI y promover la cuenta con pocos privilegios a role_id 1 (Administrador), evitando por completo las comprobaciones de permisos a nivel de aplicación de Mautic.
uid=33(www-data) gid=33(www-data) groups=33(www-data)
'db_host' => 'mautic-db',
'db_user' => 'mautic',
'db_password' => 'mauticpass',
'secret_key' => 'a15d98da823d751f4a0a5219123f4afbd90eb254074b1cea07518a3c0db70bcd',
rows_updated=1
confirm: 2|priv-esc|1

Condiciones previas confirmadas empíricamente

El aviso indica PR:L. Este laboratorio confirma la condición previa específica de pocos privilegios en la práctica: alcanzar el disparador de renderizado requiere tanto permisos de carga de temas como permisos de creación de correos electrónicos — no un único permiso bajo genérico. Ninguna solución alternativa más allá de la corrección oficial restringe esto; la única mitigación documentada es limitar core:themes:create a administradores de confianza.


Estructura del Repositorio

cve-2026-9558-poc/
├── podman-compose.yml       # MariaDB + Mautic 7.1.1-apache, red puente aislada
├── Dockerfile.mautic        # fija la imagen oficial a la versión vulnerable
├── install.sh                # arranque no interactivo de mautic:install
└── sparse/
    ├── config.json           # manifiesto del tema malicioso
    ├── sparse.zip            # tema listo para ser subido
    └── html/
        ├── email.html.twig   # plantilla de payload SSTI. Mira al final del archivo donde está el marcador de posición para inyectar comandos arbitrarios.
        ├── ...               # Otros archivos .twig
        └── .../              # Otros directorios (por ejemplo css)

Requisitos

HerramientaVersiónNotas
Podman≥ 4.0requiere podman-compose
curlcualquierausado por install.sh para verificar disponibilidad

La explotación en esta PoC se realiza manualmente a través de la interfaz web de Mautic (carga del Administrador de Temas → constructor de correos electrónicos), coincidiendo con el flujo de trabajo real del atacante: la carga de temas es una operación de archivo, no una llamada API que valga la pena automatizar para esta etapa del análisis.


Uso

1. Construir e iniciar el laboratorio

podman-compose up -d
./install.sh

install.sh espera a que el contenedor de la aplicación acepte conexiones, luego ejecuta mautic:install de forma no interactiva para iniciar la primera cuenta de Administrador.

2. Crear una cuenta con pocos privilegios

Desde la interfaz de usuario, crea un rol personalizado con solo Temas (crear/editar) y Correos electrónicos (crear/editar) habilitados, y un usuario asignado a ese rol. Esto reproduce la condición previa PR:L en lugar de probar como Administrador.

3. Subir el tema malicioso

Inicia sesión como el usuario con pocos privilegios. Desde Temas → Cargar, sube un ZIP creado a partir de sparse/config.json y sparse/html/page.html.twig (o una copia modificada de cualquier tema incorporado con la línea de payload añadida a su archivo .twig).

4. Disparar el renderizado

Desde Canales → Correos electrónicos → Nuevo, selecciona el tema subido como plantilla y abre el constructor. El payload se ejecuta tan pronto como el tema se renderiza para la vista previa.

5. Limpieza

podman-compose down -v

Salida Esperada

uid=33(www-data) gid=33(www-data) groups=33(www-data)

Referencias

Descargar herramienta