
استغلال إثبات المفهوم لثغرة CVE-2025-9074 - تعرّض واجهة Docker API غير المُصادَق عليها مما يسمح بإنشاء حاويات بشكل تعسفي والوصول إلى نظام ملفات المضيف.
يوفر هذا المستودع استغلالًا لإثبات المفهوم (PoC) لثغرة CVE-2025-9074، والتي تتعلق بفضح API الخاص بمحرك Docker بدون مصادقة على منفذ TCP 2375.
يمكن للمهاجم الذي يصل إلى هذا API المكشوف أن:
تم إصدار هذا الإثبات (PoC) لأغراض تعليمية واختبار أمني مصرح به فقط.
استغلال الأنظمة دون تصريح هو أمر غير قانوني وغير أخلاقي.
استخدم هذا الإثبات فقط على البيئات التي تملكها أو لديك تصريح صريح لاختبارها.
2375requestsتثبيت التبعيات:
pip install requests
إذا كنت تختبر هذا الإثبات على جهازك المحلي، فتأكد من أن API الخاص بـ Docker معرّض عبر TCP بدون TLS. على Docker Desktop، اتبع الخطوات التالية:
⚠️ تحذير: هذا الخيار يعطّل المصادقة على API الخاص بـ Docker.
يمكن لأي مهاجم محلي أو عن بُعد يصل إلى localhost:2375 التحكم في خفي Docker الخاص بك.
قم بتمكين هذا فقط في بيئات اختبار معزولة — ليس في بيئة الإنتاج أبدًا.
بمجرد التمكين، يمكنك التحقق باستخدام:
curl http://127.0.0.1:2375/info
إذا استجاب API بـ JSON يحتوي على "ServerVersion"، فهذا يعني أن الخفي معرّض بشكل صحيح.
# Clone this repository
git clone https://github.com/<your-username>/CVE-2025-9074-POC.git
cd CVE-2025-9074-POC
# Run the PoC
python3 poc_cve_2025_9074.py <target_ip>:2375
إذا لم يتم توفير هدف، سيطالبك السكربت بالإدخال ويعتمد افتراضيًا على 127.0.0.1:2375.
التحقق من توفر API
يؤكد ما إذا كان API الخاص بـ Docker يستجيب إلى /info.
سحب صورة alpine
يضمن توفر الصورة الأساسية المطلوبة.
تجهيز حِمل الحاوية الخبيثة
إنشاء حاوية مع ربط نظام ملفات المضيف في /mnt.
إنشاء الحاوية يرسل طلب إنشاء الحاوية.
بدء تشغيل الحاوية يتم بدء تشغيل الحاوية، مما يوفر الوصول إلى نظام ملفات المضيف.
مرحلة ما بعد الاستغلال مثال:
docker exec -it <container_id> sh
ls /mnt
Expose daemon on tcp://localhost:2375 without TLS في Docker Desktop بعد الاختبار.تم تطوير سكربت PoC بالاشتراك مع Gemini AI أثناء البحث.
تم إصدار هذا الإثبات بموجب رخصة MIT.