Summary
Ein Angreifer kann mehrere Schwachstellen in vm2 ausnutzen, um Sicherheitsvorkehrungen zu umgehen, um Informationen offenzulegen, um Daten zu manipulieren, um einen Denial of Service Angriff durchzuführen und um beliebigen Programmcode auszuführen.
Product
vm2 ist eine Sandbox, in der nicht vertrauenswürdiger Code der in Node integrierten Module ausgeführt werden kann.
Vulnerabilities 18
-
Critical 10.0
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 t…
-
Critical 10.0
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.…
-
Critical 10.0
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…
-
Critical 10.0
vm2 before 3.11.7 Remote Code Execution via require.external
vm2 before 3.11.7 contains a remote code execution vulnerability when require.external is enabled without an explicit require.root that excludes node_modules. Sandboxed code can require vm2's own package, instantiate an unrestricted NodeVM instance, and execu…
-
Critical 10.0
vm2 before 3.11.7 Memory Disclosure via Buffer Pool
vm2 before 3.11.7 exposes Node's shared Buffer pool to sandboxed code, allowing disclosure of host memory used by Buffer.from, Buffer.concat, and related allocations. Sandboxed code can read and write to host-realm buffers by acquiring ArrayBuffers from small…
-
Critical 9.9
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…
-
Critical 9.9
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 Jav…
-
Critical 9.9
vm2 3.9.6 through 3.11.5 Sandbox Escape via node:test
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+, m…
-
Critical 9.9
vm2 before 3.11.7 Module Allowlist Bypass via Custom Resolver
vm2 before 3.11.7 contains an incorrect authorization vulnerability in the external package allowlist check that uses non-exact substring matching instead of full package-name boundary validation. Attackers can bypass the allowlist by requiring a colliding pa…
-
Critical 9.9
vm2 before 3.11.7 NodeVM Builtin Deny-List Bypass via node: Prefix
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 entri…
-
Critical 9.8
vm2 3.10.2 through 3.11.6 Sandbox Escape via Promise Protector
vm2 versions 3.10.2 through 3.11.6 contain a sandbox escape vulnerability on Node.js 26 where Promise.prototype.finally() bypasses vm2's wrapper protections due to a stale PromiseThenLookupChain protector in V8 14.6. Attackers can exploit this by creating an …
-
Critical 9.0CVE-2026-92935 Public exploit
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 `r…
-
High 8.6
vm2 before 3.11.7 Sandbox Escape via CLI require
vm2 before 3.11.7 contains a sandbox escape vulnerability in the CLI tool that allows attackers to execute arbitrary code in the host Node.js process. Attackers can supply a malicious script file to the vm2 CLI that uses require(__filename) to re-execute itse…
-
High 8.5
vm2 before 3.11.7 Denylist Bypass via fs/promises
vm2 through 3.11.6 contains a builtin-module denylist bypass in NodeVM. When the embedder uses the builtin wildcard together with negative entries (e.g. require: { builtin: ['*', '-fs', '-child_process'] }), negative entries are matched by exact module name i…
-
High 7.5
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 FinalizationRegist…
-
Medium 6.8
vm2 3.11.4 through 3.11.6 Sandbox Symbol Filtering Bypass
vm2 versions 3.11.4 through 3.11.6 incompletely filter Node.js registered internal symbols across the sandbox boundary. The extraction filters in lib/setup-sandbox.js and the cross-realm symbol checks and write traps in lib/bridge.js use a fixed list of known…
-
Medium 4.2
vm2 before 3.11.7 Module Allowlist Bypass via Prefix Matching
vm2 before 3.11.7 contains a module allowlist bypass vulnerability in isPathAllowedForModule that uses raw string prefix matching instead of boundary-anchored comparison. Attackers can reach non-allowlisted packages sharing a prefix with allowlisted modules b…
-
Medium 4.0
vm2 3.9.6 before 3.11.7 Sandbox Bypass via Accessor Descriptor
vm2 versions from 3.9.6 before 3.11.7 fail to properly restrict access to accessor properties on frozen objects, allowing sandboxed scripts to bypass vm.freeze() and vm.readonly() protections. Attackers can use Object.getOwnPropertyDescriptor() or __lookupSet…
Revision history
-
#5
Neue Updates von Red Hat aufgenommen
-
#4
Neue Updates von Red Hat aufgenommen
-
#3
Neue Updates von Red Hat aufgenommen
-
#2
Referenz(en) aufgenommen: CVE-2026-92935, EUVD-2026-81585, CVE-2026-92937, EUVD-2026-81587, GHSA-M283-3H24-438V, CVE-2026-92939, EUVD-2026-81589, CVE-2026-92942, EUVD-2026-81592, CVE-2026-92941, EUVD-2026-81591, CVE-2026-92944, EUVD-2026-81593, CVE-2026-92940, EUVD-2026-81590, CVE-2026-92952, EUVD-2026-81601, CVE-2026-92951, EUVD-2026-81600, CVE-2026-92946, EUVD-2026-81595, CVE-2026-92945, EUVD-2026-81594, CVE-2026-92947, EUVD-2026-81596, CVE-2026-92948, EUVD-2026-81597, CVE-2026-92949, EUVD-2026-81598, CVE-2026-92950, EUVD-2026-81599, CVE-2026-92957, EUVD-2026-81606, CVE-2026-92958, EUVD-2026-81607, CVE-2026-92938, EUVD-2026-81588
-
#1
Initiale Fassung
References
-
vm2 release 3.11.7 vom 2026-08-24
https://github.com/patriksimek/vm2/releases#release-v3.11.7
-
GitHub Security Advisory GHSA-27g9-p43v-cw3v vom 2026-08-24
https://github.com/patriksimek/vm2/security/advisories/GHSA-27g9-p43v-cw3v
-
GitHub Security Advisory GHSA-46pr-c5wc-xffx vom 2026-08-24
https://github.com/patriksimek/vm2/security/advisories/GHSA-46pr-c5wc-xffx
-
GitHub Security Advisory GHSA-633r-hq9m-c4ff vom 2026-08-24
https://github.com/patriksimek/vm2/security/advisories/GHSA-633r-hq9m-c4ff
-
GitHub Security Advisory GHSA-647f-g98j-qq25 vom 2026-08-24
https://github.com/patriksimek/vm2/security/advisories/GHSA-647f-g98j-qq25
-
GitHub Security Advisory GHSA-6rh5-qq4q-97xh vom 2026-08-24
https://github.com/patriksimek/vm2/security/advisories/GHSA-6rh5-qq4q-97xh
-
GitHub Security Advisory GHSA-6w8r-xxw2-g3hx vom 2026-08-24
https://github.com/patriksimek/vm2/security/advisories/GHSA-6w8r-xxw2-g3hx
-
GitHub Security Advisory GHSA-7q3f-wx44-378m vom 2026-08-24
https://github.com/patriksimek/vm2/security/advisories/GHSA-7q3f-wx44-378m
-
GitHub Security Advisory GHSA-8686-vhfx-7r3j vom 2026-08-24
https://github.com/patriksimek/vm2/security/advisories/GHSA-8686-vhfx-7r3j
-
GitHub Security Advisory GHSA-8hr7-r645-pc6w vom 2026-08-24
https://github.com/patriksimek/vm2/security/advisories/GHSA-8hr7-r645-pc6w
-
GitHub Security Advisory GHSA-98xx-8mx4-x7cm vom 2026-08-24
https://github.com/patriksimek/vm2/security/advisories/GHSA-98xx-8mx4-x7cm
-
GitHub Security Advisory GHSA-c48m-32m9-vx93 vom 2026-08-24
https://github.com/patriksimek/vm2/security/advisories/GHSA-c48m-32m9-vx93
-
GitHub Security Advisory GHSA-fcqc-726x-5wfc vom 2026-08-24
https://github.com/patriksimek/vm2/security/advisories/GHSA-fcqc-726x-5wfc
-
GitHub Security Advisory GHSA-h85j-hv3c-qfgq vom 2026-08-24
https://github.com/patriksimek/vm2/security/advisories/GHSA-h85j-hv3c-qfgq
-
GitHub Security Advisory GHSA-j3hm-6rg5-mchv vom 2026-08-24
https://github.com/patriksimek/vm2/security/advisories/GHSA-j3hm-6rg5-mchv
-
GitHub Security Advisory GHSA-jf8q-945g-9q4c vom 2026-08-24
https://github.com/patriksimek/vm2/security/advisories/GHSA-jf8q-945g-9q4c
-
GitHub Security Advisory GHSA-jxxv-8r27-vm4p vom 2026-08-24
https://github.com/patriksimek/vm2/security/advisories/GHSA-jxxv-8r27-vm4p
-
GitHub Security Advisory GHSA-qhwx-74w5-xhxq vom 2026-08-24
https://github.com/patriksimek/vm2/security/advisories/GHSA-qhwx-74w5-xhxq
-
GitHub Security Advisory GHSA-r4fx-v8hh-22mv vom 2026-08-24
https://github.com/patriksimek/vm2/security/advisories/GHSA-r4fx-v8hh-22mv
-
GitHub Security Advisory GHSA-wjwh-qqvp-g4p4 vom 2026-08-24
https://github.com/patriksimek/vm2/security/advisories/GHSA-wjwh-qqvp-g4p4
-
GitHub Security Advisory GHSA-x6m4-chr9-cg97 vom 2026-08-24
https://github.com/patriksimek/vm2/security/advisories/GHSA-x6m4-chr9-cg97
-
Red Hat Security Advisory RHSA-2026:76788 vom 2026-10-06
https://access.redhat.com/errata/RHSA-2026:76788
-
Red Hat Security Advisory RHSA-2026:79088 vom 2026-10-08
https://access.redhat.com/errata/RHSA-2026:79088
-
Red Hat Security Advisory RHSA-2026:91651 vom 2026-10-28
https://access.redhat.com/errata/RHSA-2026:91651