CVE-2026-47137: vm2 has a CVE-2023-37903 patch bypass: nesting:true without explicit require still allows full RCE
(updated )
The fix for GHSA-8hg8-63c5-gwmx (CVE-2023-37903) introduced a check in nodevm.js line 263 that blocks the combination nesting: true + require: false. However, the check uses strict equality (options.require === false), which is trivially bypassed by omitting the require option entirely.
When require is not specified, options.require is undefined, not false. The strict equality check fails, so the security guard is skipped. Immediately after (line 280), the destructuring default require: requireOpts = false assigns requireOpts = false, producing the exact configuration the patch was designed to prevent.
References
- github.com/advisories/GHSA-m4wx-m65x-ghrr
- github.com/patriksimek/vm2/commit/01a7552add345d5a6862623884e6b79a85bf0568
- github.com/patriksimek/vm2/commit/86ab819f202c3a8dad88cef5705f2e416c5188d7
- github.com/patriksimek/vm2/releases/tag/v3.11.4
- github.com/patriksimek/vm2/security/advisories/GHSA-m4wx-m65x-ghrr
- nvd.nist.gov/vuln/detail/CVE-2026-47137
Code Behaviors & Features
Detect and mitigate CVE-2026-47137 with GitLab Dependency Scanning
Secure your software supply chain by verifying that all open source dependencies used in your projects contain no disclosed vulnerabilities. Learn more about Dependency Scanning →