vm2 Node.js库曝严重沙箱逃逸漏洞(CVE-2026-22709)可导致任意代码执行

流行的vm2 Node.js库近日披露一个高危沙箱逃逸漏洞,攻击者成功利用该漏洞可在底层操作系统上执行任意代码。该漏洞编号为CVE-2026-22709,CVSS评分为9.8分(满分10分)。

漏洞技术细节

vm2维护者Patrik Simek表示:"在vm2 3.10.0版本中,Promise.prototype.then和Promise.prototype.catch回调的净化处理可被绕过,导致攻击者能够逃逸沙箱并执行任意代码。"vm2是一个Node.js库,通过拦截和代理JavaScript对象,在安全的沙箱环境中运行不受信任的代码,防止沙箱代码访问主机环境。

新发现的漏洞源于该库对Promise处理程序的不当净化处理,形成了逃逸向量,最终导致在沙箱边界外执行任意代码。Endor Labs研究人员Peyton Kennedy和Cris Staicu指出:"关键问题在于JavaScript中的异步函数返回的是globalPromise对象而非localPromise对象。由于globalPromise.prototype.thenglobalPromise.prototype.catch未像localPromise那样被正确净化处理。"

历史漏洞与维护现状

虽然CVE-2026-22709已在vm2 3.10.2版本中修复,但这是近年来困扰该库的一系列沙箱逃逸漏洞中的最新案例。此前已披露的漏洞包括:CVE-2022-36067、CVE-2023-29017、CVE-2023-29199、CVE-2023-30547、CVE-2023-32314、CVE-2023-37466和CVE-2023-37903。

2023年7月发现CVE-2023-37903后,Simek曾宣布该项目将停止维护。但最新GitHub仓库中的README文件已删除相关声明,安全页面也在2025年10月更新,表明vm2 3.x版本仍在积极维护中。

安全建议与替代方案

vm2维护者承认未来可能还会发现新的绕过方法,建议用户确保及时更新库版本,并考虑使用isolated-vm等具有更强隔离保证的替代方案。Semgrep表示:"作为vm2的继任者,isolated-vm不再依赖问题多发的vm模型,而是基于V8原生Isolate接口构建,提供了更坚实的基础。但即便如此,vm2维护者仍强调隔离的重要性,实际推荐使用Docker实现组件间的逻辑隔离。"

鉴于该漏洞的严重性,建议用户升级至最新版本(3.10.3),该版本修复了多个沙箱逃逸问题。

相关推荐
濮水大叔10 小时前
为什么 AI 最擅长 React/Next.js,却很少看到真正好用的 Next.js 开源项目?
react.js·node.js·next.js
AI行业学习12 小时前
Claude Code + cc-switch + Git + Node.js 全套下载+安装+配置完整版
开发语言·git·python·前端框架·node.js·html·notepad++
万亿少女的梦16817 小时前
基于微信小程序、Express与MongoDB的校园失物招领系统设计
mongodb·微信小程序·node.js·express·系统设计
AI行业学习17 小时前
Claude Code + cc-switch + Git + Node.js 一站式完整安装配置教程【8.3】
git·python·安全·前端框架·node.js·html·notepad++
AI行业学习17 小时前
Claude Code + cc-switch + Git + Node.js 一站式完整安装配置教程(2026最新·国内可用版)
人工智能·git·python·安全·node.js·html·notepad++
用户847181054191 天前
从0开始打造自己的个人智能体(一)——Deep Agents js环境配置与对话入门
node.js·agent
减瓦2 天前
从 0.1 到 26:一个运行时的十七年进化史
node.js
晓得迷路了2 天前
栗子前端技术周刊第 140 期 - pnpm、Node 新 API 文档网站、Oxlint...
前端·javascript·node.js
孟陬2 天前
Node.js 测试报告格式一览和自定义 json 格式 `--test-reporter=spec | tap | dot | junit | lcov`
node.js
陳陈陳3 天前
🚀 前端流式输出革命:SSE + BFF 架构从零到一实战指南
vue.js·架构·node.js