p PatchFirst

PatchFirst · Latest vulnerabilities

vm2 vulnerabilities · Page 3

Vulnerabilities published for vm2 in the last 30 days: 3. Listed in the KEV catalogue: 0.

Filter vulnerabilities
Clear filters

Vulnerabilities: 78

  1. CVE-2026-47140

    Critical · CVSS 10EPSS 0.82%Fix available

    vm2: NodeVM builtin denylist bypass via process and inspector/promises allows host code execution

    vm2 is an open source vm/sandbox for Node.js. Prior to version 3.11.4, NodeVM blocks several dangerous Node.js builtins such as module, worker_threads, cluster, vm, repl, and inspector. However, the denylist misses process and inspector/promises. Both can be used from sandboxed code to reach host-side execution primitives. This allows sandboxed code to bypass the intended builtin restrictions and execute code in the host process. This issue has been patched in version 3.11.4.

    • Update to 3.11.4
    Published Updated
  2. CVE-2026-47139

    High · CVSS 8.6EPSS 0.49%Fix available

    vm2: NodeVM network builtin exclusions bypass via internal _http_client and _http_server

    vm2 is an open source vm/sandbox for Node.js. Prior to version 3.11.4, NodeVM supports excluding public network builtins from the wildcard builtin option. With this configuration direct access to http, https, http2, net, dgram, tls, dns, and dns/promises is blocked. However, Node.js also exposes underscored internal HTTP builtins such as _http_client and _http_server. These are not blocked when the public modules are excluded. Sandboxed code can use these internal builtins to make outbound HTTP requests and open listening HTTP sockets even though the public network modules are denied. This issue has been patched in version 3.11.4.

    • Update to 3.11.4
    Published Updated
  3. CVE-2026-47137

    Critical · CVSS 10EPSS 0.7%Fix available

    vm2: GHSA-8hg8-63c5-gwmx patch bypass: nesting:true without explicit require still allows full RCE

    vm2 is an open source vm/sandbox for Node.js. Prior to version 3.11.4, the fix for GHSA-8hg8-63c5-gwmx (CVE-2023-37903) introduced a check in nodevm.js line 263 that blocks the combination nesting: true + require: false. However, the check uses strict equality (options.require === false), which is trivially bypassed by omitting the require option entirely. When require is not specified, options.require is undefined, not false. The strict equality check fails, so the security guard is skipped. Immediately after (line 280), the destructuring default require: requireOpts = false assigns requireOpts = false, producing the exact configuration the

    • Update to 3.11.4
    Published Updated
  4. CVE-2026-47135

    High · CVSS 8.7EPSS 0.44%Fix available

    vm2: Sandbox escape via unblocked cross-realm Symbol.for keys + missing bridge write-trap symbol checks

    vm2 is an open source vm/sandbox for Node.js. Prior to version 3.11.4, Symbol.for override in setup-sandbox.js only intercepts 2 of 9 dangerous Node.js cross-realm symbols. Combined with the bridge's set/defineProperty/deleteProperty traps having no isDangerousCrossRealmSymbol key check, sandbox code can obtain real cross-realm symbols, write them to host objects, and control host-side behavior — verified with a full util.promisify hijack chain. This issue has been patched in version 3.11.4.

    • Update to 3.11.4
    Published Updated
  5. CVE-2026-47131

    Critical · CVSS 10EPSS 0.65%Fix available

    vm2: Sandbox Escape

    vm2 is an open source vm/sandbox for Node.js. Prior to version 3.11.4, by combining Buffer.call.call({}.__lookupGetter__, Buffer, "__proto__"), Buffer.call.call({}.__lookupSetter__, Buffer, "__proto__"), and Node.js's ERR_INVALID_ARG_TYPE Error, the host's TypeError constructor can be obtained, which allows the escape from the sandbox. This allows attackers to run arbitrary code. This issue has been patched in version 3.11.4.

    • Update to 3.11.4
    Published Updated
  6. CVE-2026-47209

    High · CVSS 8.6EPSS 0.51%Fix available

    vm2: Bridge Proxy set trap ignores receiver parameter, enabling host object property injection via prototype chain

    vm2 is an open source vm/sandbox for Node.js. Prior to version 3.11.4, the BaseHandler.set trap in bridge.js (line 1231) ignores the receiver parameter and unconditionally writes to the host target object. Per the Proxy set trap specification, when receiver !== proxy (e.g., when a child object inherits from the proxy via Object.create), the property assignment should create an own property on the receiver, not on the proxy target. The current implementation always calls otherReflectSet(object, key, value) against the host target, causing all inherited property writes to leak through to the host object. This bug provides an alternative attack

    • Update to 3.11.4
    Published Updated
  7. CVE-2026-44005

    Critical · CVSS 10EPSS 0.83%Fix available

    vm2: Sandbox escape

    vm2 is an open source vm/sandbox for Node.js. From 3.9.6 to 3.10.5, vm2's bridge exposes mutable proxies for real host-realm intrinsic prototypes and then forwards sandbox writes into the underlying host objects with otherReflectSet() and otherReflectDefineProperty(), which lets attacker-controlled JavaScript running in a default VM or inherited NodeVM mutate shared host Object.prototype, Array.prototype, and Function.prototype from inside the sandbox This vulnerability is fixed in 3.11.0.

    • Update to 3.11.0
    Published Updated
  8. CVE-2026-45411

    Critical · CVSS 9.8EPSS 0.9%Fix available

    vm2: Sandbox Breakout Using Async Generator

    vm2 is an open source vm/sandbox for Node.js. Prior to 3.11.3, it is possible to catch a host exception using the yield* expression inside an async generator. When the generator is closed using the return function, the value is awaited on and exceptions thrown in the then call will be caught by the runtime and passed to the yield* iterator as the next value. This allows attackers to write code which can escape from the VM2 sandbox and execute arbitrary commands on the host system. This vulnerability is fixed in 3.11.3.

    • Update to 3.11.3
    Published Updated
  9. CVE-2026-44008

    Critical · CVSS 9.8EPSS 0.9%Fix available

    vm2: Snabox breakout via `neutralizeArraySpeciesBatch`

    vm2 is an open source vm/sandbox for Node.js. Prior to 3.11.2, the new method neutralizeArraySpeciesBatch works with objects from the other side but can call into this side via getter on the array prototype exposing objects of the wrong side into the sandbox. This can be used to get host objects and get the host Function object. This allows attackers to write code which can escape from the VM2 sandbox and execute arbitrary commands on the host system. This vulnerability is fixed in 3.11.2.

    • Update to 3.11.2
    Published Updated
  10. CVE-2026-44007

    Critical · CVSS 9.1EPSS 0.61%Fix available

    vm2: nesting: true bypasses require: false, allowing sandbox escape to arbitrary OS command execution

    vm2 is an open source vm/sandbox for Node.js. Prior to 3.11.1, when a NodeVM is created with nesting: true, sandbox code can unconditionally require('vm2') regardless of the outer VM's require configuration — including require: false. With access to vm2, the sandbox constructs a new inner NodeVM with its own unrestricted require settings and executes arbitrary OS commands on the host. Any application that runs untrusted code inside a NodeVM with nesting: true is fully compromised. This vulnerability is fixed in 3.11.1.

    • Update to 3.11.1
    Published Updated
  11. CVE-2026-44004

    High · CVSS 7.5EPSS 0.66%Fix available

    vm2: Host Process OOM DoS via Buffer.alloc (Timeout Bypass)

    vm2 is an open source vm/sandbox for Node.js. Prior to 3.11.0, sandboxed code can call Buffer.alloc() with an arbitrary size to allocate memory directly on the host heap. Because Buffer.alloc is a synchronous C++ native call, vm2's timeout option cannot interrupt it. A single request can exhaust host memory and crash the process with a FATAL ERROR: Reached heap limit. This vulnerability is fixed in 3.11.0.

    • Update to 3.11.0
    Published Updated
  12. CVE-2026-44003

    Medium · CVSS 5.3EPSS 0.35%Fix available

    vm2: Transformer Fast-Path Bypass Exposes Internal State Variable

    vm2 is an open source vm/sandbox for Node.js. Prior to 3.11.0, vm2's code transformer has a performance optimization that skips AST analysis when the code does not contain catch, import, or async keywords. This fast-path bypass allows sandboxed code to directly access the internal VM2_INTERNAL_STATE_DO_NOT_USE_OR_PROGRAM_WILL_FAIL variable, which exposes internal security functions (handleException, wrapWith, import). This vulnerability is fixed in 3.11.0.

    • Update to 3.11.0
    Published Updated
  13. CVE-2026-44002

    Medium · CVSS 5.8EPSS 0.34%Fix available

    vm2: Host File Path Disclosure via Stack Trace Information Leak

    vm2 is an open source vm/sandbox for Node.js. Prior to 3.11.0, vm2's CallSite wrapper class (intended as a safe wrapper for V8's native CallSite) blocks getThis() and getFunction() to prevent host object leakage, but allows getFileName() to return unsanitized host absolute paths. Any sandboxed code can extract the full directory structure, library paths, and framework versions of the host server. This vulnerability is fixed in 3.11.0.

    • Update to 3.11.0
    Published Updated
  14. CVE-2026-44001

    High · CVSS 8.6EPSS 0.66%Fix available

    vm2: Sandbox Escape via Promise Constructor Unhandled Rejection (Process Crash DoS)

    vm2 is an open source vm/sandbox for Node.js. Prior to 3.11.0, a sandbox escape vulnerability in vm2 v3.10.5 allows any sandboxed code to crash the host Node.js process via a single Promise constructor that triggers an unhandled rejection propagating to the host. The fix for CVE-2026-22709 (v3.10.2) only sanitized the onRejected callback in .then() and .catch() overrides and did not address the executor-to-unhandledRejection path. This vulnerability is fixed in 3.11.0.

    • Update to 3.11.0
    Published Updated
  15. CVE-2026-44000

    Medium · CVSS 6.5EPSS 0.29%Fix available

    vm2: sandbox boundary bypass via host Promise resolution preserving host object identity

    vm2 is an open source vm/sandbox for Node.js. Prior to 3.11.0, a sandbox boundary violation in vm2 allows host object identity to cross into the sandbox through host Promise resolution. When a host-side Promise that resolves to a host object is exposed to the sandbox, the value delivered to the sandbox .then() callback preserves host identity. This allows the sandbox to interact with the host object directly, including performing identity checks using host-side WeakMap and mutating host object state from inside the sandbox. This behavior occurs because the Promise fulfillment wrapper uses ensureThis() instead of the stronger cross-realm conve

    • Update to 3.11.0
    Published Updated
  16. CVE-2026-43999

    Critical · CVSS 9.9EPSS 0.97%Fix available

    vm2: NodeVM builtin allowlist bypass via `module` builtin's `Module._load` allows sandbox escape

    vm2 is an open source vm/sandbox for Node.js. Prior to 3.11.0, NodeVM's builtin allowlist can be bypassed when the module builtin is allowed (including via the '*' wildcard). The module builtin exposes Node's Module._load(), which loads any module by name directly in the host context, completely bypassing vm2's builtin restriction. This allows sandboxed code to load excluded builtins like child_process and achieve remote code execution. This vulnerability is fixed in 3.11.0.

    • Update to 3.11.0
    Published Updated
  17. CVE-2026-43998

    High · CVSS 8.5EPSS 0.85%Fix available

    vm2: NodeVM require.root bypass via symlink traversal allows sandbox escape

    vm2 is an open source vm/sandbox for Node.js. In 3.10.5, NodeVM's require.root path restriction can be bypassed using filesystem symlinks, allowing sandboxed code to load modules from outside the allowed root directory in host context. Because path validation uses path.resolve() (which does not dereference symlinks) but module loading uses Node's native require() (which does), an attacker can load arbitrary host-realm modules and achieve remote code execution. This vulnerability is fixed in 3.11.0.

    • Update to 3.11.0
    Published Updated
  18. CVE-2026-43997

    Critical · CVSS 10EPSS 0.77%Fix available

    vm2: Sandbox Escape

    vm2 is an open source vm/sandbox for Node.js. Prior to 3.11.0, it is possible to obtain the host Object. There are various ways to use the host Object, to escape the sandbox, one example would be using HostObject.getOwnPropertySymbols to obtain Symbol(nodejs.util.inspect.custom). This vulnerability is fixed in 3.11.0.

    • Update to 3.11.0
    Published Updated

Check your server

Check your installed stack and versions against the current vulnerability feeds.

Check your server →