XSS na exportação SVG do Highcharts: o que GHSA-mw4f-gj5x-6xr4 significa para o seu site
O Highcharts divulgou uma falha de cross-site scripting (XSS) no navegador relacionada com a filtragem do texto dos gráficos. A falha está identificada como GHSA-mw4f-gj5x-6xr4 e CVE-2026-116796. Pode transformar uma ligação num SVG exportado ou analisado novamente num caminho para executar JavaScript. Uma página que carrega uma versão afetada não é automaticamente explorável. O atacante tem de controlar o texto do gráfico, tem de ocorrer uma exportação ou serialização e um utilizador tem de ativar a ligação resultante. O Highcharts classifica a gravidade como elevada.
As datas são relevantes. O Highcharts publicou o aviso em 2026-09-29. O registo de alterações do Highcharts indica que a versão 13.1.1, com uma correção de segurança, foi lançada em 2026-09-20. Segundo a base de avisos do GitHub, o GitHub e a NVD publicaram os seus registos em 2026-10-28. É um problema divulgado recentemente, mas 28 de outubro não foi a data da primeira divulgação.
Como funciona um SVG
SVG (Scalable Vector Graphics) é um formato de imagem baseado em XML. O seu código descreve formas e texto com elementos como <rect>, <path> e <text>, em vez de guardar uma grelha fixa de píxeis. O navegador analisa esses elementos e desenha o resultado. viewBox define as coordenadas internas do desenho, que o navegador pode adaptar ao espaço disponível. Na ilustração, cada <rect> define a posição e o tamanho de uma barra. Consulte a introdução ao SVG da MDN e a especificação de coordenadas do SVG 2.

Um SVG também pode conter ligações. href é o atributo atual para ligações; xlink:href é uma forma antiga cujo prefixo xlink exige uma declaração de espaço de nomes XML. A forma de carregar o SVG importa: num elemento HTML <img>, as ligações ficam inativas e os scripts não são executados; quando o SVG é analisado como documento ou inserido na página, as ligações podem estar ativas. Esta diferença é central para a falha. Consulte a especificação de ligações do SVG 2 e o guia da MDN sobre ligações em SVG.
Como funciona a falha na exportação SVG
O Highcharts filtra o código fornecido às opções de texto, como o título de um gráfico. Nas versões afetadas, o filtro verifica o esquema de URL em atributos como href e src, mas não aplica a mesma verificação a xlink:href. Analisámos o ficheiro principal distribuído do Highcharts 12.1.0 e encontrámos essa omissão em filterUserAttributes. Assim, uma ligação SVG com um URL javascript: pode passar pelo filtro. A correção oficial acrescenta xlink:href aos atributos sujeitos à validação do esquema de URL.
A apresentação normal do gráfico não constitui o percurso de ataque completo. Segundo o Highcharts, o atributo não cria uma ligação ativa na página original porque não tem aí o espaço de nomes XLink. Quando o gráfico é exportado para SVG, ou o seu código é serializado e analisado novamente, a ligação pode tornar-se ativa. Se um utilizador clicar nela, o script é executado na origem do documento que analisou o resultado. A falha existe quer useHTML esteja ativado, quer não. Leia a análise do impacto do Highcharts.

Uma versão afetada precisa de ser atualizada. Os passos seguintes permitem determinar se a sua aplicação também tem o fluxo de dados e o tratamento do resultado necessários para a exploração.
[MID_BLOG_CTA]
Que versões são afetadas?
| Série do Highcharts | Versões afetadas | Primeira versão corrigida |
|---|---|---|
| 11.x e anteriores | De 10.3.2 a 11.4.8 | 11.4.9 |
| 12.x | De 12.0.0 a 12.6.1 | 12.6.2 |
| 13.x | De 13.0.0 a 13.1.0 | 13.1.1 |
Estes intervalos vêm do aviso do Highcharts. Se a sua aplicação carregar Highcharts a partir de um CDN, verifique o URL que os utilizadores recebem realmente. O ficheiro de dependências pode não refletir o script servido nos seus navegadores.
Como verificar se os seus gráficos estão expostos
Siga o percurso completo na sua aplicação, além da versão do pacote:
- Confirme a versão principal no navegador. Examine o separador Rede ou os URLs dos scripts carregados em cada página que apresenta gráficos. Se Highcharts estiver disponível globalmente,
Highcharts.versioné outra verificação rápida. Inclua ficheiros CDN que não aparecem no ficheiro de dependências. - Rastreie o texto de origem externa. Analise títulos, subtítulos, rótulos e outras opções de texto. Identifique qualquer valor que um utilizador, parceiro ou fonte de dados externa possa influenciar antes de chegar ao Highcharts.
- Encontre o percurso de saída. Verifique transferências de SVG, exportações personalizadas, gráficos gerados no servidor e código que serializa o gráfico e depois o insere numa página. A transferência SVG predefinida usa o módulo de exportação, mas outros percursos também podem analisar o conteúdo novamente.
- Verifique a interação e a origem do documento. O aviso exige que alguém ative a ligação após a nova análise. O script é executado na origem do documento que analisa o resultado, que pode ser diferente da página original.
Apresentar um gráfico afetado na página original não demonstra, por si só, o percurso de XSS descrito. Se precisar de confirmar que o ataque é possível, teste todo o fluxo num ambiente controlado.
Como corrigir a falha
Atualize o pacote principal do Highcharts para a versão corrigida da série que utiliza. Se carregar módulos em separado, atualize-os para a versão correspondente. Após a implementação, verifique a versão recebida pelos navegadores, incluindo ficheiros CDN em cache.
Para um teste de regressão, siga o teste do Highcharts incluído na correção: forneça um xlink:href inseguro numa opção de texto e confirme que o SVG exportado não conserva uma ligação javascript:. Se não puder atualizar de imediato, o aviso do Highcharts inclui uma correção temporária do filtro a aplicar antes de criar gráficos.
A cside pode ajudar a identificar que scripts os visitantes carregam realmente e onde aparecem versões vulneráveis conhecidas num site. Os responsáveis pela aplicação podem depois verificar as entradas dos gráficos e os percursos de saída que determinam se a falha é explorável. Para saber mais sobre como manter um inventário de scripts em execução, consulte o nosso guia de segurança de scripts de terceiros.
Informação atualizada em 2026-10-28. Os registos do aviso e os intervalos de versões afetadas podem mudar. Consulte o aviso do Highcharts antes de tomar uma decisão definitiva sobre a correção.








