Critical vm2 sandbox bug lets attackers execute code on hosts
A critical vulnerability in the popular Node.js sandboxing library vm2 allows escaping the sandbox and executing arbitrary code on the host system.
[!quote]+
该安全问题被追踪为 CVE-2026-26956,已确认会影响 vm2 3.10.4 版,但早期版本也可能存在漏洞。已发布概念验证 (PoC) 漏洞利用代码。维护者在安全公告中称,该问题只影响已启用 WebAssembly 异常处理和 JSTag 支持的 Node.js 25 环境(已在 Node.js 25.6.1 上确认)。
推荐阅读[AI Agent 智能体] Macbook 上装的 OpenAI Codex App 如何才能使用国内的大模型?
推荐阅读QCY A30 TWS 耳机上架:搭载 8 麦克风阵列降噪架构,售 209 元
vm2 是一个开源 Node.js 库,用于在受限沙箱环境中运行不受信任的 JavaScript 代码。在线编码平台、自动化工具和 SaaS 应用程序通常使用它来执行用户提供的脚本。
该库试图将沙盒代码与主机系统隔离,并阻止对进程和文件系统等敏感 Node.js API 的访问。
CVE-2026-26956 源自该库对沙盒环境和主机之间交叉异常的错误处理。
该公告解释说,vm2 通常依赖 JavaScript 级保护措施来防止基于主机的错误,并依赖桥接代理来封装跨上下文对象,两者都完全在 JavaScript 中运行。
不过,WebAssembly 异常处理可以在 Google V8 引擎内部的较低层次拦截 JavaScript 错误,从而绕过 vm2 基于 JavaScript 的安全防御。
通过使用符号到字符串的转换触发特制的 TypeError,攻击者可导致主机端错误对象未经 vm2 净化而泄漏回沙箱。
由于泄漏的对象来自主机环境,攻击者可以滥用其构造函数链,重新获得对 Node.js 内部(如进程对象)的访问权限,最终允许在主机系统上执行任意命令。
维护者的安全公告还包括一个 PoC 漏洞利用程序,演示了在主机上远程执行代码的过程。
建议 vm2 用户尽快升级到 3.10.5 或更高版本(最新版本为 3.11.2),以降低 CVE-2026-26956 被利用的风险。
6 个帖子 - 4 位参与者