# CVE-2026-92957: vm2 NodeVM builtin deny-list bypass via node:-prefixed specifiers

Source: https://junglewise.ai/threats/cve-2026-92957-vm2-nodevm-builtin-deny-list-bypass-via-node-prefixed-specifiers  
Publisher: Junglewise Threat Intelligence, https://junglewise.ai/threats  
Published: 2026-09-17. Updated: 2026-09-26  
License: CC BY 4.0 with a link back

CVE-2026-92957 · Severity: critical · CVSS 9.9 · Published 2026-09-17

vm2 is a popular Node.js virtual machine library used to safely execute untrusted JavaScript code in an isolated sandbox. A flaw in how vm2 processes module denial policies allows attackers to bypass security restrictions and gain access to dangerous system APIs like child_process, which provides command execution capabilities. An attacker can escape the sandbox's intended restrictions by requiring modules using alternate naming conventions.

Technologies: [vm2 (npm)](https://junglewise.ai/threats/technologies/vm2). Vendors: [npm](https://junglewise.ai/threats/vendors/npm).

## Quick answers

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

**How severe is CVE-2026-92957?** Critical severity, with a CVSS score of 9.9, published 17 September 2026.

**Which products and versions are affected?** vm2 (npm) <= 3.11.6, SEMVER:introduced=0,fixed=3.11.7.

**Is there a fix for CVE-2026-92957?** Yes. vm2 (npm): upgrade to 3.11.7 or later. Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.

**How is CVE-2026-92957 attacked?** It is attacked over the network or with local access, in a software library.

**Am I affected by CVE-2026-92957?** Check whether you run vm2 (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

- vm2 (npm): upgrade to 3.11.7 or later

  ```sh
  npm install vm2@3.11.7
  ```


## Technical details

vm2's NodeVM normalizes node:-prefixed builtin module specifiers during require() resolution by stripping the prefix before loading, but does not apply the same normalization when evaluating negative (deny) entries in wildcard builtin policies. A deny rule like -node:child_process is matched by exact string comparison against canonical names (e.g., child_process), causing the comparison to fail. An attacker can require('child_process') or require('node:child_process') to bypass the intended denial and gain access to host process-spawning APIs such as execSync and spawn, effectively achieving command execution within the sandbox. The vulnerability affects NodeVM configurations using wildcard builtin policies with node:-prefixed negative entries. Fixed in vm2 3.11.7 by canonicalizing builtin names before allow/deny comparison.

## Affected products

- vm2 vm2 through 3.11.6

## Identifiers

- CVE-2026-92957
- GHSA-8686-vhfx-7r3j

## Timeline

- 2026-08-24: disclosed
- 2026-09-17: advisory
- 2026-09-17: patched: Fixed in vm2 3.11.7

## References

- [https://github.com/patriksimek/vm2/security/advisories/GHSA-8686-vhfx-7r3j](https://github.com/patriksimek/vm2/security/advisories/GHSA-8686-vhfx-7r3j)
- [https://www.vulncheck.com/advisories/vm2-before-3.11.7-authentication-bypass-via-node-prefix](https://www.vulncheck.com/advisories/vm2-before-3.11.7-authentication-bypass-via-node-prefix)

## Related threats

- [vm2 NodeVM path bypass in custom resolution](https://junglewise.ai/threats/duplicate-advisory-vm2-nodevm-custom-resolution-bypasses-external-path-5d3a7272)
- [vm2 NodeVM zlib buffer pool information disclosure](https://junglewise.ai/threats/duplicate-advisory-vm2-nodevm-zlib-buffers-expose-pooled-host-memory-6007c734)
- [vm2 host Promise rejection denial of service in construct trap](https://junglewise.ai/threats/duplicate-advisory-vm2-host-promise-rejection-from-an-exposed-f7aba6ba)
- [vm2 sandbox escape via Buffer backing-store ownership bypass](https://junglewise.ai/threats/cve-2026-100723-vm2-before-3-12-2-does-not-apply-its-buffer-backing-store)
- [vm2 unhandled Promise rejection in construct trap](https://junglewise.ai/threats/cve-2026-100722-vm2-before-3-12-2-does-not-apply-host-side-promise-rejection)
