最新消息:关注人工智能 AI赋能新媒体运营

Node.js沙箱库vm2在WASM沙箱逃逸后,再次修复NodeVM嵌套执行配置漏洞

科技资讯 admin 浏览

Node.js沙箱库vm2近期连续修复了多个沙箱逃逸漏洞。继3.10.5版本修复CVE-2026-26956后,3.11.1版本又修复了NodeVM嵌套执行配置问题CVE-2026-44007。该漏洞可能允许沙箱内的代码绕过禁止加载模块的限制,进一步创建新的执行环境,并尝试在主机端执行命令。

vm2的用途是让Node.js应用程序在受限环境中执行JavaScript,常用于在线代码执行、插件功能、自动化脚本或允许用户自定义逻辑的服务。问题在于,这些代码虽然被置于沙箱中,但仍运行在同一Node.js进程中,一旦隔离边界被绕过,攻击者就可能访问到本不应接触的主机端能力。

vm2编号为CVE-2026-44007的NodeVM嵌套执行漏洞影响3.11.0及更早版本,修复版本为3.11.1。漏洞场景是当开发者在NodeVM中开启nesting:true,却误以为通过require:false已禁用模块加载功能时,沙箱内的代码仍可能加载vm2,并创建另一个内层NodeVM,使用攻击者指定的配置执行主机命令。3.11.1的修复方式是在这种矛盾配置出现时直接报错,避免开发者误判安全防护效果。

近期vm2的安全修复以连续版本更新发布。维护者先在3.10.5版本修复CVE-2026-26956,该漏洞与WebAssembly异常处理机制有关,攻击者若能控制传给vm2执行的JavaScript代码,可能使主机端异常对象返回沙箱,从而获取主机端进程权限。

在3.10.5之后,vm2维护者于3.11.0版本进行协调式安全发布,关闭了13个安全报告,其中多项涉及完整的沙箱逃逸与远程代码执行风险。随后3.11.1修复了NodeVM嵌套执行配置导致的沙箱逃逸问题,3.11.2又修复了3项安全问题,其中2项被列为RCE风险。因此,对于仍使用vm2执行不可信JavaScript的服务,升级至当前最新版本3.11.2,才是更完整的应对措施。

vm2项目说明也提醒,vm2不应当是执行不可信代码时的唯一防线。如果服务允许外部代码进入执行环境,开发者除了升级至3.11.2外,还应评估是否需配合独立进程、容器、虚拟机或云托管执行环境,以降低沙箱边界失效后的潜在影响范围。