CVE-2026-93604: Improper Access Control in patriksimek vm2
vm2 through 3.12.0 exposes Node.js's crypto.setFips() function to untrusted guest code when an embedder explicitly allowlists the crypto builtin for a NodeVM (require.builtin: ['crypto']). The builtin sanitizer (sanitizeCryptoModule in lib/builtin.js) replaces crypto.setEngine but leaves crypto.setFips callable, and the readonly wrapper used to expose the host module does not localize side effects of forwarded host functions. Guest code can therefore call crypto.setFips() to change the FIPS mode of the entire host process; the modified mode is subsequently observed by trusted host code (crypto.getFips() changed from 0 to 1 in the reported test), crossing the NodeVM isolation boundary. Fixed in vm2 3.12.1.
AI Analysis
Technical Summary
The vm2 library through version 3.12.0 exposes Node.js's crypto.setFips() function to untrusted guest code when the crypto builtin is explicitly allowlisted for a NodeVM. The sanitizer replaces crypto.setEngine but leaves crypto.setFips callable, and the readonly wrapper used to expose host modules does not localize side effects of forwarded host functions. As a result, guest code can invoke crypto.setFips() to change the FIPS mode of the entire host process, which is observable by trusted host code, thereby crossing the NodeVM isolation boundary. This issue is resolved in vm2 version 3.12.1.
Potential Impact
Untrusted guest code can alter the FIPS mode of the host process by calling crypto.setFips(), violating the isolation guarantees of the NodeVM sandbox. This could affect cryptographic operations in the host environment that rely on FIPS mode settings, potentially leading to unexpected behavior or security policy violations. The vulnerability does not require privileges or user interaction and can be triggered remotely if the crypto builtin is allowlisted.
Mitigation Recommendations
Upgrade to vm2 version 3.12.1 or later, where this vulnerability is fixed. Versions prior to 3.12.1 are affected. No other mitigations are specified. Patch status is confirmed fixed in 3.12.1.
CVE-2026-93604: Improper Access Control in patriksimek vm2
Description
vm2 through 3.12.0 exposes Node.js's crypto.setFips() function to untrusted guest code when an embedder explicitly allowlists the crypto builtin for a NodeVM (require.builtin: ['crypto']). The builtin sanitizer (sanitizeCryptoModule in lib/builtin.js) replaces crypto.setEngine but leaves crypto.setFips callable, and the readonly wrapper used to expose the host module does not localize side effects of forwarded host functions. Guest code can therefore call crypto.setFips() to change the FIPS mode of the entire host process; the modified mode is subsequently observed by trusted host code (crypto.getFips() changed from 0 to 1 in the reported test), crossing the NodeVM isolation boundary. Fixed in vm2 3.12.1.
CVSS v4.0
Score 6.9medium
Affected software
patriksimek
vm2
Run on your own infrastructure? Check whether these packages are installed with threat-finder — our free open-source scanner.
AI-Powered Analysis
Machine-generated threat intelligence
Technical Analysis
The vm2 library through version 3.12.0 exposes Node.js's crypto.setFips() function to untrusted guest code when the crypto builtin is explicitly allowlisted for a NodeVM. The sanitizer replaces crypto.setEngine but leaves crypto.setFips callable, and the readonly wrapper used to expose host modules does not localize side effects of forwarded host functions. As a result, guest code can invoke crypto.setFips() to change the FIPS mode of the entire host process, which is observable by trusted host code, thereby crossing the NodeVM isolation boundary. This issue is resolved in vm2 version 3.12.1.
Potential Impact
Untrusted guest code can alter the FIPS mode of the host process by calling crypto.setFips(), violating the isolation guarantees of the NodeVM sandbox. This could affect cryptographic operations in the host environment that rely on FIPS mode settings, potentially leading to unexpected behavior or security policy violations. The vulnerability does not require privileges or user interaction and can be triggered remotely if the crypto builtin is allowlisted.
Mitigation Recommendations
Upgrade to vm2 version 3.12.1 or later, where this vulnerability is fixed. Versions prior to 3.12.1 are affected. No other mitigations are specified. Patch status is confirmed fixed in 3.12.1.
Technical Details
- Data Version
- 5.2
- Assigner Short Name
- VulnCheck
- Date Reserved
- 2026-09-18T11:00:32.756Z
- Cvss Version
- 4.0
- State
- PUBLISHED
Threat ID: 6aad3d5d55bf5e2cf5100797
Added to database: 09/18/2026, 13:32:13 UTC
Last enriched: 09/18/2026, 13:47:21 UTC
Last updated: 09/18/2026, 22:12:52 UTC
Views: 11
Community Reviews
0 reviewsCrowdsource mitigation strategies, share intel context, and vote on the most helpful responses. Sign in to add your voice and help keep defenders ahead.
Want to contribute mitigation steps or threat intel context? Sign in or create an account to join the community discussion.
Actions
Updates to AI analysis require Pro Console access. Upgrade inside Console → Billing.
Need more coverage?
Upgrade to Pro Console for AI refresh and higher limits.
For incident response and remediation, OffSeq services can help resolve threats faster.
Latest Threats
Check if your credentials are on the dark web
Instant breach scanning across billions of leaked records. Free tier available.