# CVE-2026-25587: @nyariv/sandboxjs sandbox escape via Map.prototype

Source: https://junglewise.ai/threats/cve-2026-25587-nyariv-sandboxjs-sandbox-escape-via-map-prototype  
Publisher: Junglewise Threat Intelligence, https://junglewise.ai/threats  
Published: 2026-02-05. Updated: 2026-09-25  
License: CC BY 4.0 with a link back

CVE-2026-25587 · Severity: low · CVSS 3.1 · Published 2026-02-05

@nyariv/sandboxjs is a JavaScript sandboxing library that attempts to isolate untrusted code execution. This vulnerability allows an attacker to break out of the sandbox and execute arbitrary code on the host system by manipulating the Map prototype, bypassing the sandbox's security restrictions entirely. An attacker with the ability to run code through this library can gain complete control over the system.

Technologies: [@nyariv/sandboxjs (npm)](https://junglewise.ai/threats/technologies/nyariv-sandboxjs). Vendors: [npm](https://junglewise.ai/threats/vendors/npm).

## Quick answers

**Is CVE-2026-25587 exploited in the wild?** No. Junglewise Threat Intelligence has no report of CVE-2026-25587 being exploited in the wild.

**How severe is CVE-2026-25587?** Low severity, with a CVSS score of 3.1, published 5 February 2026.

**Which products and versions are affected?** @nyariv/sandboxjs (npm) SEMVER:introduced=0,fixed=0.8.29.

**Is there a fix for CVE-2026-25587?** Yes. @nyariv/sandboxjs (npm): upgrade to 0.8.29 or later. Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.

**How is CVE-2026-25587 attacked?** It is attacked over the network, in a software library.

**Am I affected by CVE-2026-25587?** Check whether you run @nyariv/sandboxjs (npm) at an affected version. Junglewise does that check for you around the clock: connect your code, cloud and domains, and it matches new vulnerabilities like this one against what you actually run and tells you when one reaches you.

## How to fix

- @nyariv/sandboxjs (npm): upgrade to 0.8.29 or later

  ```sh
  npm install @nyariv/sandboxjs@0.8.29
  ```


## Technical details

The vulnerability is a sandbox escape caused by improper handling of prototypes in the sandbox implementation. Map is listed in SAFE_PROTOTYPES, but its prototype can be accessed and modified via Map.prototype. An attacker can overwrite Map.prototype.has with arbitrary code (e.g., isFinite), then use the Function constructor to execute arbitrary system commands. No authentication or user interaction is required; the vulnerability is triggered when the attacker-controlled payload is compiled and executed through the sandbox. The attack enables remote code execution on the underlying system. The vulnerability was patched in version 0.8.29; versions 0.8.28 and earlier are affected.

## Affected products

- nyariv @nyariv/sandboxjs <=0.8.28

## Identifiers

- CVE-2026-25587
- GHSA-66h4-qj4x-38xp

## Timeline

- 2026-02-05: disclosed
- 2026-02-05: patched: Version 0.8.29 released with fix

## References

- [https://github.com/nyariv/SandboxJS/security/advisories/GHSA-66h4-qj4x-38xp](https://github.com/nyariv/SandboxJS/security/advisories/GHSA-66h4-qj4x-38xp)

## Related threats

- [nyariv SandboxJS sandbox escape via Function.caller leakage](https://junglewise.ai/threats/cve-2026-43898-nyariv-sandboxjs-sandbox-escape-via-function-caller-leakage)
- [SandboxJS sandbox escape via Prop object leak in new handler](https://junglewise.ai/threats/cve-2026-34217-sandboxjs-sandbox-escape-via-prop-object-leak-in-new-handler)
- [SandboxJS stack overflow via deeply nested expressions](https://junglewise.ai/threats/cve-2026-34211-sandboxjs-stack-overflow-via-deeply-nested-expressions)
- [SandboxJS sandbox integrity escape via constructor manipulation](https://junglewise.ai/threats/cve-2026-34208-nyariv-sandboxjs-sandbox-integrity-escape-via-constructor-bypass)
- [SandboxJS execution-quota bypass in timers](https://junglewise.ai/threats/cve-2026-32723-sandboxjs-execution-quota-bypass-in-timers)
