CVE-2026-44001vm2是Node.js的一个开源沙箱环境。在3.11.0版本之前,vm2 v3.10.5存在一个沙箱逃逸漏洞。该漏洞允许任何沙箱内的代码通过构造一个Promise并触发未处理的拒绝,导致异常传播到宿主Node.js进程,进而造成崩溃。此前针对CVE-2026-22709的修复仅覆盖了.then()和.catch()回调,未解决执行器到unhandledRejection的路径问题。该漏洞在3.11.0版本中已修复。
该漏洞的核心原因在于vm2对Promise异步机制的处理不完善。攻击者可以在沙箱代码中利用Promise构造函数的执行器直接抛出异常或调用reject()。由于vm2之前的补丁仅对.then()和.catch()方法的回调函数进行了沙箱隔离处理,忽略了Promise构造函数内部的执行器路径,导致未处理的Promise rejection事件能够绕过沙箱边界。当这个未处理的拒绝事件传播到宿主Node.js的事件循环时,会触发宿主的unhandledRejection事件,若未被正确捕获,将导致宿主进程崩溃,实现拒绝服务攻击。