OCTOBER 13, 2026
Live Feed
Back to database
Case File

CVE-2026-92942

HIGH · CVSS 7.5 EPSS 0.49% Public Exploit

Source: NVD + CISA KEV + EPSS · Published 2026-09-17 · Last synced 2026-10-13

CyberRota Analysis

AI-Generated

The vulnerability affects vm2 versions up to 3.11.6, allowing sandboxed code to bypass timeout enforcement when executing cleanup callbacks registered with FinalizationRegistry. This can lead to a denial of service, as a busy loop in the callback can block the host event loop indefinitely. Organizations using vm2 for sandboxing should prioritize patching to mitigate the risk of service disruption.

Public Exploit Signal

A public exploit, PoC, GitHub repository or Metasploit reference was detected for this CVE.

GitHub PoC Links

Note: these links are listed for security research and verification purposes only.

CVE
CVE-2026-92942
Severity
HIGH
CVSS
7.5
EPSS
0.49%

Original NVD Description

vm2 before 3.11.7 (affected versions <= 3.11.6) does not enforce the VM({ timeout }) option on code executed outside the synchronous VM#run() call. The timeout only wraps the single call to _runScript() via doWithTimeout() in lib/vm.js, and FinalizationRegistry and WeakRef are exposed to sandboxed code unmodified (they are not among the hardened globals in lib/setup-sandbox.js). Sandboxed code can register a FinalizationRegistry cleanup callback against an object and then drop the only strong reference to it; vm.run() returns within the configured timeout, but when the V8 garbage collector later reclaims the object it invokes the sandboxed cleanup callback outside any vm2 timeout accounting. A busy loop in that callback blocks the host event loop for an unbounded period, resulting in denial of service. The time of invocation depends on the garbage collector (e.g. under memory pressure or with --expose-gc).