CVE-2026-24781vm2是Node.js的一个开源沙箱库。在3.11.0版本之前,该库存在严重的沙箱逃逸漏洞。攻击者可以通过利用inspect函数的缺陷,构造恶意JavaScript代码,从而绕过沙箱限制,在宿主机系统上执行任意命令。该漏洞CVSS评分为9.8,属于严重级别。
该漏洞的根本原因在于vm2未能正确隔离`inspect`功能的实现逻辑。在vm2的早期版本中,沙箱环境试图通过重写或代理JavaScript核心对象来提供隔离,但`inspect`函数的接口设计存在缺陷。攻击者可以在沙箱内部构造特定的对象结构,并诱导调用`inspect`方法。这一过程会触发vm2内部对对象进行序列化或检查的机制,而在该机制中,代码执行上下文未能完全与宿主环境隔离。攻击者可以利用这一机会,通过访问原型链或修改内部属性,引用到宿主Node.js进程的`Function`构造器或`process`对象。一旦成功获取宿主对象的引用,沙箱防御即告瓦解,攻击者便可执行任意系统命令,实现完全的远程代码执行(RCE),造成严重的数据泄露或服务器被控风险。