Description
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 async function that returns a Promise with an attacker-controlled constructor Symbol.species, allowing them to reach the host Function constructor and process object for arbitrary code execution.
Affected products
Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.
patriksimek vm2
Default version status: unaffected
3.10.2 to < 3.11.7affected3.11.7unaffected
pkg:npm/vm2References
- https://github.com/patriksimek/vm2/security/advisories/GHSA-27g9-p43v-cw3v ↗
- https://github.com/patriksimek/vm2/commit/7b26e81087ec88c287d9a4812f969d412f32774e ↗
- https://github.com/patriksimek/vm2/commit/4635ddd85839461c8ad791990023a477efefe7bd ↗
- https://www.vulncheck.com/advisories/vm2-3.10.2-through-3.11.6-sandbox-escape-via-promise-protector ↗