CVE-2026-26956vm2是Node.js的一个开源虚拟机和沙箱库。在3.10.4版本中,发现了一个严重的沙箱逃逸漏洞。攻击者通过精心构造的代码在VM.run()中执行,能够成功绕过沙箱隔离机制,直接获取宿主进程对象的引用。这使得攻击者可以在零宿主配合的情况下,以宿主进程权限执行任意系统命令,造成严重的安全风险。该漏洞已在3.10.5版本中修复。
该漏洞的根本原因在于vm2沙箱机制在处理特定JavaScript对象或上下文隔离时存在缺陷。vm2旨在提供一个安全的执行环境,但在3.10.4版本中,攻击者能够利用VM.run()接口传入的恶意代码,绕过其内部的安全检查机制。通过利用JavaScript的原型链特性或特定对象的引用机制,攻击者可以从沙箱内部“逃逸”出来,获取到宿主进程的对象引用。一旦获得宿主对象的访问权限,攻击者便不再受沙箱限制,可以直接调用Node.js的核心模块(如child_process)或访问文件系统。由于该漏洞利用无需认证和用户交互,且攻击复杂度低,远程攻击者可轻易接管服务器。