CVE-2024-37383
Priorize a correção. Ela está sob exploração confirmada pelo CISA e tem prova de conceito pública.
Apply mitigations per vendor instructions or discontinue use of the product if mitigations are unavailable.
Resumo
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.
Detalhamento técnico
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.
Como é explorada
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.
Versões
Como se proteger
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.
Como detectar
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.