CVE-2019-9670
Corrige ahora. Ella está bajo explotación confirmada por CISA, tiene exploit funcional público y 1 grupo(s) de amenaza la utilizan.
Grupos conocidos por explotar esta vulnerabilidad (atribución MITRE ATT&CK).
Apply updates per vendor instructions.
Resumen
XXE (CWE-611) no componente mailboxd do Synacor Zimbra Collaboration Suite, explorável sem autenticação através do servlet Autodiscover (endpoint /Autodiscover/Autodiscover.xml). A falha isolada permite leitura de arquivos arbitrários no servidor, mas seu impacto real vem de servir como primeiro elo de uma cadeia que leva a execução remota de código completa — por isso está no catálogo KEV da CISA com exploração ativa confirmada e continua sendo escaneada massivamente anos após a divulgação.
Detalle técnico
O parser XML do servlet Autodiscover processa o corpo da requisição POST sem desabilitar a resolução de DTD e entidades externas. O atacante controla integralmente o XML enviado, incluindo a declaração DOCTYPE com uma ENTITY do tipo SYSTEM apontando para um recurso arbitrário (tipicamente file://). O valor resolvido da entidade é refletido de volta na resposta HTTP através de campos do próprio protocolo Autodiscover (ex.: AcceptableResponseSchema), o que torna a exfiltração direta, sem necessidade de canal out-of-band.
Segundo o bugzilla oficial do Zimbra (bug 109129, CWE-611), a falha afeta toda a branch 8.7.x antes do patch 10 e foi classificada internamente pela Synacor com CVSS 6.4 — bem abaixo do 9.8 atribuído externamente. A diferença reflete que a pontuação alta considera o encadeamento com outras falhas, não a XXE isolada.
O alvo prático documentado da leitura arbitrária é o arquivo de configuração do Zimbra que contém a senha LDAP da conta de serviço 'zimbra'. Essa credencial não é um dado qualquer: é a chave que destrava o restante da cadeia de exploração descrita pelo módulo Metasploit associado.
Cómo se explota
O vetor é uma requisição HTTP POST não autenticada para /Autodiscover/Autodiscover.xml — não exige sessão, cookie ou qualquer credencial prévia, o que casa com o vetor CVSS AV:N/PR:N/UI:N. O payload documentado publicamente (SANS ISC, PacketStorm) injeta um DOCTYPE com ENTITY SYSTEM referenciando um arquivo local, embutido no campo AcceptableResponseSchema da requisição Autodiscover, e a resposta do servidor devolve o conteúdo lido.
Isoladamente, a XXE entrega apenas leitura de arquivo. O módulo Metasploit 'Zimbra Collaboration Autodiscover Servlet XXE and ProxyServlet SSRF' encadeia essa leitura com uma segunda falha (CVE-2019-9621, SSRF no ProxyServlet): usa a senha LDAP da conta 'zimbra' extraída via XXE para gerar um AuthRequest SOAP e obter um cookie de usuário; em seguida abusa do SSRF para proxy'ar um AuthRequest com essas credenciais até a porta administrativa, obtendo um cookie de admin; com esse cookie, usa o Client Upload servlet para subir um webshell JSP e executar comandos no host. O módulo foi testado contra ZCS 8.7.1.GA.1670.UBUNTU16.64.
O SANS ISC registrou em 2021 — dois anos após a divulgação original de março de 2019 — scanning ativo contínuo contra o endpoint Autodiscover.xml, com origem em blocos de hosting, evidenciando que instâncias não corrigidas seguem sendo alvo automatizado de varredura na internet.
Versiones
Cómo protegerse
A correção oficial está em 8.7.11 Patch 10 (fix release), conforme registrado no bugzilla do Zimbra e na página wiki de releases 8.7.11/P10. Não há informação nas fontes sobre backport para outras branches além da 8.7.x — a wiki atual de advisories do Zimbra só lista vulnerabilidades corrigidas em versões atualmente suportadas, o que sugere que a linha 8.7.x está fora de suporte e deve ser substituída por uma versão suportada corrente, não apenas patcheada.
Como paliativo quando o patch não pode ser aplicado imediatamente, bloquear ou restringir o acesso ao endpoint /Autodiscover/Autodiscover.xml via proxy reverso ou regra de borda é a única mitigação concreta mencionada nas fontes — com o custo de quebrar a funcionalidade de Autodiscover para clientes que dependam dela (Outlook/EAS). Não há flag de configuração documentada nas fontes para desabilitar resolução de entidades externas sem aplicar o patch.
Corrigir apenas a SSRF do ProxyServlet (CVE-2019-9621) sem aplicar o patch da XXE não resolve o problema: a XXE é um ponto de entrada independente que já entrega leitura de arquivo sensível por si só, mesmo sem a cadeia completa para RCE.
Cómo detectar
O padrão mais confiável em log de acesso é uma requisição POST para /Autodiscover/Autodiscover.xml com Content-Type application/xml cujo corpo contém uma declaração DOCTYPE seguida de ENTITY do tipo SYSTEM referenciando um recurso local (ex.: file:///etc/passwd), tipicamente injetada dentro do campo EMailAddress ou AcceptableResponseSchema da estrutura Autodiscover. O exemplo capturado pelo SANS ISC em 2021 usa exatamente esse formato, com User-Agent de navegador comum (não indicativo por si só) e origem em blocos de hosting.
A ausência desse padrão específico no log não garante ausência de tentativa de exploração: variações de payload XXE (outros protocolos de URI, entidades parametrizadas, exfiltração fora de banda) não deixariam necessariamente o mesmo rastro, e as fontes não documentam um método confiável de detecção para essas variantes.