用于复现 CVE-2026-58138 的工具包,这是一个在 Conductor 中的 CVSS 9.8 代码注入漏洞。它包含了 OpenTaint 规则和 GraalVM 近似规则、独立的规则测试、扫描结果以及一个可用的利用程序。
扫描针对 Conductor v3.23.0,报告了两条从未授权工作流输入到完全主机访问的 GraalVM 评估器的发现。每条发现包含四个 HTTP 入口点流程:
core/src/main/java/com/netflix/conductor/core/events/ScriptEvaluator.java:203core/src/main/java/com/netflix/conductor/core/execution/evaluators/PythonEvaluator.java:63.opentaint/rules/ – 连接规则和完全主机访问的 Context.eval 接收器.opentaint/model/config/ – GraalVM 流畅构建器的直通模型.opentaint/test-projects/ – 15 个正向和负向规则示例results/report.sarif – 复现的 OpenTaint 发现poc/poc_inline_lambda_rce.py – 真实利用程序需要 OpenTaint 和 JDK 21。
opentaint compile \
.opentaint/test-projects/graaljs-polyglot-code-injection \
--output /tmp/conductor-rule-model
opentaint test rule run /tmp/conductor-rule-model \
--ruleset .opentaint/rules \
--passthrough-approximations .opentaint/model/config
预期结果:通过: 15, 失败: 0。
git clone --depth 1 --branch v3.23.0 \
https://github.com/conductor-oss/conductor.git conductor
opentaint scan ./conductor \
--ruleset builtin \
--ruleset .opentaint/rules \
--rule-id java/security/graaljs-polyglot-code-injection.yaml:graaljs-polyglot-code-injection \
--passthrough-approximations .opentaint/model/config \
--max-memory 16G \
--output results/report.sarif
opentaint summary results/report.sarif --show-findings
预期结果:在上述列出的接收器处得到两条 java/security/graaljs-polyglot-code-injection 发现。使用命令中显示的完整 <规则文件>:<规则ID> 值,以便 OpenTaint 也能加载连接规则引用的源和接收器规则。
使用默认服务器配置启动 Conductor v3.23.0,然后运行:
# JavaScript INLINE 任务
python3 poc/poc_inline_lambda_rce.py --base-url http://localhost:8000
# 其他支持的路径
python3 poc/poc_inline_lambda_rce.py --task-type lambda --variant js
python3 poc/poc_inline_lambda_rce.py --task-type inline --variant python
脚本在确认命令执行后以状态 0 退出。PoC 也支持 DO_WHILE 和 SWITCH。使用 --help 查看所有选项。
Conductor 在 3.30.2 中修复了该漏洞。参见 案例研究 了解漏洞路径、利用细节、规则设计和补丁分析。