
Kit de reproduction pour CVE-2026-58138, une RCE non authentifiée dans Conductor. Inclut des règles d'analyse statique OpenTaint, des tests isolés, des résultats SARIF et un exploit Python fonctionnel pour l'injection de code GraalVM.
Kit de reproduction pour CVE-2026-58138, une vulnérabilité d'injection de code avec un score CVSS de 9,8 dans Conductor. Il contient la règle OpenTaint et les approximations GraalVM, des tests de règle isolés, le résultat d'analyse et un exploit fonctionnel.
L'analyse cible Conductor v3.23.0 et remonte deux résultats à partir d'une entrée de workflow non authentifiée jusqu'aux évaluateurs GraalVM avec accès complet à l'hôte. Chaque résultat contient quatre flux de points d'entrée 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/ - la règle de jointure et le puits avec accès complet à l'hôteContext.eval.opentaint/model/config/ - modèles de passage pour les builders fluides GraalVM.opentaint/test-projects/ - 15 échantillons de règles positifs et négatifsresults/report.sarif - les résultats OpenTaint reproduitspoc/poc_inline_lambda_rce.py - l'exploit fonctionnelNécessite OpenTaint et 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
Résultat attendu : Passed: 15, failed: 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
Résultat attendu : deux résultats java/security/graaljs-polyglot-code-injection aux puits
listés ci-dessus. Utilisez la valeur complète <fichier-de-règle>:<id-de-règle> indiquée dans la commande afin qu'OpenTaint charge
également les règles de source et de puits référencées par la jointure.
Démarrez Conductor v3.23.0 avec sa configuration serveur par défaut, puis exécutez :
# Tâche JavaScript INLINE
python3 poc/poc_inline_lambda_rce.py --base-url http://localhost:8000
# Autres chemins pris en charge
python3 poc/poc_inline_lambda_rce.py --task-type lambda --variant js
python3 poc/poc_inline_lambda_rce.py --task-type inline --variant python
Le script se termine avec le statut 0 après avoir confirmé l'exécution de la commande. Le PoC prend également en charge
DO_WHILE et SWITCH. Exécutez-le avec --help pour toutes les options.
Conductor a corrigé la vulnérabilité dans la version 3.30.2. Voir l'étude de cas pour le chemin vulnérable, les détails de l'exploit, la conception de la règle et l'analyse du correctif.