CVE Catalog

CVE-2026-92939

CriticalCVSS 9.9
Published: Updated: Translated: NVD NIST

Summary

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, so sandboxed JavaScript can call crypto.setEngine() with a filesystem path to an attacker-supplied native library; 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 results in a sandbox escape and arbitrary native code execution.

Risk Assessment

The sandbox escape and arbitrary native code execution in the host process result in full system compromise by untrusted plugin code.

Recommendation

Upgrade vm2 to version 3.11.7, which fixes the exposure of the host crypto module to the sandbox.

Other vulnerabilities in vm2

See all
Original NVD description (English source)

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.

Vulnerability data from NVD (NIST) · CISA KEV · EPSS