CyberRota Analysis
AI-GeneratedVersions 3.11.3 to 3.11.6 of vm2 are vulnerable, allowing sandboxed code to access the host process's real HTTPS global agent when configured to allow `require('https')`. This critical vulnerability enables attackers to intercept sensitive data, such as Authorization headers and plaintext response bodies, and issue unauthorized requests using stolen credentials. Organizations using affected versions of vm2 should prioritize upgrading to version 3.11.7 to mitigate this severe risk.
Public Exploit Signal
A public exploit, PoC, GitHub repository or Metasploit reference was detected for this CVE.
Note: these links are listed for security research and verification purposes only.
Original NVD Description
vm2 versions 3.11.3 through 3.11.6 expose the host process's real https.globalAgent to sandboxed code when a NodeVM is explicitly configured to allow require('https'). The builtin loader wraps host modules in a read-only proxy, but method calls such as Agent.prototype.on() are forwarded to the underlying host object, so sandbox code can register a listener for the agent's 'free' event. When an unrelated host HTTPS request releases a pooled connection, the listener receives the live host request options and the host TLSSocket, allowing sandboxed code to read the host's Authorization header and private destination host/port, attach a data listener to the released socket and read subsequent host response bodies in plaintext, and issue attacker-chosen authenticated requests using the stolen credentials. The issue is fixed in 3.11.7.