
المؤلف: w01f
الحالة: إثبات المفهوم (تعليمي / للاختبار المصرّح به فقط)
يعرض هذا المشروع نموذجًا لإثبات المفهوم (PoC) لثغرة CVE-2025-9074، وهي سوء تكوين/تعريض في إصدارات معينة من Docker Desktop لنظام ويندوز حيث تكون واجهة HTTP API لمحرك Docker عند http://192.168.65.7:2375 قابلة للوصول من الحاويات (وأحيانًا عبر SSRF)، مما يسمح للمهاجم بإنشاء حاوية مع ربط (bind mount) بمحرك أقراص مضيف ويندوز وكتابة ملفات على المضيف.
⚠️ استخدم هذا فقط في مختبر خاضع للتحكم أو بإذن كتابي صريح. قد تؤدي إساءة الاستخدام إلى انتهاك القوانين والسياسات.
http://192.168.65.7:2375)C:\ على المضيف (كـ /mnt/host/c داخل جهاز Linux الافتراضي) إلى /host_root داخل الحاويةC:\pwn.txt على المضيفإذا كان الهدف عرضة للثغرة، سترى الملف يظهر على مضيف ويندوز.
192.168.65.7:2375 (HTTP، بدون TLS).✅ إذا أعاد
GET http://192.168.65.7:2375/_pingاستجابةOKمن داخل حاوية، فمن المرجح أن شروط الـ PoC متوفرة.
.
├─ cve_2025_9074_poc.py # Python PoC (requests-based)
└─ README.md # This file
pip install requestshttp://192.168.65.7:2375) من الحاوية التي تشغّل فيها الـ PoC# 1) Install dependency
pip install --no-input requests
# 2) Run the PoC
python3 cve_2025_9074_poc.py
# Optional: customize output filename or image
# python3 cve_2025_9074_poc.py --outfile test.txt --image busybox
السلوك الافتراضي:
http://192.168.65.7:2375/mnt/host/c (محرك الأقراص C:\ في ويندوز كما يُرى من جهاز Linux الافتراضي)/host_rootC:\pwn.txt--host Engine host IP (default: 192.168.65.7)
--port Engine port (default: 2375)
--image Container image (default: alpine)
--host-path Path on engine host/VM to bind (default: /mnt/host/c)
--mount-path Path inside the container (default: /host_root)
--outfile Filename to create on host C:\ (default: pwn.txt)
على نظام عرضة للثغرة، بعد تشغيل الـ PoC يجب أن تجد:
C:\pwn.txt
يحتوي على النص pwned_by_CVE_2025_9074.
يستخدم الـ PoC حاوية قصيرة العمر. إذا أردت أن تكون دقيقًا:
# From a privileged shell with docker CLI access:
docker ps -a --format '{{.ID}}\t{{.Image}}\t{{.Command}}'
# Remove by container ID if any remain:
docker rm -f <CONTAINER_ID>
# Remove the test file on the host:
del C:\pwn.txt
HostConfig.Binds مسارات مثل /mnt/host/c أو تركيبات أخرى لمحركات أقراص المضيف.C:\ الناتجة عن عمليات تُعزى إلى سياق جهاز Docker Linux الافتراضي.192.168.65.7:2375 (HTTP) تُعد مشبوهة./ping ليست OK / رفض الاتصال: واجهة برمجة تطبيقات المحرك غير قابلة للوصول من حاويتك؛ قد يكون المضيف مصحّحًا أو غير مكشوف.--host-path يعيّن بشكل صحيح إلى C:\ في ويندوز من جهاز Linux الافتراضي. تختلف بعض البيئات.alpine مسبقًا أو بدّل إلى busybox باستخدام --image busybox.يُقدَّم هذا الـ PoC للأغراض التعليمية والاختبار المصرّح به فقط. يُعد تشغيله ضد أنظمة دون إذن كتابي صريح أمرًا غير قانوني وغير أخلاقي. المؤلف والمساهمون غير مسؤولين عن إساءة الاستخدام أو الأضرار.
MIT
المؤلف: w01f