
Reproduktionskit für CVE-2026-58138, eine nicht authentifizierte RCE in Conductor. Enthält OpenTaint-Statikanalyseregeln, isolierte Tests, SARIF-Ergebnisse und einen funktionierenden Python-Exploit für GraalVM-Codeinjection.
Reproduktionskit für CVE-2026-58138, eine CVSS 9.8 Code-Injection-Schwachstelle in Conductor. Es enthält die OpenTaint-Regel und GraalVM-Approximationen, isolierte Regeltests, das Scan-Ergebnis und einen funktionierenden Exploit.
Der Scan zielt auf Conductor v3.23.0 ab und meldet zwei Ergebnisse von nicht authentifizierten Workflow-Inputs zu GraalVM-Evaluatoren mit vollem Host-Zugriff. Jedes Ergebnis enthält vier HTTP-Einstiegspunkt-Flows:
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/ - die Join-Regel und der Context.eval-Sink mit vollem Host-Zugriff.opentaint/model/config/ - Passthrough-Modelle für GraalVM-Fluent-Builder.opentaint/test-projects/ - 15 positive und negative Regelbeispieleresults/report.sarif - die reproduzierten OpenTaint-Ergebnissepoc/poc_inline_lambda_rce.py - der Live-ExploitErfordert OpenTaint und 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
Erwartetes Ergebnis: Bestanden: 15, fehlgeschlagen: 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
Erwartetes Ergebnis: zwei java/security/graaljs-polyglot-code-injection-Ergebnisse an den oben aufgeführten Senken. Verwenden Sie den vollständigen <rule-file>:<rule-id>-Wert, der im Befehl angezeigt wird, damit OpenTaint auch die vom Join referenzierten Quell- und Senkenregeln lädt.
Starten Sie Conductor v3.23.0 mit seiner Standard-Serverkonfiguration und führen Sie dann Folgendes aus:
# JavaScript INLINE task
python3 poc/poc_inline_lambda_rce.py --base-url http://localhost:8000
# Other supported paths
python3 poc/poc_inline_lambda_rce.py --task-type lambda --variant js
python3 poc/poc_inline_lambda_rce.py --task-type inline --variant python
Das Skript beendet sich mit Status 0, nachdem es die Befehlsausführung bestätigt hat. Der PoC unterstützt auch DO_WHILE und SWITCH. Führen Sie es mit --help aus, um alle Optionen anzuzeigen.
Conductor hat die Schwachstelle in Version 3.30.2 behoben. Siehe die Fallstudie für den angreifbaren Pfad, Exploit-Details, Regeldesign und Patch-Analyse.