PT-2026-49528 · Npm · I18Next+1
CVSS v3.1
9.1
Crítica
| Vetor | AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:H |
Nome do Software Vulnerável e Versões Afetadas
i18next versões anteriores a 2.6.6
Description
Ocorre poluição de protótipo (prototype pollution) por meio de strings de chaves ausentes manipuladas quando usadas para persistir chaves de tradução faltantes. Isso acontece quando a função
Backend.writeFile() divide as strings de chaves ausentes enfileiradas usando o keySeparator (padrão .) antes de chamar o walker interno setPath(). A função getLastOfPath em lib/utils.js não protege contra segmentos inseguros, permitindo que uma chave como proto .polluted seja processada como proto e polluted, o que possibilita a escrita de propriedades arbitrárias no protótipo do objeto global. Isso pode causar travamentos da aplicação, comportamento de tradução corrompido, envenenamento de configuração ou a evasão de verificações de segurança baseadas em propriedades. O problema é explorável se o missingKeyHandler (ou outra rota que encaminhe corpos de requisição não confiáveis para i18next.t(..., { ... }) com saveMissing: true) estiver acessível a usuários não confiáveis e o keySeparator não estiver definido como false.Recommendations
Atualize para a versão 2.6.6.
Como medida paliativa temporária, não exponha o
missingKeyHandler do i18next-http-middleware a usuários não confiáveis, montando-o atrás de autenticação ou removendo a rota.
Desative a persistência de chaves ausentes definindo saveMissing: false ou removendo a implementação de backend.create ao aceitar gravações de entradas não confiáveis.
Defina keySeparator: false nas opções do i18next para desativar a divisão de chaves no backend.Exploit
Correção
Prototype Pollution
Encontrou algum problema na descrição? Tem algo a acrescentar? Fique à vontade para nos escrever 👾
Enumeração de Fraquezas
Identificadores relacionados
Produtos afetados
I18Next
I18Next-Http-Middleware