Quick answers
- Is CVE-2026-25586 exploited in the wild?
- No. Junglewise Threat Intelligence has no report of CVE-2026-25586 being exploited in the wild.
- How severe is CVE-2026-25586?
- 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; Nyariv Sandboxjs 0.8.28 and earlier.
- Is there a fix for CVE-2026-25586?
- 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-25586 attacked?
- It is attacked over the network.
- Am I affected by CVE-2026-25586?
- Check whether you run @nyariv/sandboxjs (npm) or Nyariv Sandboxjs 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
npm install @nyariv/sandboxjs@0.8.29
Technical details
The vulnerability is a prototype whitelist bypass in the property-access validation logic. The prototypeAccess check in executor.ts uses a.hasOwnProperty(b) directly, which is bypassable when an attacker's sandboxed object shadows hasOwnProperty to return true, causing the whitelist enforcement to be skipped. This permits direct access to __proto__ and other blocked prototype properties. An attacker with the ability to execute arbitrary code in the sandbox can leverage prototype pollution to modify Object.prototype, Array.prototype, and other built-in prototypes, leading to host process compromise. The attack requires no privileges, authentication, or user interaction beyond code execution within the default Sandbox configuration. Patches are available in version 0.8.29 and later.
Affected products
- nyariv sandboxjs 0.8.28 and earlier
Identifiers
- CVE-2026-25586
- GHSA-jjpw-65fv-8g48
Timeline
- 2026-02-05: disclosed
- 2026-02-05: patched: Fixed in version 0.8.29