Saltar al contenido
CVE-2026-75872 ·
Media · 18 de agosto de 2026

HTML Injection en MailerUp permite entregar HTML controlado por el atacante en los correos de verificación de doble opt-in

S0
Secur0 CNA
CVE-2026-75872

Descripción

Improper Neutralization of Script-Related HTML Tags in a Web Page (CWE-80) en el flujo de alta pública de suscriptores (_send_verification_email y _verification_email_html, backend/apps/forms/views.py), expuesto en POST /subscribe/{form_id}/, en MailerUp 1.1.2, que permite a un atacante remoto no autenticado hacer que la aplicación envíe a una dirección de correo de su elección, desde la identidad de envío configurada por el propietario del formulario, un mensaje que incorpora marcado HTML arbitrario, mediante el campo first_name del cuerpo de la petición, debido a que dicho campo se tomaba directamente de la petición sin autenticar y se interpolaba en bruto en el saludo del correo de verificación, que a su vez se insertaba sin escapar en la plantilla HTML del mensaje, a diferencia de la respuesta HTML de la propia página, que sí aplicaba escape() sobre el mismo valor, y del generador del código de incrustación _build_embed_html, que ya escapaba sistemáticamente los campos que llegaban a HTML. La misma petición determina el destinatario a través del campo email, por lo que el atacante controla simultáneamente el contenido inyectado y el receptor del mensaje. El commit de corrección aplica además el mismo saneado a form_obj.title y la validación _safe_color() a form_obj.primary_color, ambos interpolados en bruto en esa misma plantilla y controlados por el propietario del formulario. Esto resulta en la emisión, por parte del sistema vulnerable y desde su infraestructura legítima, de un mensaje no autorizado cuyo contenido HTML elige el atacante. La prueba de concepto demuestra que el marcado inyectado llega sin escapar al cuerpo del correo recibido y que una imagen remota incluida en él genera una petición al servidor del atacante al abrirse el mensaje.

Tipo de vulnerabilidad (CWE)

CWE-80: Improper Neutralization of Script-Related HTML Tags in a Web Page (Basic XSS)

Versiones afectadas

MailerUp anteriores a 1.1.3 (corregido en 1.1.3 por el commit da4aedc, de fecha 2026-07-15). El sumidero está presente desde el commit inicial del repositorio 404eda9 (2026-06-20) y estuvo presente en las etiquetas v1.0.3, v1.1.0, v1.1.1 y v1.1.2, por lo que sí hubo releases etiquetadas distribuidas en estado vulnerable. La versión 1.1.3 corresponde a la etiqueta v1.1.3, que es el propio commit de corrección. Las versiones se leen de la constante VERSION en backend/mailerup/settings/base.py y del campo version de frontend/package.json. Estado por defecto: no afectado.

Puntuación (CVSS 4.0)

Media (6.9)

CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N

Solución

Actualizar a la versión 1.1.3 o superior.

Parche

Commit da4aedc

Créditos

  • Nacho García Egea - finder (descubridor)
  • Xoán M. Otero Jorge - analyst (analista)
  • Secur0 CNA - coordinator (coordinador)
  • Mario Álvarez Fernández - remediation developer (desarrollador de la corrección) Origen del descubrimiento: Externo Registro oficial: CVE-2026-75872