CVE-2026-44008vm2是Node.js的一个流行开源虚拟机和沙库。在3.11.2版本之前,其`neutralizeArraySpeciesBatch`方法存在逻辑缺陷。该方法在处理外部对象时,可能通过数组原型上的getter调用当前侧,导致将宿主对象暴露在沙箱环境中。攻击者利用这一机制可以获取宿主对象和Function对象,从而绕过沙箱限制,实现沙箱逃逸并在宿主系统上执行任意命令。该漏洞危害极高,建议用户尽快升级到3.11.2或更高版本以修复此问题。
该漏洞的核心在于vm2沙箱中`neutralizeArraySpeciesBatch`方法实现存在缺陷。此方法本用于安全地处理跨上下文的数组操作,但在处理来自沙箱外部的对象时,未能正确过滤通过数组原型链触发的getter。当攻击者操作特定对象并触发getter时,该方法会意外地将宿主环境的对象引用泄露到沙箱内部。这种对象混淆打破了vm2的核心隔离机制。攻击者进而可以利用泄露的宿主Function对象,在沙箱上下文中构造恶意代码,直接调用Node.js的`require`或其他危险函数。最终,这导致了沙箱逃逸,允许攻击者在宿主服务器上以运行Node.js进程的权限执行任意系统命令,完全接管服务器。