UNKNOWNCVE-2026-35209

defu: Poluição de protótipo via chave `__proto__` no argumento defaults

Plataforma

nodejs

Componente

defu

Corrigido em

6.1.5

defu é um software que permite aos usuários atribuir propriedades padrão recursivamente. Antes da versão 6.1.5, aplicações que passam entrada de usuário não sanitizada (por exemplo, corpos de requisição JSON analisados, registros de banco de dados ou arquivos de configuração de fontes não confiáveis) como o primeiro argumento para `defu()` são vulneráveis à poluição de protótipo. Um payload malicioso contendo uma chave `__proto__` pode sobrescrever valores padrão pretendidos no resultado mesclado. A função interna `_defu` usava `Object.assign({}, defaults)` para copiar o objeto defaults. `Object.assign` invoca o setter `__proto__`, que substitui o `[[Prototype]]` do objeto resultante com valores controlados pelo atacante. Propriedades herdadas do protótipo poluído então contornam a proteção existente da chave `__proto__` no loop `for...in` e chegam ao resultado final. A versão 6.1.5 substitui `Object.assign({}, defaults)` por object spread (`{ ...defaults }`), que usa `[[DefineOwnProperty]]` e não invoca o setter `__proto__`.

Como corrigir

Nenhum patch oficial disponível. Procure alternativas ou monitore atualizações.

Monitore suas dependências automaticamente

Receba alertas quando novas vulnerabilidades afetarem seus projetos.

Começar grátis