← volver
CVE-2023-5631mediumbajo ataqueCWE-79

Stored XSS vulnerability in Roundcube

65Vexday Risk Score

Prioriza la corrección. Ella está bajo explotación confirmada por CISA.

ssvc Actcvss 6.1epss 76%
de la publicación al arma
Publicada en NVD18 oct
CISA KEV+8d
probabilidad de explotación
76%top 1% de las CVE
explotación observada
CISA + VulnCheck
Acción exigida por CISAplazo federal: 2023-11-16

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

Resumen

Falha de XSS armazenado no sanitizador HTML do Roundcube (rcube_washtml.php), explorável por meio de um e-mail HTML contendo uma imagem SVG embutida como data URI. Como o sanitizador é a única barreira entre o HTML de um e-mail arbitrário e o DOM da interface webmail, um bypass nele permite executar JavaScript no contexto da sessão do usuário só pelo fato de a mensagem ser exibida — está no catálogo KEV da CISA por exploração confirmada em campanhas reais contra webmail.

Detalle técnico

O rcube_washtml.php processa URIs do tipo data:image/... para decidir se sanitiza o conteúdo como SVG. A checagem original comparava o tipo MIME extraído via regex (`$matches[1]`) contendo a substring 'svg' sem normalizar espaços em branco. Um atacante podia inserir espaço, tab ou nova linha dentro da string 'svg' (ex.: 'image/s vg+xml' ou 'image/s\nvg+xml'), o que fazia o stripos() por 'svg' falhar — o washtml não reconhecia o payload como SVG e, portanto, não aplicava a sanitização destinada a remover atributos de evento e scripts.

Cómo se explota

O vetor é um e-mail HTML malicioso: um elemento aponta para um SVG codificado em base64 contendo, por exemplo, um — a manipulação do tipo MIME com espaço em branco engana o filtro. Quando a vítima abre a mensagem na interface webmail (nenhuma ação além de visualizar o e-mail é necessária, daí UI:R no vetor CVSS), o navegador processa a data URI, o SVG interno é renderizado e o manipulador de evento onerror/onload dispara, executando JavaScript arbitrário no DOM autenticado do Roundcube.

Versiones

Afectadas
Roundcube antes de 1.4.15; 1.5.x antes de 1.5.5; 1.6.x antes de 1.6.4
Corregidas en
1.4.15, 1.5.5, 1.6.4

Cómo protegerse

Atualizar para 1.4.15, 1.5.5 ou 1.6.4, que normalizam a string de tipo MIME (removendo espaços) antes de checar 'svg' e antes de checar base64, eliminando o bypass. Não há flag de configuração ou parâmetro do washtml que mitigue isso sem patch, porque o bug está na lógica central de sanitização; a única mitigação paliativa real é forçar exibição de e-mails em texto simples (desabilitando renderização HTML) ou filtrar/bloquear anexos e corpos de mensagem contendo data URIs de SVG em um gateway de e-mail — ambas quebram funcionalidade e não substituem o patch.

Cómo detectar

Procurar no corpo de mensagens armazenadas por data URIs do tipo image/svg+xml com espaço, tabulação ou nova linha inseridos dentro da palavra 'svg' (ex.: 'image/s vg+xml', 'image/s\nvg+xml'), geralmente dentro de tags ou em conteúdo base64. Como o payload fica armazenado na caixa de mensagens e só é ativado no momento da renderização pelo cliente, não há sinal de rede confiável — a análise precisa ser feita no conteúdo das mensagens (banco/armazenamento IMAP) ou em logs de aplicação do Roundcube se houver alerta de erro JS reportado pelo usuário.

Investigado y redactado con IA a partir del advisory del fabricante y análisis públicos, con las fuentes citadas. Verifica siempre la versión corregida en el advisory oficial antes de actuar.
Roundcube before 1.4.15, 1.5.x before 1.5.5, and 1.6.x before 1.6.4 allows stored XSS via an HTML e-mail message with a crafted SVG document because of program/lib/Roundcube/rcube_washtml.php behavior. This could allow a remote attacker to load arbitrary JavaScript code.
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N
Productos afectados
Roundcube · Roundcubemail