流行的vm2 Node.js库中发现严重的沙箱逃逸漏洞,如被成功利用,可能允许攻击者在底层操作系统上运行任意代码。
这个被追踪为CVE-2026-22709的漏洞在CVSS评分系统中得分高达9.8分(满分10.0分)。
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。
CVE-2023-37903在2023年7月的发现也促使Simek宣布该项目将被停止。然而,这些引用已从GitHub存储库上最新的README文件中删除。安全页面也在2025年10月更新,提到vm2 3.x版本正在积极维护中。
不过,vm2的维护者也承认未来可能会发现新的绕过方法,敦促用户确保保持库的更新,并考虑其他强大的替代方案,如isolated-vm,以获得更强的隔离保证。
Semgrep表示:"vm2的继任者isolated-vm不依赖有问题的vm模型,而是依赖V8的原生Isolate接口,这提供了更坚实的基础。但即便如此,vm2的维护者仍强调隔离的重要性,实际上建议使用Docker并在组件之间进行逻辑分离。"
鉴于该漏洞的严重性,建议用户更新到最新版本(3.10.3),该版本修复了额外的沙箱逃逸问题。
Q&A
Q1:vm2是什么?有什么作用?
A:vm2是一个Node.js库,用于在安全的沙箱环境中运行不可信代码。它通过拦截和代理JavaScript对象来防止沙箱代码访问主机环境,为开发者提供安全的代码执行环境。
Q2:CVE-2026-22709漏洞有多严重?
A:CVE-2026-22709是一个严重的沙箱逃逸漏洞,CVSS评分高达9.8分(满分10.0分)。该漏洞源于对Promise处理程序的不当清理,攻击者可利用它逃逸沙箱并在底层操作系统上运行任意代码。
Q3:如何防护vm2库的安全风险?
A:建议用户立即更新到最新版本3.10.3,该版本修复了沙箱逃逸问题。考虑到vm2历史上存在多个类似漏洞,维护者建议考虑使用isolated-vm等更安全的替代方案,或使用Docker进行组件间逻辑分离。
好文章,需要你的鼓励
机器人智能公司Inbolt将于2026年6月在芝加哥Automate展会上发布两项新能力:Inbolt机器人编程功能和扩展版机器人控制模块。新功能可让工程师直接基于CAD模型构建程序,结合视觉模型实时定位实体零件并自动调整运动路径,彻底消除传统调试中耗时数周的手动示教环节。此次更新还将原生支持安川机器人,使平台覆盖品牌扩展至六个。
Mind Lab提出三轴PEFT框架,通过增强共享基础模型、缩小个人适配器、扩展持久化适配器种群,探索百万个人AI模型的可行路径。
本文提供了一套完整的笔记本电脑深度清洁方案。硬件方面,介绍了如何用温和洗涤剂清洁机身、用微纤维布擦拭屏幕、用压缩空气清理键盘及清洁充电线的正确方法。软件方面,建议及时更新操作系统与驱动程序,删除冗余文件与临时下载内容,并通过开启Windows Storage Sense功能实现自动清理,同时将剩余文件整理归类,保持系统整洁高效运行。
K-BROWSECOMP是一套专门测试AI在韩语网络中多步搜索推理能力的基准测试集,包含400道题,揭示全球顶尖AI模型在韩语环境下存在严重性能下滑,韩国本土模型得分更低至0%至10%。