流行的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进行组件间逻辑分离。
好文章,需要你的鼓励
研究人员意外发现,标准MOSFET晶体管可同时模拟神经元和突触行为,形成"神经突触随机存取存储器"(NSRAM)。该技术仅需一至两个晶体管即可实现传统需数十乃至数百个元件才能完成的神经信号处理,且与现有硅基制造工艺完全兼容,良率达100%。未来有望应用于边缘AI及高能效神经形态芯片,长远或可挑战GPU地位。
牛津大学提出PHYSIFORMER,一种扩散变换器模型,通过三维网格顶点轨迹直接在世界坐标空间预测刚性与弹性物体的物理运动,一次性生成全序列轨迹,超越自回归基线。
本文提出一种评估人工智能风险的新方法,借鉴生态学与演化论视角,从理论生态模型中推导出三项风险指标,涵盖种群模型与生态系统模型。研究旨在为AI治理策略提供量化工具,并对分析局限性及政策改进方向进行了深入探讨,为构建更科学的AI风险评估体系提供参考框架。
研究发现主流奖励模型对同等质量答案给出差异悬殊的分数,并提出"奖励聚类"算法通过蒙特卡洛随机失活将连续分数离散化,在不重训模型的前提下有效减少AI训练中的奖励作弊现象。