CVE-2026-92947: vm2 before 3.11.7 Memory Disclosure via Buffer Pool
Summary Sandboxed code is able to disclose host memory used by small allocations by Buffer.from, Buffer.concat.
Details vm2 exposes Buffer object to sandboxed code by default. Small Buffer allocations (for example, Buffer.allocUnsafe(), Buffer.from(array), Buffer.from(string), and Buffer.concat()) use the same Buffer pool, which is shared with the sandbox. This allows sandboxed code to disclose host memory used by the functions listed above.
PoC Tested against vm2@3.11.5 in the node REPL. javascript Buffer.from('host-memory-should-not-leak-to-sandbox') new (require('vm2').VM)().run(Buffer.from(Buffer.from([0]).buffer, 0, Buffer.from([0]).buffer.byteLength).toString('ascii'))
<img width="1044" height="104" alt="Screenshot 2026-07-23 at 17 54 15" src="https://github.com/user-attachments/assets/987b860c-6702-4818-bfaa-c77919c777e5" />
Impact Since sandbox acquires an ArrayBuffer that is used by the host, it can disclose sensitive data going through functions mentioned above and even write to these buffers, which can lead to sensitive data exposure and potentially denial-of-service.
Other sources
vm2 before 3.11.7 exposes Node's shared Buffer pool to sandboxed code, allowing disclosure of host memory used by Buffer.from, Buffer.concat, and related allocations. Sandboxed code can read and write to host-realm buffers by acquiring ArrayBuffers from small allocations, leading to sensitive data exposure and potential denial-of-service.
— MITRE
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
npm/vm2to a version that resolves this vulnerability.Fixed in 3.11.7
Event History
Frequently Asked Questions
Which vm2 versions need remediation?
vm2 versions before 3.11.7 are affected. Upgrade to version 3.11.7 or later.
What level of attacker access is needed?
The CVSS vector indicates network reachability, low attack complexity, no privileges required, and no user interaction. The relevant exposure is an application that executes attacker-controlled code in a vm2 sandbox.
What can an attacker gain from successful exploitation?
Sandboxed code can acquire ArrayBuffers from small allocations and use them to read and write host-realm buffers. This can disclose sensitive host memory and may cause denial of service.