UNKNOWNCVE-2026-33349

Limites de Expansão de Entidade Ignorados Quando Definidos como Zero Devido à Avaliação Falsy do JavaScript no fast-xml-parser

Plataforma

nodejs

Componente

fast-xml-parser

Corrigido em

5.5.7

## Sumário O `DocTypeReader` no fast-xml-parser usa verificações truthy do JavaScript para avaliar os limites de configuração `maxEntityCount` e `maxEntitySize`. Quando um desenvolvedor define explicitamente qualquer um dos limites para `0` — com a intenção de proibir todas as entidades ou restringir o tamanho da entidade a zero bytes — a natureza falsy de `0` no JavaScript faz com que as condições de proteção entrem em curto-circuito, ignorando completamente os limites. Um invasor que pode fornecer entrada XML para tal aplicação pode acionar a expansão ilimitada de entidades, levando ao esgotamento da memória e à negação de serviço (Denial of Service). ## Detalhes O `OptionsBuilder.js` preserva corretamente um valor de `0` fornecido pelo usuário usando o operador de coalescência nula (`??`): ```js // src/xmlparser/OptionsBuilder.js:111 maxEntityCount: value.maxEntityCount ?? 100, // src/xmlparser/OptionsBuilder.js:107 maxEntitySize: value.maxEntitySize ?? 10000, ``` No entanto, `DocTypeReader.js` usa a avaliação truthy para verificar esses limites. Como `0` é falsy no JavaScript, a expressão de proteção inteira entra em curto-circuito para `false`, e o limite nunca é aplicado: ```js // src/xmlparser/DocTypeReader.js:30-32 if (this.options.enabled !== false && this.options.maxEntityCount && // ← 0 é falsy, ignora

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