p PatchFirst

PatchFirst · Latest vulnerabilities

vm2 3.11.6: known vulnerabilities · Page 2

Known vulnerabilities affecting vm2 3.11.6: 30. Compare the fixes below with your installed release.

Filter vulnerabilities
Clear filters

Vulnerabilities: 30

  1. CVE-2026-92942

    High · CVSS 8.7EPSS 0.49%Public exploitFix available

    vm2 before 3.11.7 Timeout Bypass via FinalizationRegistry

    vm2 before 3.11.7 (affected versions <= 3.11.6) does not enforce the VM({ timeout }) option on code executed outside the synchronous VM#run() call. The timeout only wraps the single call to _runScript() via doWithTimeout() in lib/vm.js, and FinalizationRegistry and WeakRef are exposed to sandboxed code unmodified (they are not among the hardened globals in lib/setup-sandbox.js). Sandboxed code can register a FinalizationRegistry cleanup callback against an object and then drop the only strong reference to it; vm.run() returns within the configured timeout, but when the V8 garbage collector later reclaims the object it invokes the sandboxed cl

    • Update to 3.11.7
    Published Updated
  2. CVE-2026-92941

    Critical · CVSS 10.0EPSS 0.29%Public exploitFix available

    vm2 3.11.3 before 3.11.7 TLS Trust Store Manipulation

    vm2 versions from 3.11.3 before 3.11.7 expose the host tls module to NodeVM sandbox code, allowing attackers to call tls.setDefaultCACertificates() and replace process-wide certificate authorities. Attackers with access to allowed tls and url builtins can use URLSearchParams to create host-realm arrays and manipulate the TLS trust store, enabling subsequent host HTTPS clients to accept attacker-controlled certificates.

    • Update to 3.11.7
    Published Updated
  3. CVE-2026-92940

    Critical · CVSS 10.0EPSS 0.47%Public exploitFix available

    vm2 3.11.3 through 3.11.6 HTTPS Credential Exposure via globalAgent

    vm2 versions 3.11.3 through 3.11.6 expose the host process's real https.globalAgent to sandboxed code when a NodeVM is explicitly configured to allow require('https'). The builtin loader wraps host modules in a read-only proxy, but method calls such as Agent.prototype.on() are forwarded to the underlying host object, so sandbox code can register a listener for the agent's 'free' event. When an unrelated host HTTPS request releases a pooled connection, the listener receives the live host request options and the host TLSSocket, allowing sandboxed code to read the host's Authorization header and private destination host/port, attach a data liste

    • Update to 3.11.7
    Published Updated
  4. CVE-2026-92939

    Critical · CVSS 9.4EPSS 0.62%Public exploitFix available

    vm2 3.11.3 through 3.11.6 Native Code Execution via crypto.setEngine

    vm2 3.11.3 through 3.11.6 exposes the host Node.js crypto module to a NodeVM sandbox when the crypto builtin is allowed. The module is presented via a recursive read-only proxy, but its callable exports still execute with host-process authority. Sandboxed JavaScript can therefore call crypto.setEngine() with a filesystem path to an attacker-supplied native library (for example, one bundled in an untrusted plugin package already written to disk); OpenSSL asks the operating-system dynamic loader to load the file, and the library's constructor executes native code in the host process before engine-symbol validation rejects it. Exploitation requi

    • Update to 3.11.7
    Published Updated
  5. CVE-2026-92938

    Critical · CVSS 9.4EPSS 0.62%Public exploitFix available

    vm2 3.11.3 through 3.11.6 Remote Code Execution via node:sqlite

    vm2 versions 3.11.3 through 3.11.6 expose Node.js's host node:sqlite module to code running in NodeVM when that builtin is permitted, either explicitly or through builtin: ['*']. The module is wrapped with vm.readonly(), which prevents property assignment but leaves host-authority callables reachable; in addition, the resolver treats any request starting with 'node:' as a core-module request and the runtime strips only one 'node:' prefix, so a sandbox request for 'node:node:sqlite' resolves to the configured node:sqlite entry. Sandboxed code can therefore create an in-memory DatabaseSync with extension loading enabled and call DatabaseSync.lo

    • Update to 3.11.7
    Published Updated
  6. CVE-2026-92937

    Critical · CVSS 10.0EPSS 1.03%Public exploitFix available

    vm2 3.11.6 Remote Code Execution via Promise call/apply

    vm2 3.11.6 is vulnerable to a sandbox escape leading to remote code execution in the host Node.js process. The fix for GHSA-m283-3h24-438v is incomplete: the bridge gate at lib/bridge.js:1624 identity-checks only the direct call target when deciding whether to rebuild/sanitise a rejected host Promise value. Registering the rejection handler through Function.prototype.call or .apply indirection (e.g., p.then.call(p, undefined, cb)) makes the intercepted target host Function.prototype.call, so the sanitiser never runs and the raw host error reaches sandbox code with its own properties intact. If an embedder exposes a host-realm Promise to the s

    • Update to 3.11.7
    Published Updated
  7. CVE-2026-92936

    Medium · CVSS 6.9EPSS 0.46%Public exploitFix available

    vm2 3.11.0 before 3.11.7 Information Disclosure via Error Stack

    vm2 versions 3.11.0 through 3.11.6 leak absolute host filesystem paths to sandboxed code through error stack formatting. Attacker-supplied code can force the host-realm source transformer to throw a SyntaxError (for example by calling eval with malformed source) and then read the error's .stack property; the bridge forwards the .stack read to the host-realm formatter, bypassing the sandbox-side host-path redaction introduced for GHSA-v27g-jcqj-v8rw. The returned stack string discloses absolute paths from vm2, Node.js internals, and the embedding application's own source tree, along with host function names. Default new VM() and new NodeVM() c

    • Update to 3.11.7
    Published Updated
  8. CVE-2026-92935

    Critical · CVSS 9.5EPSS 0.67%Public exploitFix available

    vm2 NodeVM Remote Code Execution via Array-Shaped Require

    vm2 is a sandbox for running untrusted Node.js code. In versions >= 3.11.4 and <= 3.11.6, the NodeVM constructor computes `hasRealRequireConfig` with `typeof requireOpts === 'object' && requireOpts !== null`, so an array-shaped `require` value (for example `require: []`) satisfies the guard that is meant to reject nesting without an explicit require configuration. `makeResolverFromLegacyOptions()` then destructures the array into undefined option fields and returns a resolver containing only `NESTING_OVERRIDE.vm2`. As a result, an attacker who can supply JavaScript executed by a NodeVM configured with truthy `nesting` and an array-shaped `req

    • Update to 3.11.7
    Published Updated
  9. CVE-2026-92934

    Critical · CVSS 9.5EPSS 0.76%Fix available

    vm2 before 3.11.8 Sandbox Escape RCE via AggregateError

    vm2 before 3.11.8 contains an incomplete fix for Error.cause sanitization that allows sandbox escape when revisited host-wrapped AggregateError objects are caught within a single exception handler traversal. Attackers can exploit cycle detection bypass in handleException to access unsanitized host proxies embedded in the errors array, enabling full remote code execution and process information disclosure from the sandbox.

    • Update to 3.11.8
    Published Updated
  10. CVE-2026-92933

    Medium · CVSS 6.9EPSS 0.37%Public exploitFix available

    vm2 before 3.11.8 Information Disclosure via util.getCallSites

    vm2 is a sandbox for running untrusted Node.js code. In versions <= 3.11.7, NodeVM exposes the host `util` module to the sandbox as an unfiltered shallow copy (`Object.assign({}, util)` in `defaultBuiltinLoaderUtil`), and the deprecated `sys` builtin (an alias of host `util`) is exposed through the generic builtin loader. On Node.js >= 22.9 this hands sandboxed code `util.getCallSites()`, a programmatic stack-introspection API that returns the host process's full call stack, including absolute file paths, function names, and line numbers for vm2 bridge internals and the embedding application's entrypoint. This bypasses the host-frame redactio

    • Update to 3.11.8
    Published Updated

Check your server

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

Check your server →