CVE Intelligence

Vulnerabilidades do Nyariv Sandboxjs

🔔 Criar alerta RSS Verificador de versão

CVEs publicadas que afetam Nyariv Sandboxjs: 14 registro(s), com versões afetadas e correções.
cpe:2.3:a:nyariv:sandboxjs

CVE-2026-43898 Crítica · 10.0 CWE-94 28/05/2026
SandboxJS: Sandbox escape via Function.caller leakage of internal call op
SandboxJS is a JavaScript sandboxing library. Prior to 0.9.6, sandbox-defined functions expose Function.caller, allowing sandboxed code to recover the internal LispType.Call runtime callback. That callback can then be invoked with attacker-controlled fake context and obj values to extract blocked host statics, recover the real host Function constructor, and execute arbitrary host JavaScript. This vulnerability is fixed in 0.9.6.
CVE-2026-34217 Alta · 7.2 CWE-668 06/04/2026
SandboxJS has a Sandbox Escape via Prop Object Leak in New Handler
SandboxJS is a JavaScript sandboxing library. Prior to 0.8.36, a scope modification vulnerability exists in @nyariv/sandboxjs. The vulnerability allows untrusted sandboxed code to leak internal interpreter objects through the new operator, exposing sandbox scope objects in the scope hierarchy to untrusted code; an unexpected and undesired exploit. While this could allow modifying scopes inside the sandbox, code evaluation remains sandboxed and prototypes remain protected throughout the execution. This vulnerability is fixed in 0.8.36.
CVE-2026-34211 Alta · 7.5 CWE-674 06/04/2026
SandboxJS: Stack overflow DoS via deeply nested expressions in recursive descent parser
SandboxJS is a JavaScript sandboxing library. Prior to 0.8.36, the @nyariv/sandboxjs parser contains unbounded recursion in the restOfExp function and the lispify/lispifyExpr call chain. An attacker can crash any Node.js process that parses untrusted input by supplying deeply nested expressions (e.g., ~2000 nested parentheses), causing a RangeError: Maximum call stack size exceeded that terminates the process. This vulnerability is fixed in 0.8.36.
CVE-2026-34208 Crítica · 10.0 CWE-693 06/04/2026
SandboxJS: Sandbox integrity escape
SandboxJS is a JavaScript sandboxing library. Prior to 0.8.36, SandboxJS blocks direct assignment to global objects (for example Math.random = ...), but this protection can be bypassed through an exposed callable constructor path: this.constructor.call(target, attackerObject). Because this.constructor resolves to the internal SandboxGlobal function and Function.prototype.call is allowed, attacker code can write arbitrary properties into host global objects and persist those mutations across sandbox instances in the same process. This vulnerability is fixed in 0.8.36.
CVE-2026-32723 Média · 4.7 CWE-362 18/03/2026
SandboxJS timers have an execution-quota bypass (cross-sandbox currentTicks race)
SandboxJS is a JavaScript sandboxing library. Prior to 0.8.35, SandboxJS timers have an execution-quota bypass. A global tick state (`currentTicks.current`) is shared between sandboxes. Timer string handlers are compiled at execution time using that global tick state rather than the scheduling sandbox's tick object. In multi-tenant / concurrent sandbox scenarios, another sandbox can overwrite `currentTicks.current` between scheduling and execution, causing the timer callback to run under a different sandbox's tick budget and bypass the original sandbox's execution quota/watchdog. Version 0.8.35 fixes this issue.
CVE-2026-26954 Crítica · 10.0 CWE-94 13/03/2026
SandboxJS has a Sandbox Escape
SandboxJS is a JavaScript sandboxing library. Prior to 0.8.34, it is possible to obtain arrays containing Function, which allows escaping the sandbox. Given an array containing Function, and Object.fromEntries, it is possible to construct {[p]: Function} where p is any constructible property. This vulnerability is fixed in 0.8.34.
CVE-2026-25881 Crítica · 10.0 CWE-1321 09/02/2026
@nyariv/sandboxjs has host prototype pollution from sandbox via array intermediary (sandbox escape)
SandboxJS is a JavaScript sandboxing library. Prior to 0.8.31, a sandbox escape vulnerability allows sandboxed code to mutate host built-in prototypes by laundering the isGlobal protection flag through array literal intermediaries. When a global prototype reference (e.g., Map.prototype, Set.prototype) is placed into an array and retrieved, the isGlobal taint is stripped, permitting direct prototype mutation from within the sandbox. This results in persistent host-side prototype pollution and may enable RCE in applications that use polluted properties in sensitive sinks (example gadget: execSync(obj.cmd)). This vulnerability is fixed in 0.8.31.
CVE-2026-25641 Crítica · 9.0 CWE-367 06/02/2026
Escape de sandbox no SandboxJS por coerção de chave de propriedade (CVE-2026-25641)
SandboxJS é uma biblioteca de sandboxing para JavaScript. Antes da versão 0.8.29, existe uma vulnerabilidade de escape de sandbox devido a uma incompatibilidade entre a chave sobre a qual a validação é realizada e a chave usada para acessar propriedades. Embora a chave usada nos acessos a propriedades seja anotada como string, isso nunca é imposto. Assim, atacantes podem passar objetos maliciosos que se convertem em valores de string diferentes quando usados, por exemplo, um no momento em que a chave é sanitizada usando hasOwnProperty(key) e outro no momento em que a chave é usada no acesso real à propriedade. Esta vulnerabilidade é corrigida na 0.8.29.
CVE-2026-25587 Crítica · 10.0 CWE-94 06/02/2026
SandboxJS: escape de sandbox via exposição do prototype de Map
SandboxJS é uma biblioteca de sandboxing para JavaScript. Antes da versão 0.8.29, como Map está em SAFE_PROTOYPES, seu prototype pode ser obtido via Map.prototype. Ao sobrescrever Map.prototype.has, o sandbox pode ser escapado. Esta vulnerabilidade está corrigida na versão 0.8.29.
CVE-2026-25586 Crítica · 10.0 CWE-74 06/02/2026
SandboxJS: fuga de sandbox com poluição de protótipo
SandboxJS é uma biblioteca de sandboxing para JavaScript. Antes da versão 0.8.29, é possível realizar uma fuga de sandbox ao sombrear hasOwnProperty em um objeto da sandbox, o que desativa a aplicação da lista de permissões de protótipos no caminho de acesso a propriedades. Isso permite acesso direto a __proto__ e outras propriedades de protótipo bloqueadas, possibilitando a poluição do Object.prototype do host e impacto persistente entre sandboxes. Esta vulnerabilidade está corrigida na versão 0.8.29.
CVE-2026-25520 Crítica · 10.0 CWE-74 06/02/2026
SandboxJS: escape do sandbox por valores de retorno de funções não encapsulados (CVE-2026-25520)
SandboxJS é uma biblioteca de sandboxing de JavaScript. Antes da 0.8.29, os valores de retorno das funções não são encapsulados. Object.values/Object.entries podem ser usados para obter um Array contendo o construtor Function do host; usando Array.prototype.at é possível obter o construtor Function do host, que pode ser usado para executar código arbitrário fora do sandbox. Esta vulnerabilidade está corrigida na 0.8.29.
CVE-2026-25142 Crítica · 10.0 CWE-1321 02/02/2026
Escape de sandbox no SandboxJS via __lookupGetter__ (acesso a protótipos)
SandboxJS é uma biblioteca de sandboxing para JavaScript. Antes da versão 0.8.27, o SanboxJS não restringe adequadamente o __lookupGetter__, que pode ser usado para obter protótipos, o que pode ser usado para escapar do sandbox / execução remota de código. Esta vulnerabilidade está corrigida na versão 0.8.27.
CVE-2026-23830 Crítica · 10.0 CWE-94 27/01/2026
SandboxJS: escape de sandbox via construtor AsyncFunction (CWE-94)
SandboxJS é uma biblioteca de sandboxing para JavaScript. Versões anteriores à 0.8.26 apresentam uma vulnerabilidade de fuga de sandbox devido ao `AsyncFunction` não ser isolado em `SandboxFunction`. A biblioteca tenta isolar a execução de código substituindo o construtor global `Function` por uma versão segura e isolada (`SandboxFunction`). Isso é tratado em `utils.ts` ao mapear `Function` para `sandboxFunction` dentro de um mapa usado para buscas. No entanto, antes da versão 0.8.26, a biblioteca não incluía mapeamentos para `AsyncFunction`, `GeneratorFunction` e `AsyncGeneratorFunction`. Esses construtores não são propriedades globais, mas podem ser acessados pela propriedade `.constructor` de uma instância (por exemplo, `(async () => {}).constructor`). Em `executor.ts`, o acesso a propriedades é tratado. Quando código executando dentro da sandbox acessa `.constructor` em uma função assíncrona (que a sandbox permite criar), o `executor` obtém o valor da propriedade. Como `AsyncFunction` não estava no mapa de substituição segura, o `executor` retorna o construtor nativo `AsyncFunction` do host. Construtores de funções em JavaScript (como `Function` e `AsyncFunction`) criam funções que são executadas no escopo global. Ao obter o construtor `AsyncFunction` do host, um atacante pode criar uma nova função assíncrona que é executada totalmente fora do contexto da sandbox, contornando todas as restrições e obtendo acesso total ao ambiente do host (Execução Remota de Código). A versão 0.8.26 corrige esta vulnerabilidade.
CVE-2025-34146 Alta · 7.0 CWE-1321 31/07/2025
nyariv sandboxjs 0.8.23 Prototype Pollution Sandbox Escape DoS
A prototype pollution vulnerability exists in @nyariv/sandboxjs versions <= 0.8.23, allowing attackers to inject arbitrary properties into Object.prototype via crafted JavaScript code. This can result in a denial-of-service (DoS) condition or, under certain conditions, escape the sandboxed environment intended to restrict code execution. The vulnerability stems from insufficient prototype access checks in the sandbox’s executor logic, particularly in the handling of JavaScript function objects returned.