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

CVE-2026-24120 vm2沙箱逃逸致任意命令执行

披露日期: 2026-05-04

漏洞信息

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

相关标签

沙箱逃逸远程代码执行RCEvm2Node.jsCVE-2026-24120

漏洞概述

vm2是Node.js广泛使用的开源沙箱库。在3.10.5版本之前,该产品针对CVE-2023-37466发布的修复方案并不充分,存在被绕过的严重缺陷。攻击者能够精心构造特定的JavaScript代码,成功绕过沙箱限制并逃逸,从而在宿主机系统上执行任意命令。此漏洞可能导致系统被完全控制,对机密性、完整性和可用性造成严重影响。

技术细节

该漏洞的根本原因在于vm2沙箱机制的内部实现缺陷。尽管开发团队针对CVE-2023-37466漏洞实施了修复措施,但该补丁在逻辑上并不严密,仍存在可被绕过的攻击面。攻击者可以通过精心构造的恶意JavaScript代码,利用vm2在处理特定对象或异常时的逻辑漏洞,绕过沙箱的隔离限制。一旦成功绕过,攻击者即可访问宿主机的执行上下文,进而利用Node.js内置的child_process等模块在宿主机操作系统上执行任意系统命令。这种沙箱逃逸行为使得攻击者能够完全控制底层服务器,造成严重的数据泄露或破坏。鉴于CVSS 3.1评分高达9.8,该漏洞利用难度低且无需用户交互,危害性极大。

攻击链分析

STEP 1
侦察
攻击者识别目标应用是否使用了vm2库,并确认版本号是否低于3.10.5。
STEP 2
武器化
攻击者编写针对CVE-2023-37466修复补丁的绕过代码(JavaScript Payload),旨在逃逸vm2沙箱。
STEP 3
交付
攻击者通过应用程序的输入接口(如API请求、表单提交等)将恶意代码发送至服务器。
STEP 4
利用
服务器端的vm2实例执行恶意代码,触发沙箱逃逸漏洞,突破隔离环境。
STEP 5
执行
攻击者在宿主机上下文中执行任意系统命令(如反弹Shell、读取敏感文件等)。
STEP 6
达成目标
攻击者获得服务器控制权,可能导致数据窃取、勒索或进一步横向移动。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
const {VM} = require('vm2'); const vm = new VM(); // PoC demonstrating the sandbox escape concept // This exploits the insufficient fix for CVE-2023-37466 const maliciousCode = ` // Step 1: Trigger the logic flaw in the sandbox // (Specific implementation depends on the bypass technique) const exception = new Error(); // Step 2: Manipulate the internal structure to leak the host object // This simulates the bypass mechanism const host = process.mainModule.require('child_process'); // Step 3: Execute arbitrary command on the host host.execSync('whoami').toString(); `; try { console.log(vm.run(maliciousCode)); } catch (e) { console.log('Exploit failed or patched:', e); }

影响范围

vm2 < 3.10.5

防御指南

临时缓解措施
建议立即将vm2库升级到3.10.5或更高版本以彻底修复该漏洞。若暂时无法升级,应严格限制沙箱处理的数据来源,避免执行不可信的第三方代码,并在隔离的容器环境中运行应用,以降低沙箱逃逸后的影响范围。

参考链接

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