136 matches found
NPM: vm2: NodeVM builtin allowlist bypass via node:test.run() execArgv allows sandbox escape
NPM: vm2: NodeVM builtin allowlist bypass via node:test.run execArgv allows sandbox escape vulnerability discovered by ? in WordPress Npm vm2 versions = 3.9.6, = 3.11.6...
vm2 CLI provides no sandbox isolation - host-realm require() is reachable from sandboxed scripts
Summary The vm2 command-line tool installed by npm install -g vm2 and documented in the README's "CLI" section runs the supplied script under NodeVM with require:external:true and no root / context / builtin configured. With these defaults the resolver loads every relative or absolute require...
EUVD-2026-81590
vm2 exposes host HTTPS credentials and TLS traffic through globalAgent...
vm2 exposes host HTTPS credentials and TLS traffic through globalAgent
Summary vm2 3.11.6 exposes the host process's real https.globalAgent when a NodeVM is explicitly allowed to require https. The module is wrapped as read-only, but calls to methods on the shared agent still mutate the host object. Sandbox code can register a free listener and receive host request...
vm2 Custom Module Resolver Can Bypass the External Package Allowlist by Loading a Colliding Host Package
Summary vm2 is a sandbox library for isolating and executing untrusted JavaScript code inside a Node.js process. It can restrict access to built-in modules and external packages. When NodeVM enables an external allowlist together with a custom resolve callback, vm2 checks the requested package na...
GHSA-C48M-32M9-VX93 vm2 Custom Module Resolver Can Bypass the External Package Allowlist by Loading a Colliding Host Package
Summary vm2 is a sandbox library for isolating and executing untrusted JavaScript code inside a Node.js process. It can restrict access to built-in modules and external packages. When NodeVM enables an external allowlist together with a custom resolve callback, vm2 checks the requested package na...
EUVD-2026-81607
vm2: NodeVM builtin denylist bypass via fs/promises despite -fs, allowing host filesystem writes...
GHSA-6RH5-QQ4Q-97XH vm2: NodeVM builtin denylist bypass via fs/promises despite -fs, allowing host filesystem writes
Summary NodeVM's builtin wildcard policy can allow sandboxed code to access fs/promises even when the embedder denies fs. With the following configuration: js require: builtin: '', '-fs', '-childprocess' require'fs' and require'childprocess' are blocked, but require'fs/promises' and...
vm2: NodeVM builtin denylist bypass via fs/promises despite -fs, allowing host filesystem writes
Summary NodeVM's builtin wildcard policy can allow sandboxed code to access fs/promises even when the embedder denies fs. With the following configuration: js require: builtin: '', '-fs', '-childprocess' require'fs' and require'childprocess' are blocked, but require'fs/promises' and...
NPM: vm2: NodeVM builtin denylist bypass via fs/promises despite -fs, allowing host filesystem writes
NPM: vm2: NodeVM builtin denylist bypass via fs/promises despite -fs, allowing host filesystem writes vulnerability discovered by ? in WordPress Npm vm2 versions = 3.11.6...
EUVD-2026-81606
vm2: NodeVM node:-prefixed negative builtin deny bypass exposes childprocess...
vm2: NodeVM node:-prefixed negative builtin deny bypass exposes child_process
Summary NodeVM normalizes node:-prefixed builtin specifiers during require resolution, but it does not normalize user-provided negative builtin entries in wildcard policy. As a result, this configuration: js new NodeVM require: builtin: '', '-node:childprocess' ; does not deny the canonical...
NPM: vm2: NodeVM node:-prefixed negative builtin deny bypass exposes child_process
NPM: vm2: NodeVM node:-prefixed negative builtin deny bypass exposes childprocess vulnerability discovered by ? in WordPress Npm vm2 versions = 3.11.6...
EUVD-2026-81585
vm2: NodeVM nesting guard accepts array-shaped require and permits host RCE...
GHSA-8HR7-R645-PC6W vm2: NodeVM nesting guard accepts array-shaped require and permits host RCE
Summary The NodeVM constructor computes hasRealRequireConfig using typeof requireOpts === 'object' && requireOpts !== null, so require: bypasses the guard intended to reject nesting without an explicit require configuration. makeResolverFromLegacyOptions then destructures the array to undefined...
NPM: vm2: NodeVM nesting guard accepts array-shaped require and permits host RCE
NPM: vm2: NodeVM nesting guard accepts array-shaped require and permits host RCE vulnerability discovered by ? in WordPress Npm vm2 versions = 3.11.4, = 3.11.6...
vm2: NodeVM nesting guard accepts array-shaped require and permits host RCE
Summary The NodeVM constructor computes hasRealRequireConfig using typeof requireOpts === 'object' && requireOpts !== null, so require: bypasses the guard intended to reject nesting without an explicit require configuration. makeResolverFromLegacyOptions then destructures the array to undefined...
EUVD-2026-81591
vm2 NodeVM can replace the host process TLS trust store...
vm2: External module allowlist uses a raw prefix test, so a prefix-sharing sibling package is treated as allowlisted
Summary isPathAllowedForModule decides whether a resolved path belongs to an allowlisted external module using a raw string prefix test. nodemodules/foo2 starts with nodemodules/foo, so a package whose name merely shares a prefix with an allowlisted one is treated as being inside it, and a relati...
CVE-2026-100723
vm2 before 3.12.2 does not apply its Buffer backing-store ownership invariant byteOffset === 0 and buffer.byteLength === length to Buffers returned from host builtin modules. When an application explicitly exposes Node's zlib module through NodeVM's builtin allowlist require: builtin: 'zlib' ,...