CVE-2026-92957: Improper Privilege Management in patriksimek vm2
vm2 through 3.11.6 does not normalize `node:`-prefixed builtin specifiers when evaluating user-supplied negative (deny) entries in a NodeVM wildcard require policy. Although NodeVM strips the `node:` prefix during require() resolution, negative wildcard entries are matched by exact string comparison against the canonical builtin names, so a policy such as `new NodeVM({ require: { builtin: ['*', '-node:child_process'] } })` fails to deny the canonical `child_process` module. Sandboxed code can therefore obtain the host `child_process` builtin via `require('child_process')` or `require('node:child_process')`, gaining references to process-spawning APIs such as execSync and spawn, which is equivalent to host command-execution capability for untrusted sandbox code. Fixed in vm2 3.11.7. (Suggested title: "vm2 before 3.11.7: NodeVM builtin deny-list bypass via node:-prefixed specifiers exposes child_process")
AI Analysis
Technical Summary
The vm2 sandbox library through version 3.11.6 fails to normalize 'node:'-prefixed builtin specifiers when evaluating user-supplied negative (deny) entries in a NodeVM wildcard require policy. While NodeVM strips the 'node:' prefix during require() resolution, the negative wildcard entries are matched by exact string comparison against canonical builtin names. This mismatch allows a policy such as new NodeVM({ require: { builtin: ['*', '-node:child_process'] } }) to fail to deny the canonical 'child_process' module. Consequently, sandboxed code can require 'child_process' or 'node:child_process' and gain access to process-spawning APIs like execSync and spawn, effectively enabling host command execution. The vulnerability is fixed in vm2 version 3.11.7.
Potential Impact
Sandboxed code can bypass the intended deny-list restrictions on builtin modules and gain access to the 'child_process' module, allowing it to execute arbitrary commands on the host system. This represents a critical security risk as it breaks the sandbox isolation and can lead to full host compromise.
Mitigation Recommendations
Upgrade vm2 to version 3.11.7 or later, where this vulnerability is fixed. No other mitigation is required as the official fix addresses the issue.
CVE-2026-92957: Improper Privilege Management in patriksimek vm2
Description
vm2 through 3.11.6 does not normalize `node:`-prefixed builtin specifiers when evaluating user-supplied negative (deny) entries in a NodeVM wildcard require policy. Although NodeVM strips the `node:` prefix during require() resolution, negative wildcard entries are matched by exact string comparison against the canonical builtin names, so a policy such as `new NodeVM({ require: { builtin: ['*', '-node:child_process'] } })` fails to deny the canonical `child_process` module. Sandboxed code can therefore obtain the host `child_process` builtin via `require('child_process')` or `require('node:child_process')`, gaining references to process-spawning APIs such as execSync and spawn, which is equivalent to host command-execution capability for untrusted sandbox code. Fixed in vm2 3.11.7. (Suggested title: "vm2 before 3.11.7: NodeVM builtin deny-list bypass via node:-prefixed specifiers exposes child_process")
CVSS v4.0
Score 9.4critical
Affected software
patriksimek
vm2
Run on your own infrastructure? Check whether these packages are installed with threat-finder — our free open-source scanner.
AI-Powered Analysis
Machine-generated threat intelligence
Technical Analysis
The vm2 sandbox library through version 3.11.6 fails to normalize 'node:'-prefixed builtin specifiers when evaluating user-supplied negative (deny) entries in a NodeVM wildcard require policy. While NodeVM strips the 'node:' prefix during require() resolution, the negative wildcard entries are matched by exact string comparison against canonical builtin names. This mismatch allows a policy such as new NodeVM({ require: { builtin: ['*', '-node:child_process'] } }) to fail to deny the canonical 'child_process' module. Consequently, sandboxed code can require 'child_process' or 'node:child_process' and gain access to process-spawning APIs like execSync and spawn, effectively enabling host command execution. The vulnerability is fixed in vm2 version 3.11.7.
Potential Impact
Sandboxed code can bypass the intended deny-list restrictions on builtin modules and gain access to the 'child_process' module, allowing it to execute arbitrary commands on the host system. This represents a critical security risk as it breaks the sandbox isolation and can lead to full host compromise.
Mitigation Recommendations
Upgrade vm2 to version 3.11.7 or later, where this vulnerability is fixed. No other mitigation is required as the official fix addresses the issue.
Technical Details
- Data Version
- 5.2
- Assigner Short Name
- VulnCheck
- Date Reserved
- 2026-09-17T12:43:31.527Z
- Cvss Version
- 4.0
- State
- PUBLISHED
Threat ID: 6aac242c55bf5e2cf5ad8ff7
Added to database: 09/17/2026, 17:32:28 UTC
Last enriched: 09/17/2026, 17:46:41 UTC
Last updated: 09/17/2026, 22:57:01 UTC
Views: 8
Community Reviews
0 reviewsCrowdsource mitigation strategies, share intel context, and vote on the most helpful responses. Sign in to add your voice and help keep defenders ahead.
Want to contribute mitigation steps or threat intel context? Sign in or create an account to join the community discussion.
Actions
Updates to AI analysis require Pro Console access. Upgrade inside Console → Billing.
Need more coverage?
Upgrade to Pro Console for AI refresh and higher limits.
For incident response and remediation, OffSeq services can help resolve threats faster.
Latest Threats
Check if your credentials are on the dark web
Instant breach scanning across billions of leaked records. Free tier available.