{"id":"CVE-2023-29017","aliases":["EUVD-2023-1229","GHSA-7jxr-cg7f-gpgv","ROOT-APP-NPM-CVE-2023-29017"],"status":"published","title":"vm2 Sandbox Escape vulnerability","description":"vm2 is a sandbox that can run untrusted code with whitelisted Node's built-in modules. Prior to version 3.9.15, vm2 was not properly handling host objects passed to `Error.prepareStackTrace` in case of unhandled async errors. A threat actor could bypass the sandbox protections to gain remote code execution rights on the host running the sandbox. This vulnerability was patched in the release of version 3.9.15 of vm2. There are no known workarounds.","severity":{"version":"3.1","score":10,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H","level":"critical","assessor":"cna","from":"cve"},"epss":{"day":"2026-11-09","score":0.63186,"percentile":0.9921,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":true,"fix_available":true},"cwes":["CWE-913"],"published":"2023-04-06T19:18:34Z","modified":"2026-10-28T02:30:49Z","exploits":[{"source":"pocgithub","id":"timb-machine-mirrors/seongil-wi-CVE-2023-29017","title":"timb-machine-mirrors/seongil-wi-CVE-2023-29017","date":"2023-04-07","url":"https://github.com/timb-machine-mirrors/seongil-wi-CVE-2023-29017"},{"source":"pocgithub","id":"passwa11/CVE-2023-29017-reverse-shell","title":"passwa11/CVE-2023-29017-reverse-shell","date":"2023-07-20","url":"https://github.com/passwa11/CVE-2023-29017-reverse-shell"},{"source":"pocgithub","id":"wooung105/Node_CVE-2023-29017","title":"wooung105/Node_CVE-2023-29017","date":"2026-07-12","url":"https://github.com/wooung105/Node_CVE-2023-29017"}],"fixes":[{"ecosystem":"npm","package":"vm2","fixed_in":["3.9.15"],"sources":["ghsa","osv"]},{"ecosystem":"Root:npm","package":"vm2","fixed_in":["3.9.7-aikido.5","3.9.7-aikido.6"],"sources":["osv"]},{"ecosystem":"Root:npm","package":"@rootio/vm2","fixed_in":["3.9.7-root.io.5","3.9.7-root.io.6"],"sources":["osv"]}],"affected":[{"source":"ghsa","ecosystem":"npm","package":"vm2","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"3.9.15"}]}]},{"source":"osv","ecosystem":"npm","package":"vm2","ranges":[{"type":"SEMVER","events":[{"introduced":"0"},{"fixed":"3.9.15"}]}]},{"source":"osv","ecosystem":"Root:npm","package":"vm2","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"3.9.7-aikido.5"},{"fixed":"3.9.7-aikido.6"}]}]},{"source":"osv","ecosystem":"Root:npm","package":"@rootio/vm2","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"3.9.7-root.io.5"},{"fixed":"3.9.7-root.io.6"}]}]}],"products":[{"vendor":"patriksimek","product":"vm2"},{"vendor":"vm2_project","product":"vm2"}],"references":[{"url":"https://github.com/patriksimek/vm2/security/advisories/GHSA-7jxr-cg7f-gpgv","tags":["x_refsource_CONFIRM","x_transferred","Vendor Advisory","advisory","web"]},{"url":"https://github.com/patriksimek/vm2/issues/515","tags":["x_refsource_MISC","x_transferred","Exploit","Issue Tracking","report","web"]},{"url":"https://github.com/patriksimek/vm2/commit/d534e5785f38307b70d3aac1945260a261a94d50","tags":["x_refsource_MISC","x_transferred","Patch","fix","web"]},{"url":"https://gist.github.com/seongil-wi/2a44e082001b959bfe304b62121fb76d","tags":["x_refsource_MISC","x_transferred","Exploit","web"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2023-29017","tags":["advisory"]},{"url":"https://github.com/advisories/GHSA-7jxr-cg7f-gpgv"},{"url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2023/29xxx/CVE-2023-29017.json","tags":["advisory"]},{"url":"https://github.com/patriksimek/vm2","tags":["package"]}],"sources":{"cve":[{"id":"CVE-2023-29017","title":"vm2 Sandbox Escape vulnerability","description":"vm2 is a sandbox that can run untrusted code with whitelisted Node's built-in modules. Prior to version 3.9.15, vm2 was not properly handling host objects passed to `Error.prepareStackTrace` in case of unhandled async errors. A threat actor could bypass the sandbox protections to gain remote code execution rights on the host running the sandbox. This vulnerability was patched in the release of version 3.9.15 of vm2. There are no known workarounds.","status":"published","published":"2023-04-06T19:18:34.243Z","modified":"2025-02-10T16:10:57.765Z","cvss":[{"version":"3.1","score":10,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H","level":"critical","assessor":"cna"}],"cwes":["CWE-913"],"updated_at":"2026-11-02T14:35:28.643185Z"}],"euvd":[{"id":"EUVD-2023-1229","description":"vm2 is a sandbox that can run untrusted code with whitelisted Node's built-in modules. Prior to version 3.9.15, vm2 was not properly handling host objects passed to `Error.prepareStackTrace` in case of unhandled async errors. A threat actor could bypass the sandbox protections to gain remote code execution rights on the host running the sandbox. This vulnerability was patched in the release of version 3.9.15 of vm2. There are no known workarounds.","status":"published","published":"2023-04-06T19:18:34Z","modified":"2025-02-10T16:10:57Z","cvss":[{"version":"3.1","score":10,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H","level":"critical"}],"updated_at":"2026-11-03T00:04:01.319038Z"}],"ghsa":[{"id":"GHSA-7jxr-cg7f-gpgv","title":"vm2 vulnerable to sandbox escape","description":"vm2 was not properly handling host objects passed to `Error.prepareStackTrace` in case of unhandled async errors.\n\n- vm2 version: ~3.9.14\n- Node version: 18.15.0, 19.8.1, 17.9.1\n\n### Impact\nA threat actor can bypass the sandbox protections to gain remote code execution rights on the host running the sandbox.\n\n### Patches\nThis vulnerability was patched in the release of version `3.9.15` of `vm2`.\n\n### Workarounds\nNone.","status":"published","published":"2023-04-07T20:35:03Z","modified":"2023-04-07T20:35:04Z","cvss":[{"version":"3.1","score":9.8,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"critical"}],"cwes":["CWE-913"],"updated_at":"2026-11-02T14:36:50.476488Z"}],"nvd":[{"id":"CVE-2023-29017","description":"vm2 is a sandbox that can run untrusted code with whitelisted Node's built-in modules. Prior to version 3.9.15, vm2 was not properly handling host objects passed to `Error.prepareStackTrace` in case of unhandled async errors. A threat actor could bypass the sandbox protections to gain remote code execution rights on the host running the sandbox. This vulnerability was patched in the release of version 3.9.15 of vm2. There are no known workarounds.","status":"published","published":"2023-04-06T20:15:08.723Z","modified":"2026-06-17T05:49:11.9Z","cvss":[{"version":"3.1","score":10,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H","level":"critical","assessor":"secondary"},{"version":"3.1","score":9.8,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"critical","assessor":"primary"}],"cwes":["CWE-913"],"updated_at":"2026-11-02T14:07:53.719171Z"}],"osv":[{"id":"CVE-2023-29017","title":"vm2 Sandbox Escape vulnerability","description":"vm2 is a sandbox that can run untrusted code with whitelisted Node's built-in modules. Prior to version 3.9.15, vm2 was not properly handling host objects passed to `Error.prepareStackTrace` in case of unhandled async errors. A threat actor could bypass the sandbox protections to gain remote code execution rights on the host running the sandbox. This vulnerability was patched in the release of version 3.9.15 of vm2. There are no known workarounds.","status":"published","published":"2023-04-06T19:18:34.243Z","modified":"2026-10-28T02:30:49.772340221Z","cvss":[{"version":"3.1","score":10,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H","level":"critical"}],"cwes":["CWE-913"],"updated_at":"2026-11-02T15:44:31.468318Z"},{"id":"GHSA-7jxr-cg7f-gpgv","title":"vm2 vulnerable to sandbox escape","description":"vm2 was not properly handling host objects passed to `Error.prepareStackTrace` in case of unhandled async errors.\n\n- vm2 version: ~3.9.14\n- Node version: 18.15.0, 19.8.1, 17.9.1\n\n### Impact\nA threat actor can bypass the sandbox protections to gain remote code execution rights on the host running the sandbox.\n\n### Patches\nThis vulnerability was patched in the release of version `3.9.15` of `vm2`.\n\n### Workarounds\nNone.","status":"published","published":"2023-04-07T20:35:03Z","modified":"2026-09-10T03:49:53.632919224Z","cvss":[{"version":"3.1","score":9.8,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"critical"}],"cwes":["CWE-913"],"updated_at":"2026-11-02T15:46:41.349637Z"},{"id":"ROOT-APP-NPM-CVE-2023-29017","title":"CVE-2023-29017 in vm2 - Patched by Root","description":"Root has patched CVE-2023-29017 in the vm2 package for Root:npm. Multiple fixed versions available.","status":"published","published":"2026-09-30T06:02:29Z","modified":"2026-09-30T07:15:06.500806454Z","updated_at":"2026-11-02T15:53:27.362922Z"}]}}
