PT-2026-49247 · Google · Angular
CVSS v4.0
8.6
Alta
| Vetor | AV:N/AC:L/AT:N/PR:N/UI:P/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N |
Nome do Software Vulnerável e Versões Afetadas
Angular versões anteriores a 22.0.1
Angular versões anteriores a 21.2.17
Angular versões anteriores a 20.3.25
Description
O Angular suporta Hidratação via
provideClientHydration() para otimizar a inicialização do lado do cliente em ambientes de Renderização do Lado do Servidor (SSR). Durante o SSR, o estado de tempo de execução da aplicação, como respostas cacheadas do HttpClient, é serializado e emitido como uma tag <script> com o identificador previsível ng-state. Durante a inicialização do cliente, o Angular recupera esse estado usando document.getElementById('ng-state') e analisa o conteúdo como JSON.Este processo é suscetível a DOM Clobbering, uma técnica onde um invasor injeta um elemento com um ID específico para substituir um elemento DOM legítimo. Se uma aplicação vincula entradas de usuário não confiáveis ou conteúdo de CMS a propriedades de elementos como
id antes que a tag de script genuína seja analisada, o elemento controlado pelo invasor assume a precedência. Isso permite que um invasor injete um payload JSON personalizado no cache TransferState, especificamente envenenando o HTTP Transfer Cache. Consequentemente, o HttpClient pode retornar uma resposta forjada em vez de solicitar a API real do backend, podendo levar a Cross-Site Scripting (XSS) baseado em DOM, escalonamento de privilégios através da falsificação de informações de usuário ou sequestro de interface (UI Hijacking).Recommendations
Atualize para a versão 22.0.1.
Atualize para a versão 21.2.17.
Atualize para a versão 20.3.25.
Evite vincular valores brutos fornecidos pelo usuário ou IDs dinâmicos de CMS diretamente a atributos de elementos; sanitize-os ou adicione um prefixo seguro estático.
Configure um
APP ID único e não previsível na configuração da aplicação para alterar o ID de busca do elemento de estado de ng-state para um valor personalizado.Exploit
Correção
XSS
Encontrou algum problema na descrição? Tem algo a acrescentar? Fique à vontade para nos escrever 👾
Identificadores relacionados
Produtos afetados
Angular