Skip to main content
Blog
Blog Attacks

XSS na exportação SVG do Highcharts: o que GHSA-mw4f-gj5x-6xr4 significa para o seu site

GHSA-mw4f-gj5x-6xr4 afeta SVG exportados pelo Highcharts. Veja as versões afetadas, quando o XSS no navegador é possível e como verificar o seu site.

Oct 28, 2026 • 6 min read
XSS na exportação SVG do Highcharts: o que GHSA-mw4f-gj5x-6xr4 significa para o seu site
Índice

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.

O código SVG com três elementos rect transforma-se num gráfico de três barras depois de o navegador o analisar e ajustar

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.

Diagrama que mostra como uma ligação SVG não fiável passa pelo filtro do Highcharts, fica inativa no gráfico original e pode ativar-se após exportação e nova análise

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 HighchartsVersões afetadasPrimeira versão corrigida
11.x e anterioresDe 10.3.2 a 11.4.811.4.9
12.xDe 12.0.0 a 12.6.112.6.2
13.xDe 13.0.0 a 13.1.013.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:

  1. 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.
  2. 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.
  3. 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.
  4. 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.

Simon Wijckmans
Founder & CEO

Founder and CEO of cside. Previously a product manager on Cloudflare Page Shield (now Cloudflare Client-Side Security). Co-chair of the W3C Anti-Fraud Community Group and a Forbes 30 Under 30 honoree. Building accessible security against client-side attacks, web security is not an enterprise-only problem.

FAQ

Frequently Asked Questions

A divulgação é recente, mas não aconteceu pela primeira vez em 2026-10-28. O Highcharts publicou o aviso em 2026-09-29. A base global de avisos do GitHub e a NVD adicionaram os seus registos em 2026-10-28.

Sim, se texto controlado por um atacante entrar num gráfico, o SVG ou o código forem exportados ou serializados e analisados novamente, e um utilizador ativar a ligação resultante. Carregar uma versão afetada, por si só, não prova que esse percurso de ataque exista.

Não. Segundo o Highcharts, o atributo inseguro xlink:href passa pelo filtro quer a opção de texto afetada use useHTML, quer não.

O Highcharts indica 11.4.9, 12.6.2 e 13.1.1 como as primeiras versões corrigidas das respetivas séries.

O módulo de exportação fornece o percurso predefinido de exportação SVG, mas o Highcharts também descreve o risco quando outro fluxo serializa o código do gráfico e o analisa novamente. Verifique exportações personalizadas, SVG inseridos na página e código de gráficos gerado no servidor.

Monitore e proteja seus scripts de terceiros

Gain full visibility and control over every script delivered to your users to enhance site security and performance.

Comece grátis ou experimente o Business com um teste de 14 dias.

Interface do painel cside mostrando monitoramento de scripts e análises de segurança
Related Articles
Agende uma demonstração

Quer ver isso em detalhe com um engenheiro?

Trinta minutos, no seu próprio site. Sem slides.

Agende uma demo personalizada para ver:

Como alcançar a conformidade com os requisitos 6.4.3 e 11.6.1 do PCI DSS em 1 dia
Por que scripts de terceiros são um risco de segurança para você e seus visitantes
Como monitorar vazamentos de privacidade e consentimento (RGPD, CCPA) em cada terceiro
Como conter abuso de cadastros, compartilhamento de contas e fraude de chargeback com device intelligence
Como detectar e controlar agentes de IA e bots que acessam seu site em tempo real

Prefere só mandar uma pergunta?

Use este mesmo e-mail ao agendar pelo Google. O Google pode pedir que você o informe novamente.

Usamos seu e-mail para associar a reserva à sua visita e medir como as pessoas nos encontram. Isto não é uma inscrição na newsletter.

Problemas para agendar? Abrir o agendador em uma nova aba

O que você está tentando resolver?

Conte em uma linha e voltamos com algo útil, não com um discurso genérico.

Costumamos ajudar com:

Ver quais scripts de terceiros rodam no seu site
Evidências para PCI DSS 6.4.3 e 11.6.1
Bots, agentes de IA e roubo de contas

Prefere agendar um horário? Escolher um horário