PT-2026-30273 · Sandboxjs+1 · Sandboxjs+1

·

CVE-2026-34211

·

Publicado

2026-04-03

·

Atualizado

2026-04-06

CVSS v3.1

7.5

Alta

VetorAV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Name of the Vulnerable Software and Affected Versions SandboxJS versões anteriores a 0.8.36
Description O parser @nyariv/sandboxjs contém recursão ilimitada nas funções restOfExp e na cadeia de chamadas lispify/lispifyExpr. Um invasor pode derrubar qualquer processo Node.js que analise entradas não confiáveis fornecendo expressões profundamente aninhadas (por exemplo, ~2000 parênteses aninhados), causando um RangeError: Maximum call stack size exceeded que termina o processo. A causa raiz está em src/parser.ts, especificamente na função restOfExp (linha 443) e nas funções lispify e lispifyExpr. A vulnerabilidade é acionada pela falta de um limite de profundidade nas chamadas recursivas. Todos os métodos de API públicos (Sandbox.parse(), Sandbox.compile(), Sandbox.compileAsync(), Sandbox.compileExpression(), Sandbox.compileExpressionAsync()) são afetados, pois passam a entrada do usuário diretamente para parse() sem validação de entrada ou limitação de profundidade. Um RangeError: Maximum call stack size exceeded no Node.js trava o contexto de execução atual e pode derrubar todo o processo em aplicativos de servidor síncronos. A vulnerabilidade permite a negação de serviço derrubando o processo Node.js host com uma única string de entrada criada.
Recommendations Adicione um parâmetro depth a restOfExp e lance um ParseError quando uma profundidade máxima for excedida. Da mesma forma, adicione o rastreamento de profundidade a lispify e lispifyExpr.

Correção

Uncontrolled Recursion

Encontrou algum problema na descrição? Tem algo a acrescentar? Fique à vontade para nos escrever 👾

Enumeração de Fraquezas

Identificadores relacionados

CVE-2026-34211
GHSA-8PFC-JJGW-6G26

Produtos afetados

Node.Js
Sandboxjs