CVE-2025-68461
Prioriza la corrección. Ella está bajo explotación confirmada por CISA y tiene prueba de concepto pública.
Apply mitigations per vendor instructions, follow applicable BOD 22-01 guidance for cloud services, or discontinue use of the product if mitigations are unavailable.
Resumen
Falha de Cross-Site Scripting (CWE-79) no sanitizador HTML/SVG do Roundcube Webmail, explorável através do elemento dentro de um SVG embutido em email. Importa porque está no catálogo KEV da CISA com exploração confirmada, e o vetor de entrega é o próprio email — a vítima só precisa visualizar a mensagem (o CVSS marca UI:N), sem precisar clicar em nada.
Detalle técnico
O componente afetado é o sanitizador de HTML/SVG do Roundcube, implementado em program/lib/Roundcube/rcube_washtml.php. Esse arquivo é responsável por 'lavar' o HTML de emails recebidos antes de renderizá-lo na interface web, removendo tags e atributos perigosos — incluindo os elementos SVG que permitem animação de atributos (, ) via SMIL.
O bug estava no tratamento do atributo attributeName de . Quando esse atributo continha um valor com namespace, como xlink:href, o código fazia apenas strtolower($node->getAttribute('attributeName')) sem remover o prefixo de namespace. Isso permitia que o valor 'escapasse' da checagem contra a lista de atributos permitidos ($this->_html_attribs), e que a função attribute_value(), usada para comparar valores de 'to'/'from' contra padrões bloqueados, também falhasse em normalizar o valor real do atributo (também por causa do namespace não removido). O resultado prático, demonstrado nos testes do commit de correção, é que um dentro de um em SVG passava pelo sanitizador praticamente intacto, ao invés de ser bloqueado.
A correção (commit bfa0326) adiciona um preg_replace('/^.*:/', '', $key) para remover qualquer prefixo de namespace tanto na leitura do attributeName quanto na comparação de valores em attribute_value(), além de forçar cast para string e normalizar case antes da comparação. O efeito é que qualquer que tente manipular um atributo do tipo href/src (via 'to', 'from' ou 'values') passa a ser bloqueado e substituído por um comentário , independentemente do namespace usado para tentar disfarçar o nome do atributo.
Cómo se explota
O vetor é um email HTML contendo um SVG malicioso com um elemento cujo attributeName manipula o atributo href de um link (por exemplo via xlink:href), atribuindo um valor javascript: através de 'to', 'from' ou 'values'. Como SMIL permite disparar a animação automaticamente (sem exigir clique do usuário), a execução do JavaScript malicioso ocorre no contexto da sessão do webmail da vítima assim que ela abre ou pré-visualiza o email — condição refletida pelo UI:N no vetor CVSS.
Pré-requisito real: o atacante não precisa de conta nem acesso prévio ao Roundcube (PR:N) — só precisa conseguir entregar um email HTML à caixa de entrada da vítima, algo trivial via SMTP. O requisito do lado da vítima é abrir/visualizar o email num Roundcube vulnerável com renderização de HTML habilitada (padrão na maioria das instalações). A complexidade é baixa (AC:L): não há necessidade de engenharia social elaborada além de convencer ou simplesmente aguardar a abertura da mensagem.
O impacto documentado no CVSS é XSS clássico com confidencialidade e integridade limitadas (C:L/I:L), sem afetar disponibilidade, mas com Scope Changed (S:C) — o JavaScript executa no contexto do domínio do webmail, podendo ler/manipular dados da sessão da vítima (emails, contatos, tokens de sessão) além do componente vulnerável isoladamente. A presença no catálogo KEV da CISA confirma exploração ativa in the wild, embora as fontes não detalhem a campanha ou o ator responsável, e a CISA marca 'Known To Be Used in Ransomware Campaigns' como desconhecido.
Versiones
Cómo protegerse
Atualizar para Roundcube Webmail 1.6.12 (ramo 1.6.x) ou 1.5.12 (ramo 1.5.x LTS), que contêm a correção no sanitizador. O fornecedor recomenda explicitamente atualizar 'todas as instalações produtivas' dos ramos 1.6.x e 1.5.x com essas versões.
As fontes disponíveis não documentam uma flag de configuração ou parâmetro para desabilitar o suporte a SVG/animate no sanitizador como paliativo oficial — a correção está embutida no código do rcube_washtml.php, não é ativável/desativável por configuração. Na ausência de atualização, um controle compensatório genérico (não confirmado como mitigação oficial deste CVE) é restringir a exibição de emails em modo texto puro para usuários de risco, eliminando a renderização de HTML/SVG por completo; isso tem custo de usabilidade alto e não é uma solução do fornecedor para esta falha específica.
A correção do KEV da CISA tem prazo (due date) em 13/03/2026, com a exigência de aplicar mitigações do fornecedor ou descontinuar o uso do produto caso não seja possível mitigar — reforçando que a atualização de versão é o caminho principal, não há substituto equivalente por WAF ou filtro de rede, já que o vetor é o conteúdo do email processado internamente pelo sanitizador PHP.
Cómo detectar
Não há uma assinatura de rede HTTP confiável para detectar exploração, já que o payload é entregue como conteúdo de email (SVG malicioso embutido em HTML) e processado internamente pelo sanitizador PHP do servidor, não por uma requisição distintiva. O sinal mais confiável é inspecionar o corpo de emails armazenados ou em quarentena (via gateway de email ou análise de mailbox) buscando SVGs com , cujo attributeName contenha um prefixo de namespace (como xlink:href) combinado com valores 'to', 'from' ou 'values' apontando para esquemas javascript: ou data:.
Como o processamento ocorre no lado do servidor Roundcube ao renderizar o email para o navegador da vítima, logs de acesso web (Apache/nginx) não vão diferenciar uma requisição normal de visualização de email de uma exploração — a anomalia está no conteúdo da mensagem, não no padrão de tráfego.