CVE-2026-26332vm2是Node.js的一个流行的开源沙箱库,用于在隔离环境中运行不受信任的代码。在3.11.0版本之前,该库存在一个严重的沙箱逃逸漏洞。攻击者可以利用SuppressedError机制绕过安全限制,从而在宿主机上执行任意系统命令。该漏洞CVSS评分为9.8,属于严重级别,攻击无需用户交互和认证,对系统安全构成极高威胁。
漏洞源于vm2对Promise组合操作中产生的SuppressedError对象处理不当。在JavaScript中,当多个Promise被拒绝且其中一个被抑制时,会生成SuppressedError。攻击者可以通过精心构造的Payload,利用该错误对象携带的引用链,绕过vm2的上下文隔离机制。具体而言,利用SuppressedError内部的属性引用,攻击者可以逃逸出沙箱作用域,进而访问Node.js宿主环境的全局对象(如process)。一旦逃逸成功,攻击者即可通过process.mainModule.require()引入child_process等模块,最终实现远程代码执行(RCE),完全控制受害服务器。