CVE Catalog

CVE-2026-92948

CriticalCVSS 9.9
Published: Updated: Translated: NVD NIST

Summary

vm2 versions >= 3.9.6 and <= 3.11.6 are affected by a NodeVM builtin allowlist bypass that permits a sandbox escape on Node.js 24 and newer when the embedder explicitly allows the node:test builtin. On Node.js 24+, module.builtinModules exposes the scheme-only key node:test, which is not covered by vm2's family-based DANGEROUS_BUILTINS protection, and because requireImpl() strips only a single 'node:' prefix, sandbox code calling require('node:node:test') receives a proxy to the host module, with node:test.run() forwarding attacker-controlled execArgv (e.g. --eval) to execute arbitrary JavaScript in an unrestricted host process.

Risk Assessment

The sandbox escape leads to arbitrary JavaScript execution in an unrestricted host Node.js process, resulting in full system compromise by untrusted plugin code.

Recommendation

Upgrade vm2 to version 3.11.7, which fixes the builtin allowlist bypass and the 'node:' prefix normalization issue.

Other vulnerabilities in vm2

See all
Original NVD description (English source)

vm2 versions >= 3.9.6 and <= 3.11.6 are affected by a NodeVM builtin allowlist bypass that permits a sandbox escape on Node.js 24 and newer when the embedder explicitly allows the node:test builtin (e.g. require: { builtin: ['node:test'] }). On Node.js 24+, module.builtinModules exposes the scheme-only key node:test, which is not covered by vm2's family-based DANGEROUS_BUILTINS protection, so it is stored in the generic host-passthrough loader. Because requireImpl() in lib/setup-node-sandbox.js strips a single 'node:' prefix before the builtin lookup, sandbox code calling require('node:node:test') resolves to the stored node:test key and receives a readonly proxy to the host module. Calls to node:test.run() are forwarded to the host implementation, which spawns a separate Node process for process-isolated test execution and passes through attacker-controlled execArgv values; supplying --eval=<JavaScript> therefore executes arbitrary JavaScript in an unrestricted host Node process outside the NodeVM sandbox. Fixed in vm2 3.11.7.

Vulnerability data from NVD (NIST) · CISA KEV · EPSS