
أداة إعادة إنتاج لـ CVE-2026-58138، وهي ثغرة RCE غير مصادق عليها في Conductor. تشمل قواعد تحليل ثابت من OpenTaint، اختبارات معزولة، نتائج SARIF، واستغلال Python عملي لحقن كود GraalVM.
حزمة إعادة إنتاج لـ CVE-2026-58138، وهي ثغرة حقن كود (code injection) بتقييم CVSS 9.8 في Conductor. تحتوي على قاعدة 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
النتيجة المتوقعة: 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
النتيجة المتوقعة: نتيجتان من نوع java/security/graaljs-polyglot-code-injection عند المصارف المذكورة أعلاه. استخدم القيمة الكاملة <rule-file>:<rule-id> الموضحة في الأمر حتى يقوم OpenTaint بتحميل قواعد المصدر والمصرف المشار إليها بواسطة عملية الربط.
ابدأ تشغيل Conductor v3.23.0 بإعدادات الخادم الافتراضية، ثم قم بتشغيل:
# 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
يخرج السكريبت بحالة 0 بعد تأكيد تنفيذ الأمر. يدعم الإثبات DO_WHILE و SWITCH. قم بتشغيله باستخدام --help لجميع الخيارات.
أصلحت Conductor الثغرة في الإصدار 3.30.2. انظر دراسة الحالة للمسار الضعيف، وتفاصيل الاستغلال، وتصميم القاعدة، وتحليل التصحيح.