vm2: Process Control
CVE-2026-92939 is a critical-severity process control vulnerability in vm2 from Patriksimek, with a CVSS 3.1 base score of 9.9 out of 10. It can be exploited remotely over the network by an attacker with a low-privileged account, without any action from a user. The record lists version 3.11.7 as the first without the flaw, so updating vm2 to that release or later removes the exposure. There is no confirmed exploitation so far. EPSS estimates a 0.62% chance of exploitation within 30 days, higher than 50% of scored CVEs.
Critical severity: a successful attack would have severe impact.
What to do
- Update vm2 to 3.11.7 or a later version.
- Read the advisory on github.com for workarounds and exact fixed builds.
Affected products and versions
| Vendor | Product | Affected versions | Fixed in |
|---|---|---|---|
| Patriksimek | vm2 | 3.11.3 up to, but not including, 3.11.7 | 3.11.7 |
Version data comes from the organisation that assigned the CVE. Confirm against the vendor advisory before deciding you are unaffected.
How the severity score breaks down
- Attack vector
- NetworkCan be exploited remotely over a network, including the internet.
- Attack complexity
- LowNo special conditions are needed; the attack works reliably.
- Privileges required
- LowA basic user account is enough.
- User interaction
- NoneNo action by a victim is required.
- Scope
- ChangedThe attack can reach beyond the vulnerable component into other systems.
- Confidentiality
- HighAll data handled by the component can be read.
- Integrity
- HighData or code can be modified at will.
- Availability
- HighThe component can be taken down completely.
Vector: CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H. Scored by CNA (vulncheck.com).
| Scoring system | Score | Severity | Scored by |
|---|---|---|---|
| CVSS 4.0 | 9.4 | Critical | CNA (vulncheck.com) |
| CVSS 3.1 | 9.9 | Critical | CNA (vulncheck.com) |
Official description
vm2 3.11.3 through 3.11.6 exposes the host Node.js crypto module to a NodeVM sandbox when the crypto builtin is allowed. The module is presented via a recursive read-only proxy, but its callable exports still execute with host-process authority. Sandboxed JavaScript can therefore call crypto.setEngine() with a filesystem path to an attacker-supplied native library (for example, one bundled in an untrusted plugin package already written to disk); OpenSSL asks the operating-system dynamic loader to load the file, and the library's constructor executes native code in the host process before engine-symbol validation rejects it. Exploitation requires only the crypto builtin and does not require fs, process, module, child_process, worker_threads, vm, or inspector access, resulting in a sandbox escape and arbitrary native code execution. Fixed in 3.11.7.
Source: the CVE record as published by its numbering authority, via NVD and CVE.org.
The underlying weakness: Process Control
Executing commands or loading libraries from an untrusted source or in an untrusted environment can cause an application to execute malicious commands (and payloads) on behalf of an attacker.
Timeline
- CVE record published.
- CISA published its SSVC assessment (exploitation: poc, automatable: no, technical impact: total).
References
Other references
Other vulnerabilities in vm2
- 7.5 High severity
- 9.0 Critical severity
- 10.0 Critical severity
- 10.0 Critical severity
- 7.2 High severity
- 10.0 Critical severity
Recent Process Control vulnerabilities
- 9.8 Critical severity
- 9.8 Critical severity
- 7.8 High severity
- 9.6 Critical severity
- 9.8 Critical severity
- 7.8 High severity
Spotted an error? Tell us.