
# محاكاة نطاق هدف تعليمي بلغة بايثون لـ CVE-2026-22807 محاكاة تعليمية لنطاق هدف بلغة بايثون تحاكي CVE-2026-22807، وهي ثغرة تنفيذ كود عن بُعد (RCE) في سلسلة توريد الذكاء الاصطناعي عبر TOCTOU في تحميل النماذج. تتضمن مكتبة قابلة للاستغلال، وسكربت إثبات المفهوم (PoC)، وتوليد حمولة ديناميكية لأغراض البحث الأمني والتدريس.
⚠️ إخلاء مسؤولية / Disclaimer
هذا المشروع مخصص لأغراض البحث والتعليم الأمني فقط، ويهدف إلى توضيح مبدأ هجوم سلسلة التوريد أثناء تحميل نماذج الذكاء الاصطناعي (Remote Code Execution). يُرجى عدم استخدام النماذج الضارة المُولَّدة في بيئات الإنتاج، ويُمنع منعًا باتًا استخدام هذا المشروع في أي أنشطة هجومية غير قانونية. لا يتحمل المطور أي مسؤولية قانونية ناتجة عن سوء الاستخدام.
هذه بيئة تدريب خفيفة مكتوبة بلغة Python، تُستخدم لمحاكاة وإعادة إنتاج CVE-2026-22807 (منطق ثغرة نموذجي في سلسلة توريد الذكاء الاصطناعي).
توضح هذه البيئة مشكلة السباق الزمني (TOCTOU) عندما تقوم أطر عمل الاستدلال بالذكاء الاصطناعي (مثل vLLM، Transformers وغيرها) بتحميل النماذج:
إذا قام المُحمِّل باستيراد كود Python المقدم من المستخدم مبكرًا جدًا لتحليل بنية النموذج (AutoConfig/AutoModel) قبل التحقق من trust_remote_code=False، يمكن للمهاجم تجاوز الفحوصات الأمنية وتحقيق تنفيذ التعليمات البرمجية عن بُعد (RCE).
تأكد من تثبيت Python 3.x. هذه البيئة لا تعتمد على أي مكتبات خارجية.
قم بتشغيل سكربت الهجوم مباشرة، وسيتم تنفيذ أمر whoami افتراضيًا.
python poc_dynamic.py
الإخراج المتوقع: سترى في وحدة التحكم كلمة PWNED بالإضافة إلى اسم مستخدم النظام الحالي، ثم سيقوم البرنامج برفع استثناء "Remote code not allowed". هذا يثبت أن الدفاع قد تم تجاوزه.
يمكنك تمرير أي أمر نظام كوسيط للسكربت لتوليد "قنبلة" محددة.
مثال على Windows (فتح الآلة الحاسبة):
python poc_dynamic.py calc
مثال على Linux/Mac (عرض ملف):
python poc_dynamic.py cat /etc/passwd
تعيد هذه البيئة إنتاج العملية الخطيرة التالية:
config.json.auto_map، ولتأكيد فئة النموذج، يقوم مباشرة بتنفيذ importlib لاستيراد ملف Python الهدف.import في Python، يتم تنفيذ os.system() في أعلى الملف الضار فورًا.trust_remote_code. على الرغم من أنه يتم اعتراض الخطأ في هذه المرحلة، إلا أن الهجوم قد اكتمل بالفعل.❌ الكود الهش (vulnerable_lib.py):
# 1. تشغيل تحميل الكود أولاً (يحدث RCE هنا)
self._resolve_model_class()
# 2. إجراء الفحص الأمني لاحقًا (بعد فوات الأوان)
if not self.trust_remote_code:
raise RuntimeError("Aborted!")
✅ الحل المقترح:
# 1. إجراء الفحص الأمني أولاً
if not self.trust_remote_code and self._needs_remote_code():
raise RuntimeError("Aborted!")
# 2. تحميل الكود فقط بعد اجتياز الفحص
self._resolve_model_class()
| اسم الملف | الدور | الوصف |
|---|
vulnerable_lib.py | 🎯 الهدف (Victim) | يحاكي مكتبة تحميل نماذج الذكاء الاصطناعي المعرضة للثغرة (MiniLLM). تحتوي على ترتيب منطقي خاطئ. |
poc_dynamic.py | 🔫 المهاجم (Attacker) | سكربت هجوم آلي. مسؤول عن توليد دليل النموذج الضار وتشغيل عملية التحميل. |
dynamic_evil_model/ | 📦 الحمولة الضارة | دليل يتم توليده تلقائيًا بعد تشغيل السكربت، يحتوي على config.json وmalicious.py مع الكود المُحقن. |