流行的vm2 Node.js库近日披露一个高危沙箱逃逸漏洞攻击者成功利用该漏洞可在底层操作系统上执行任意代码。该漏洞编号为CVE-2026-22709CVSS评分为9.8分满分10分。漏洞技术细节vm2维护者Patrik Simek表示在vm2 3.10.0版本中Promise.prototype.then和Promise.prototype.catch回调的净化处理可被绕过导致攻击者能够逃逸沙箱并执行任意代码。vm2是一个Node.js库通过拦截和代理JavaScript对象在安全的沙箱环境中运行不受信任的代码防止沙箱代码访问主机环境。新发现的漏洞源于该库对Promise处理程序的不当净化处理形成了逃逸向量最终导致在沙箱边界外执行任意代码。Endor Labs研究人员Peyton Kennedy和Cris Staicu指出关键问题在于JavaScript中的异步函数返回的是globalPromise对象而非localPromise对象。由于globalPromise.prototype.then和globalPromise.prototype.catch未像localPromise那样被正确净化处理。历史漏洞与维护现状虽然CVE-2026-22709已在vm2 3.10.2版本中修复但这是近年来困扰该库的一系列沙箱逃逸漏洞中的最新案例。此前已披露的漏洞包括CVE-2022-36067、CVE-2023-29017、CVE-2023-29199、CVE-2023-30547、CVE-2023-32314、CVE-2023-37466和CVE-2023-37903。2023年7月发现CVE-2023-37903后Simek曾宣布该项目将停止维护。但最新GitHub仓库中的README文件已删除相关声明安全页面也在2025年10月更新表明vm2 3.x版本仍在积极维护中。安全建议与替代方案vm2维护者承认未来可能还会发现新的绕过方法建议用户确保及时更新库版本并考虑使用isolated-vm等具有更强隔离保证的替代方案。Semgrep表示作为vm2的继任者isolated-vm不再依赖问题多发的vm模型而是基于V8原生Isolate接口构建提供了更坚实的基础。但即便如此vm2维护者仍强调隔离的重要性实际推荐使用Docker实现组件间的逻辑隔离。鉴于该漏洞的严重性建议用户升级至最新版本3.10.3该版本修复了多个沙箱逃逸问题。