
Cloud Vulnerability DB
A community-led vulnerabilities database
CVE-2026-25881 is a sandbox escape vulnerability in SandboxJS (@nyariv/sandboxjs), a JavaScript sandboxing library for Node.js, that allows sandboxed code to mutate host built-in prototypes via array literal intermediaries, potentially enabling remote code execution (RCE). All versions up to and including 0.8.30 are affected; the vulnerability was disclosed on February 8, 2026, and fixed in version 0.8.31. The CVSS v3.1 score is 9.0 (Critical) per the GitHub Advisory, while Feedly's data reflects a score of 10.0 based on a slightly different vector assessment (GitHub Advisory, SandboxJS Advisory).
The root cause (CWE-1321: Improperly Controlled Modification of Object Prototype Attributes) lies in how SandboxJS tracks the isGlobal protection flag in the Prop class. When a global prototype reference (e.g., Map.prototype, Set.prototype) is placed into an array literal and retrieved, the isGlobal taint is stripped by the valueOrProp() call in src/executor.ts (L559–L571) during array creation. This causes the protection check in src/utils.ts (if (prop.isGlobal) throw new SandboxError(...)) to be bypassed, allowing direct mutation of host built-in prototypes from within the sandbox. The attack requires no authentication or user interaction and is exploitable over the network against any application that executes untrusted JavaScript via SandboxJS (SandboxJS Advisory, GitHub Advisory).
Successful exploitation results in persistent host-side prototype pollution, breaking the sandbox isolation boundary and affecting all subsequent host-side JavaScript execution. In applications that pass polluted prototype properties to sensitive sinks — such as child_process.execSync(obj.cmd) — this escalates to full remote code execution with the privileges of the Node.js process. All three CIA pillars are fully compromised: confidentiality (data exfiltration), integrity (arbitrary command execution), and availability (process disruption or termination) (SandboxJS Advisory).
A proof-of-concept (PoC) exploit is publicly available in the GitHub Security Advisory, demonstrating prototype pollution, method overwriting (Set.prototype.has), and RCE via execSync. There is no evidence of in-the-wild exploitation at this time, and no threat actor attribution has been reported. The EPSS score is approximately 0.046–0.057% (18th percentile), indicating a currently low but non-negligible exploitation probability. The vulnerability is not listed in the CISA KEV catalog (GitHub Advisory, SandboxJS Advisory).
@nyariv/sandboxjs version ≤ 0.8.30 to execute user-supplied or untrusted JavaScript code.isGlobal taint check:const m = [Map.prototype][0];
m.cmd = 'id';
return 'done';sandbox.compile(...).run()).valueOrProp() call during array creation strips the isGlobal flag, allowing the assignment m.cmd = 'id' to mutate Map.prototype on the host.execSync(obj.cmd) where obj is a new Map()), the attacker-controlled value is executed as a system command, yielding code execution under the Node.js process identity (SandboxJS Advisory).child_process calls.sh, bash, id, whoami, curl, wget) that are not part of normal application behavior.Set.prototype.has, Map.prototype properties) detectable via runtime integrity checks or prototype freezing audits (SandboxJS Advisory).Upgrade @nyariv/sandboxjs to version 0.8.31 or later, which hardens the sandbox by preserving the isGlobal protection flag across array/object literal creation and adds hard blocks on writes to built-in prototypes. As a defense-in-depth measure, consider freezing built-in prototypes in the host process before running untrusted code (e.g., Object.freeze(Map.prototype)) — note this may break some consumers. Additionally, audit any application code for sensitive sinks that consume object properties (e.g., execSync(obj.cmd)) and ensure untrusted input cannot reach them (GitHub Patch, SandboxJS Advisory).
The vulnerability received coverage from several security news outlets including SecurityOnline, CyberSecurityNews, and ITSecurityNews, with articles highlighting the critical nature of the sandbox escape and the availability of a PoC. Social media posts on Mastodon and Bluesky from accounts such as @thehackerwire and @infosec.skyfleet.blue amplified awareness shortly after disclosure. The vulnerability was also included in The Hacker News' weekly security recap, indicating moderate industry attention. Red Hat tracked the CVE as well, suggesting potential downstream impact on Red Hat ecosystem packages (SecurityOnline, Red Hat).
Source: This report was generated using AI
Free Vulnerability Assessment
Evaluate your cloud security practices across 9 security domains to benchmark your risk level and identify gaps in your defenses.
Get a personalized demo
"Best User Experience I have ever seen, provides full visibility to cloud workloads."
"Wiz provides a single pane of glass to see what is going on in our cloud environments."
"We know that if Wiz identifies something as critical, it actually is."