Codeswhite

#15783de 56,330
18.2CVSS total
Vulnerabilidades · 2
Crítica
2
PT-2026-49528
9.1
2026-06-15
Npm · I18Next · CVE-2026-48713
**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.
PT-2026-49529
9.1
2026-06-15
Npm · I18Next-Fs-Backend · CVE-2026-48714
**Nome do Software Vulnerável e Versões Afetadas** i18next-http-middleware versões anteriores a 3.9.7 i18next-fs-backend versões 2.6.5 e anteriores **Descrição** O `missingKeyHandler` no i18next-http-middleware não rejeita variantes pontuadas de chaves restritas, como ` proto .polluted`, bloqueando apenas chaves literais do corpo da requisição como ` proto `, `constructor` e `prototype`. Quando utilizado com backends downstream que dividem a string de chave ausente usando um `keySeparator` configurado, como o i18next-fs-backend, essas chaves são passadas para um walker `setPath()` desprotegido que escreve no `Object.prototype`. Isso resulta em poluição de protótipo (prototype pollution), uma condição onde um invasor pode modificar o protótipo de objetos base, potencialmente causando 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. **Recomendações** Atualize para a versão 3.9.7 ou posterior. Atualize o i18next-fs-backend para uma versão posterior a 2.6.5. Não exponha o `missingKeyHandler` a usuários não confiáveis, montando-o atrás de autenticação ou removendo a rota. Implemente um filtro de corpo de requisição antes do handler para rejeitar qualquer chave de nível superior que contenha ` proto `, `constructor` ou `prototype` após a divisão pelo `keySeparator` configurado. Desative a persistência de chaves ausentes definindo `saveMissing: false` ao aceitar gravações de entradas não confiáveis.