← back
CVE-2024-37383mediumunder attackCWE-79

CVE-2024-37383

85Vexday Risk Score

Prioritize patching. It under exploitation confirmed by CISA and has a public proof of concept.

ssvc Actcvss 6.1epss 73%
from disclosure to weapon139 days
Published on NVDJun 7
1st PoC+139d
CISA KEV+139d
exploitation probability
73%top 1% of all CVEs
observed exploitation
yesCISA + VulnCheck
7 public exploit(s)
Action required by CISAfederal deadline: 2024-11-14

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

Summary

Vulnerabilidade de XSS no Roundcube Webmail causada por uma falha no sanitizador HTML/SVG (rcube_washtml.php), que permite que um e-mail malicioso contendo SVG com elemento execute JavaScript arbitrário no contexto da sessão do webmail quando a vítima abre ou visualiza a mensagem. Está no catálogo KEV da CISA com exploração confirmada, o que eleva sua prioridade prática muito além do que o CVSS 6.1 sugere — é vetor de comprometimento de conta via e-mail, sem necessidade de credenciais do atacante.

Technical detail

O componente rcube_washtml.php é o sanitizador que o Roundcube usa para neutralizar HTML/SVG recebido em e-mails antes de renderizá-lo na interface web. Ele mantém uma lógica de whitelist para atributos de tags SVG como , bloqueando tentativas de usar esse elemento para reescrever atributos sensíveis (como href) via animação. O bug está na função attribute_value(): a comparação entre o valor esperado e o valor real do atributo era feita com strtolower($attr_value) === strtolower($attr->nodeValue), sem normalizar espaços em branco.

Isso permite que um atacante insira um valor de atributo com espaço extra (por exemplo, no nome do atributo alvo dentro de attributeName) que falha a comparação exata e escapa da regra de bloqueio, mas ainda é interpretado normalmente pelo mecanismo de renderização SVG do navegador. O elemento sobrevive à sanitização e pode então sobrescrever dinamicamente um atributo como href com um valor javascript:, criando um vetor de execução de script que o filtro deveria ter removido.

O CWE mais próximo é XSS (CWE-79), com componente de escaping/normalização inadequada (a falta de trim() na comparação de strings é a causa raiz técnica). A falha foi reportada por Valentin T. e Lutz Wolf, da CrowdStrike.

O vetor CVSS (AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N) reflete que não é preciso autenticação para enviar o e-mail malicioso, mas a vítima precisa interagir — abrir/visualizar a mensagem no webmail — e o escopo é alterado (S:C) porque o JavaScript executa no contexto de sessão do usuário, não do atacante.

How it’s exploited

O vetor de ataque é um e-mail HTML enviado à vítima contendo um bloco SVG com manipulando attributeName com espaçamento anômalo, de forma que o sanitizador do Roundcube deixe passar a construção sem removê-la. Quando a vítima abre a mensagem no webmail (não é necessário clicar em link externo, apenas visualizar/renderizar o e-mail), o JavaScript malicioso executa no contexto da origem do Roundcube, com acesso à sessão autenticada do usuário.

Não há pré-condição de configuração não padrão: o sanitizador afetado é o comportamento padrão de renderização de e-mails HTML no Roundcube. A única pré-condição real é interação do usuário (abrir/visualizar o e-mail) — não é 0-click, mas exige engajamento mínimo, o que em campanhas de phishing dirigidas é trivial de obter.

O impacto prático demonstrado inclui roubo de sessão/cookies, leitura de e-mails da vítima, e potencialmente encadeamento com outras ações que o webmail permite (redirecionamento de e-mails, alteração de configurações, exfiltração de contatos). A presença no catálogo KEV da CISA confirma exploração ativa em campanhas reais, e existe PoC pública circulando — o que reduz a barreira de reprodução para qualquer atacante motivado.

Versions

Affected
Roundcube Webmail anterior a 1.5.7 (branch 1.5.x) e branch 1.6.x anterior a 1.6.7.
Fixed in
1.5.7 e 1.6.7. Backport confirmado para Debian 10 (buster) LTS na versão 1.3.17+dfsg.1-1~deb10u6.

How to protect

A correção definitiva é atualizar para Roundcube 1.5.7 (branch 1.5.x) ou 1.6.7 (branch 1.6.x), que adicionam trim() na comparação de valores de atributos SVG dentro do sanitizador, fechando o bypass. Distribuições com backport próprio, como o Debian LTS, corrigiram via pacote específico (Debian 10 buster: 1.3.17+dfsg.1-1~deb10u6) — quem usa pacotes de distro deve confirmar se recebeu o patch equivalente em vez de depender apenas do número de versão upstream do Roundcube.

Não há paliativo de configuração documentado que neutralize essa falha sem atualizar o código do sanitizador — desativar a pré-visualização de HTML de e-mails reduziria a superfície (forçando exibição em texto puro), mas isso é uma mudança de usabilidade, não uma mitigação oficial do fornecedor, e depende de cada usuário aplicar essa preferência manualmente. Um WAF na frente do webmail não filtra esse vetor de forma confiável, porque o payload malicioso trafega dentro do corpo MIME do e-mail, processado internamente pelo Roundcube após passar por SMTP/IMAP — não há como um WAF de borda HTTP inspecionar esse conteúdo de forma consistente antes da renderização.

Dado que a falha está no catálogo KEV da CISA, agências e operadores sob esse regime têm prazo de remediação obrigatório definido pela própria CISA; para os demais, o tratamento deve ser o mesmo: atualização imediata, sem postergar por causa do CVSS moderado — a combinação de PoC pública e exploração confirmada torna essa CVE de prioridade alta na prática.

How to detect

Não há assinatura de rede confiável porque o vetor é conteúdo dentro do corpo MIME/HTML do e-mail, processado internamente pelo Roundcube antes de chegar a qualquer log HTTP padrão. O sinal mais direto é inspecionar e-mails recebidos (via gateway de e-mail, sandbox de anexos ou varredura de conteúdo) por blocos SVG contendo com atributos como attributeName ou href com espaçamento anômalo, uso de valores javascript: dentro de values/href, ou padrões consistentes com a PoC pública desta CVE.

Em logs de aplicação do Roundcube não há registro nativo de tentativas de XSS bloqueadas ou não — a defesa é inteiramente client-side no momento da renderização, então a ausência de log não indica ausência de tentativa. Times de SOC devem tratar isso como um problema de triagem de e-mail malicioso, não de monitoramento de aplicação web.

Researched and written with AI from the vendor advisory and public analysis, with the sources above. Always confirm the fixed version in the official advisory before acting.
Roundcube Webmail before 1.5.7 and 1.6.x before 1.6.7 allows XSS via SVG animate attributes.
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N
Affected products
n/a · n/a
⚠ Public resources, to assess the exposure of systems you control or are authorized to test. Test only with authorization.