Node.js 沙箱库 vm2 曝高危沙箱逃逸漏洞(CVE-2026-22709)

近日,热门 Node.js 沙箱库 vm2 被披露一个高危漏洞(CVE-2026-22709,CVSS 评分 9.8,Critical)。攻击者可利用该漏洞轻松突破沙箱限制,在底层主机系统上执行任意代码(RCE)。

vm2 是一款开源库,主要用于创建安全的 JavaScript 执行环境。它允许开发者运行不受信任的代码,同时限制其对文件系统等资源的访问,是实现代码隔离的常用工具。

What is Sandboxing? Understand Sandboxing in Cyber Security - OPSWAT

该库广泛应用于支持用户脚本的 SaaS 平台、在线代码运行工具、聊天机器人以及众多开源项目中。GitHub 上使用 vm2 的项目超过 20 万个,npm 周下载量长期稳定在百万次级别(目前最新版本为 3.10.5)。

漏洞根源:Promise 回调清理机制存在缺陷

漏洞核心在于 vm2 对异步操作 Promise 的隔离不够完善。

  • vm2 会对自身内置 Promise 的回调函数进行数据清理(sanitization)。
  • 但异步函数返回的是全局 Promise 对象,其 .then() 和 .catch() 回调函数未能得到充分的清理校验。
  • 攻击者可通过覆盖 Function.prototype.call 等方式绕过清理,导致沙箱逃逸。

维护者明确指出:在 vm2 3.10.0 版本中,Promise.prototype.then 和 Promise.prototype.catch 的回调清理机制可被绕过,从而允许任意代码执行。

官方已修复:

  • 3.10.1 版本进行了部分修复。
  • 3.10.2 版本进一步强化措施,避免绕过。
  • 目前推荐升级至 最新版本 3.10.5(或至少 3.10.2),所有已知漏洞均已修复。

开发者还公开了 PoC 演示代码,展示了如何在沙箱内触发漏洞并执行主机命令。鉴于利用方式简单,官方强烈建议所有用户立即升级。

Threat actors misuse Node.js to deliver malware and other malicious payloads | Microsoft Security Blog

已发布的漏洞利用片段(示例简化示意)

JavaScript

复制代码
// 简化概念示例(实际 PoC 更具体,请参考官方 advisory)
const { VM } = require("vm2");
const vm = new VM();

vm.run(`
  // 攻击代码:覆盖原型,绕过 Promise 清理
  // ...(完整 PoC 见 GitHub Security Advisory)
`);

建议:不要在生产环境中直接运行未经验证的演示代码。

vm2 的历史沙箱逃逸问题

vm2 长期以来沙箱逃逸漏洞频发,曾在 2023 年宣布停止维护,并被判定"不适合运行不受信任代码"。2023 年 10 月项目重启,发布 3.10.0 版本修复当时已知问题并保持向下兼容(至 Node 6)。

历史高危漏洞包括:

  • CVE-2022-36067:允许突破隔离执行主机命令。
  • CVE-2023-29017:利用程序迅速公开。
  • CVE-2023-30547:同月披露的另一沙箱逃逸漏洞。
  • 以及其他多个类似问题。

尽管多次修复,但此次 CVE-2026-22709 再次提醒开发者:沙箱库的安全边界极易被复杂异步机制突破。

安全建议
  1. 立即升级 :将 vm2 更新至 3.10.5 (或至少 3.10.2):

    Bash

    复制代码
    npm install vm2@latest
  2. 替代方案:考虑使用更安全的隔离工具,如 isolated-vm(官方曾推荐)或其他基于虚拟化/进程隔离的方案。

  3. 最佳实践 :避免在高风险场景下运行完全不受信任的代码;结合静态分析、权限最小化等防御措施。

  4. 监控依赖 :定期使用 Snyk、Dependabot 等工具检查项目中的 vm2 版本。

参考来源:GitHub Security Advisory、NVD、The Hacker News 等安全报告。

相关推荐
mennekes31 分钟前
临时用电线路标识:插头颜色、钟面标识配套规范
运维·网络·科技·安全·制造
是真的小外套4 小时前
网络安全实战第7期:Hydra爆破SSH实战
安全·web安全·ssh
jimmyleeee5 小时前
Agent安全之七:当智能体之间开始“互相信任”------深入理解 OWASP ASI07 不安全的智能体间通信
人工智能·安全
卓豪终端管理6 小时前
终端零信任落地实践:应用控制与权限管理的五层管控体系
安全·web安全
深蓝AI6 小时前
一个版本号失守:Claude Code 2.1.313 扩展后门事件,开发者机器如何变成别人的 SSH 入口
安全·程序员
金海星科技6 小时前
从“装摄像头“到“用摄像头管安全“:船舶智能监控的范式变化
安全
jimmyleeee6 小时前
Agent安全之六:(ASI06)记忆与上下文投毒——当 AI 把“昨天的错误”当成“今天的真理”
网络·人工智能·安全
QYR-分析7 小时前
7.0% 年增!新能源汽车 EPB 电机赛道升温,安全执行件的博弈正在底盘上演
安全·汽车
福建佰胜张工8 小时前
深度解析 Allen-Bradley 150-B135NBDA 智能电机控制器:选型、参数与工业应用
运维·数据库·单片机·嵌入式硬件·安全·自动化
智慧光迅AINOPOL8 小时前
POF光电复合缆多业务承载原理
网络·安全·智能路由器