-
-
攻击者可执行任意代码!vm2 沙箱库曝12连杀漏洞
-
发表于: 5小时前 178
-
近日,广泛使用的 Node.js 沙箱环境库 vm2 被安全研究人员接连揪出 12 个严重漏洞,编号从 CVE-2026-24118 到 CVE-2026-44009,绝大多数评分高达 9.8 甚至满分 10.0。这些漏洞的共同后果极为危险:攻击者能够突破沙箱限制,在宿主机上执行任意代码,相当于完全接管服务器。
vm2 的设计初衷,是让开发者安全地运行不受信任的 JavaScript 代码,通过拦截和代理对象来隔离沙箱内外。但这一系列新漏洞表明,想彻底锁死逃逸路径远比预想的困难。其中有几个漏洞的利用手法相当“精巧”——有的借助 __lookupGetter__,有的滥用 Promise 对象的 species 属性,有的通过 inspect 函数或 SuppressedError,还有的利用符号到字符串强制转换触发的 TypeError 绕过保护。更严重的是,部分漏洞甚至能直接获取宿主的 Object 对象,或者让本应被屏蔽的 child_process 等模块重新可用,进而执行系统命令。
最受关注的满分漏洞 CVE-2026-43997 与 CVE-2026-44005,分别实现了代码注入和原型污染,让沙箱防护形同虚设。而 CVE-2026-44007 虽是稍低一些的 9.1 分,却能让攻击者在宿主机上执行任意操作系统命令。这些漏洞的覆盖范围极广,从 3.9.6 版本一路影响到最新补丁前的 3.11.1。
维护者 Patrik Šimek 在此前已紧急修复过一个关键逃逸漏洞 CVE-2026-22709,但显然新的绕过方法很快就又被挖掘出来。Šimek 也曾坦言,未来很可能还会发现更多逃逸手法。事实上,此次披露的漏洞中就不乏针对旧补丁的“补丁绕过”,例如 CVE-2026-24120 就是 CVE-2023-37466 的变种。
目前,所有已公布的漏洞均已修复。按照影响版本与修复版本的对应关系,用户只要将 vm2 升级至最新的 3.11.2 版本,即可一次性堵住全部 12 个漏洞的利用路径。对于仍依赖沙箱执行不可信代码的生产环境而言,延迟更新无异于将服务器大门向攻击者敞开。
受影响版本与修复版本速览:
低于 3.10.5 的版本:需应对 CVE-2026-24120、CVE-2026-24781、CVE-2026-26956 等
3.10.5 及以下:面临 CVE-2026-43997、CVE-2026-43999、CVE-2026-44005、CVE-2026-44006 等满分/高分漏洞
3.11.0 及 3.11.1:需立即升级至 3.11.2,修复 CVE-2026-44007、CVE-2026-44008、CVE-2026-44009
面对沙箱逃逸层出不穷的现状,安全专家建议除了保持库版本最新外,还应尽量在额外的系统级隔离环境中运行不受信任的代码,切勿仅依赖单一沙箱作为安全边界。
资讯来源:综合 The Hacker News 等外媒报道及 vm2 官方更新日志
[培训]《冰与火的战歌:Windows内核攻防实战》!从零到实战,融合AI与Windows内核攻防全技术栈,打造具备自动化能力的内核开发高手。