← voltar
CVE-2020-13965mediumsob ataqueCWE-80

CVE-2020-13965

85Vexday Risk Score

Priorize a correção. Ela está sob exploração confirmada pelo CISA e tem prova de conceito pública.

ssvc Actcvss 6.3epss 77%
da publicação à arma1404 dias
Publicada no NVD9 de jun.
1ª PoC+1404d
CISA KEV+1478d
probabilidade de exploração
77%top 1% das CVEs
exploração observada
simCISA + VulnCheck
1 exploit(s) público(s)
Ação exigida pela CISAprazo federal: 2024-07-17

Apply mitigations per vendor instructions or discontinue use of the product if mitigations are unavailable.

Resumo

O Roundcube Webmail permitia que anexos do tipo text/xml fossem renderizados em janela de pré-visualização (preview) dentro do webmail. Como navegadores modernos interpretam namespaces XHTML dentro de XML, um atacante podia embutir um elemento via namespace e executar JavaScript arbitrário no contexto da sessão da vítima só com o clique/preview do anexo. A falha está no catálogo KEV da CISA, ou seja, há exploração confirmada em ambiente real, o que eleva a prioridade de correção mesmo com CVSS moderado (6.3).

Detalhamento técnico

A causa raiz (CWE-79, XSS refletido/armazenado via conteúdo controlado pelo atacante) está na lista de mimetypes que o Roundcube considera seguros para abrir em preview inline. Em versões vulneráveis, 'text/xml' fazia parte da lista padrão de 'client_mimetypes' (config/defaults.inc.php e o fallback hardcoded em rcube_config.php). Quando o usuário abre/pré-visualiza um anexo desse tipo, o Roundcube renderiza o conteúdo diretamente no iframe/preview do webmail, delegando a interpretação ao motor XML do próprio navegador.

O problema é que o parser XML do navegador reconhece o namespace 'http://www.w3.org/1999/xhtml'. Um atacante pode declarar esse namespace em um elemento arbitrário (ex.: ) e o navegador trata o conteúdo como HTML/XHTML válido, executando o embutido — efetivamente contornando qualquer sanitização de HTML que o Roundcube aplicaria a anexos text/html, porque o código nunca esperava que text/xml carregasse markup executável.

A correção do fornecedor (commit 884eb61) atacou o problema em duas camadas: removeu 'text/xml' da lista padrão de mimetypes permitidos para preview em rcube_config.php, e — mais importante — adicionou um filtro explícito em rcmail_supported_mimetypes() (program/steps/mail/func.inc) que remove 'text/xml' do conjunto de tipos suportados independentemente de como o administrador tenha configurado 'client_mimetypes', com o comentário do próprio time: 'We cannot securely preview XML files as we do not have a proper parser'. Ou seja, o fornecedor reconhece que não dava para sanitizar XML de forma confiável e optou por bloquear a categoria inteira.

Como é explorada

O vetor é um e-mail com anexo MIME do tipo 'text/xml' contendo um elemento com o namespace XHTML citado, disfarçado como conteúdo inócuo (ex.: alert.xml). O atacante não precisa de credenciais no Roundcube nem de configuração não padrão do servidor — só precisa conseguir entregar o e-mail à caixa da vítima (qualquer remetente externo, sem necessidade de bypass de filtro de spam sofisticado nos relatos públicos). A pré-condição real é interação do usuário (UI:R no vetor CVSS): a vítima precisa abrir a mensagem e clicar no anexo para acionar o preview — não há execução automática ao simplesmente abrir o e-mail.

A prova de conceito pública (DrunkenShells) demonstra a criação do e-mail com ferramentas de montagem MIME (mpack), ajustando manualmente o Content-Type para 'text/xml' já que essas ferramentas não geram esse tipo nativamente. Ao clicar no anexo, o JavaScript do atacante executa no contexto da sessão do webmail da vítima.

Uma vez executado, o payload roda com os mesmos privilégios da sessão web do usuário dentro do Roundcube, permitindo ações como leitura, exfiltração ou exclusão de e-mails, manipulação da interface e potencialmente encadeamento com outras falhas de sessão — o disclosure público remete à mesma classe de impacto documentada em CVE-2020-12625, outra XSS via preview no Roundcube. Não há elevação a acesso de sistema operacional ou ao servidor; o impacto fica confinado à sessão do webmail da vítima (C/I/A todos 'Low' no vetor CVSS).

Versões

Afetadas
Roundcube Webmail anteriores a 1.3.12 (ramo 1.3.x) e 1.4.x anteriores a 1.4.5.
Corrigidas em
1.3.12 (backport para o ramo LTS 1.3) e 1.4.5.

Como se proteger

A correção definitiva é atualizar para Roundcube 1.4.5 (ramo 1.4.x) ou 1.3.12 (ramo LTS 1.3.x), que removem 'text/xml' da lista de tipos permitidos para preview e bloqueiam esse tipo mesmo que um administrador o reintroduza manualmente na configuração 'client_mimetypes'.

Se a atualização não for possível de imediato, o paliativo real é editar a configuração 'client_mimetypes' no config.inc.php da instalação e garantir que 'text/xml' não esteja na lista de tipos habilitados para preview — isso reduz a superfície de ataque nas versões vulneráveis, já que o comportamento inseguro depende justamente desse tipo estar na lista permitida. Vale lembrar que esse ajuste manual só funciona nas versões pré-patch; nas versões corrigidas o bloqueio é forçado no código independente da configuração.

O que não funciona como mitigação: confiar em filtros de anexo do lado do cliente de e-mail (a exploração ocorre dentro do preview do próprio Roundcube, não no cliente de e-mail da vítima) ou assumir que renomear a extensão do arquivo (.xml para outra coisa) impede o ataque — o que importa é o Content-Type MIME declarado no anexo, não a extensão exibida.

Como detectar

Em nível de gateway de e-mail ou análise de anexos, o indicador é um anexo com Content-Type/Content-Disposition indicando 'text/xml' (ou nome de arquivo com extensão .xml) cujo conteúdo declara o namespace 'xmlns:*="http://www.w3.org/1999/xhtml"' associado a elementos como 'script' — esse padrão é atípico para XML legítimo de troca de dados e é o artefato central da prova de conceito pública.

No lado do servidor Roundcube não há um log nativo que registre 'anexo pré-visualizado como XML'; a exploração ocorre no navegador da vítima após interação, então não existe um sinal de rede ou de aplicação confiável e específico para essa CVE além da inspeção do conteúdo do anexo em trânsito (gateway de e-mail/antivírus) ou da revisão manual de e-mails suspeitos recebidos antes da atualização.

Pesquisado e redigido com IA a partir do advisory do fornecedor e de análises públicas, com as fontes acima. Confira sempre a versão corrigida no advisory oficial antes de agir.
An issue was discovered in Roundcube Webmail before 1.3.12 and 1.4.x before 1.4.5. There is XSS via a malicious XML attachment because text/xml is among the allowed types for a preview.
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:L/A:L
Produtos afetados
n/a · n/a
PoCs públicas encontradas1
githubgithub.com/mbadanoiu/CVE-2020-139650
⚠ Recursos públicos, para você avaliar a exposição de sistemas que controla ou está autorizado a testar. Teste apenas com autorização.