UNKNOWNGHSA-5jg4-p4qw-cgfr

@stablelib/cbor: Esgotamento de pilha (Stack exhaustion) de Negação de Serviço (Denial of Service) via arrays, mapas ou tags CBOR profundamente aninhados

Plataforma

nodejs

Componente

@stablelib/cbor

Corrigido em

2.0.3

### Resumo `@stablelib/cbor` decodifica estruturas CBOR aninhadas recursivamente e não impõe uma profundidade de aninhamento máxima. Um payload CBOR controlado pelo atacante e suficientemente profundo pode, portanto, causar a falha da decodificação com `RangeError: Maximum call stack size exceeded`. ### Detalhes O decodificador processa arrays, mapas e valores marcados através de chamadas recursivas. Cada contêiner aninhado causa uma nova descida em `_decodeValue()` até que um valor folha seja alcançado. Não há limite de profundidade, fallback iterativo ou proteção contra aninhamento patológico. Um atacante pode, portanto, fornecer um payload feito de milhares de arrays, mapas ou tags aninhados e forçar o decodificador a recursar até que a pilha de chamadas JavaScript seja esgotada. ### PoC ```js import { decode } from "@stablelib/cbor"; const depth = 12000; const payload = new Uint8Array(depth + 1); // Build [[[...[null]...]]] payload.fill(0x81, 0, depth); // array(1) payload[depth] = 0xf6; // null decode(payload); // RangeError: Maximum call stack size exceeded ``` ### Impacto Qualquer aplicação que decodifique CBOR controlado pelo atacante pode ser forçada a uma negação de serviço confiável com um único payload criado. O resultado imediato é uma exceção

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
GHSA-5jg4-p4qw-cgfr — Vulnerability Details | NextGuard | NextGuard