CVE-2026-44005vm2是Node.js的一个开源虚拟机/沙箱库。在3.9.6至3.10.5版本中,vm2的bridge机制暴露了针对宿主域内建原型的可变代理。攻击者可以利用这一点,通过otherReflectSet()和otherReflectDefineProperty()方法,将沙箱内的写入操作转发到底层宿主对象。这使得攻击者控制的JavaScript代码能够从沙箱内部修改共享的宿主Object.prototype、Array.prototype和Function.prototype,从而实现沙箱逃逸。
该漏洞的核心在于vm2的bridge机制未能正确隔离宿主域与沙箱域的原型链。由于bridge暴露了可变代理,攻击者可以利用JavaScript的反射机制(Reflect API)直接操作宿主环境的内建对象原型。具体而言,攻击者在沙箱内执行的代码可以通过otherReflectSet或otherReflectDefineProperty函数,向宿主的Object.prototype等全局原型对象上注入属性或修改其行为。这种原型污染破坏了沙箱的隔离边界,允许攻击者绕过安全限制,进而获取对宿主系统的完全控制权,执行任意代码。