
إثبات المفهوم (PoC) لثغرة CVE-2023-1177 في MLflow (إعادة الإنتاج)
يحتوي هذا المستودع على كود استغلال إثبات المفهوم (PoC) ودليل إعادة إنتاج ثغرة تضمين الملفات المحلية (LFI) في MLflow، والمعرّفة بـ CVE-2023-1177.
معلومات الثغرة:
GET /model-versions/get-artifact مع المسارات. يمكن للمهاجم إنشاء إصدار نموذج (model version) مع تعديل حقل source ليصبح مسارًا محليًا على الخادم (باستخدام file:///). بعد ذلك، ومن خلال استدعاء نقطة النهاية get-artifact مع معامل path يشير إلى ملف مرغوب (نسبيًا إلى source المعدّل)، يمكن للمهاجم قراءة محتويات ملفات عشوائية على نظام ملفات الخادم بصلاحيات المستخدم الذي يشغّل خادم MLflow.إعداد البيئة:
environment.yml الموجود في هذا المستودع لإعادة إنشاء البيئة التي استُخدمت في الاختبار بدقة:
conda env create -f environment.yml
attack (أو الاسم المعرّف في ملف yml) مع Python وجميع الحزم الضرورية (بما في ذلك mlflow==2.1.1 وrequests وpandas وdatabricks-cli وإصدار setuptools المتوافق).conda activate attack
خطوات إعادة إنتاج الثغرة وPoC مع تحدي، وإذا كنت لا ترغب في إعادة الإنتاج يمكنك الاطلاع عبر هذا الرابط: https://hackmd.io/@paultheal1en/SymHyk10kg