漏洞概述 漏洞名称:VM Sandbox Escape to Remote Code Execution via console._stdout Prototype Chain Traversal in Workflow Script Node CVE编号:CVE-2024-84150 CVSS评分:10.0 / 10(Critical) 漏洞原理:NocoBase Workflow Script Node 在 Node.js VM 沙箱中执行用户提供的 JavaScript 代码,虽然使用了自定义的 require 允许列表( 环境变量控制),但传入沙箱上下文的 对象通过 和 暴露了宿主环境的 流对象。攻击者可通过原型链遍历绕过沙箱限制,实现远程代码执行。 利用链: 1. → 获取宿主 realm 的 Function 构造器 2. → 获取 Node.js process 对象 3. → 无限制加载模块 4. → 以 root 身份执行 RCE --- 影响范围 攻击影响: Docker 容器内以 root 身份(uid=0)执行远程代码 数据库凭据窃取( 、 等环境变量) 通过 任意文件读取 确认可获取反向 shell 出站网络访问用于横向移动 --- POC代码 HTTP请求 响应 --- 修复方案 1. 替换 VM 模块:将 Node.js 模块替换为 ,实现真正的 V8 隔离分离 2. 清理代理对象:不要将宿主 对象直接传入沙箱,创建干净的代理对象 3. 降权运行:以非 root 用户身份运行应用程序 4. 权限限制:将 限制为仅管理员角色访问 --- 替代逃逸向量 (通过 stderr 的相同利用链) + (V8 CallSite API)