CVE-2026-7711: تنفيذ تعليمات برمجية عن بُعد في MindsDB — عندما يختار العميل نفسه وضع تنفيذ Python غير آمن
أساليب الهجوم وتقنياته2026-10-22, 07:04
تم نشر تحليل تقني لـ CVE-2026-7711 في MindsDB. تتيح الثغرة تنفيذ تعليمات Python عشوائية عن بُعد من خلال آلية BYOM (Bring Your Own Model). المشكلة الأساسية ليست تجاوز التحقق من الملفات المرفوعة، بل خلل معماري: يمكن لعميل HTTP اختيار وضع تنفيذ غير آمن، بينما تكون مصادقة API معطلة افتراضيًا.
يوفر MindsDB وضعي تنفيذ للنماذج المخصصة:
•
ModelWrapperSafe — يشغّل الكود المرفوع في عملية منفصلة داخل بيئة Python افتراضية.
• ModelWrapperUnsafe — ينفّذ الكود مباشرة داخل عملية عامل MindsDB.سلسلة الاستغلال:
يرسل المهاجم
PUT /api/handlers/byom/<name> مع ملف Python في حقل code والمعامل type=inhouse.
يحوّل الخادم inhouse إلى BYOM_TYPE.INHOUSE، فيختار ModelWrapperUnsafe. القيمة البديلة VENV تختار ModelWrapperSafe.
يُمرَّر الكود المرفوع إلى import_string() في proc_wrapper.py، الذي يستدعي exec(code, module.__dict__).
تُنفَّذ جميع العبارات ذات المستوى الأعلى قبل أن يتحقق الخادم مما إذا كانت فئة النموذج توفر طريقتي train() وpredict(). وبالتالي، فإن رفض نموذج غير صالح لا يمنع تنفيذ الكود الخبيث.يستدعي PoC الأمر
subprocess.run(['whoami']) ويكتب المخرجات إلى /tmp/pwned.txt. يعمل الأمر بامتيازات عملية عامل MindsDB.
مساحة الأسماء /api/handlers مدرجة في protected_namespaces، لكن فحص المصادقة يُفرض فقط عندما تكون config["auth"]["http_auth_enabled"] مضبوطة على True. هذا الإعداد افتراضيًا False.في النشر المستضاف ذاتيًا الذي تم فحصه، تستمع واجهة HTTP API على
0.0.0.0:47334، وBYOM ممكّن. في وضع النشر السحابي لـ MindsDB، توجد حماية منفصلة: MINDSDB_BYOM_ENABLED افتراضيًا false. لذلك، لا ينبغي افتراض أن النتائج تنطبق تلقائيًا على خدمة MindsDB السحابية.من الجدير بالذكر أن آلية رفع الملفات تعمل كما هو مصمم: يحفظ الخادم الملف المرفوع في دليل مؤقت ثم يمرر محتوياته إلى
exec(). يتحكم العميل أيضًا في الاختيار بين وضعي التنفيذ الآمن وغير الآمن عبر حقل نموذج multipart عادي.التخفيف: لا تعرّض واجهة BYOM المعرضة للخطر لشبكات غير موثوقة. مكّن مصادقة HTTP، وقيّد القدرة على رفع نماذج مخصصة، وامنع العملاء غير الموثوقين من اختيار تنفيذ
INHOUSE. تقيّد المصادقة الوصول، لكنها لا تجعل ModelWrapperUnsafe بيئة عزل.الثغرات
الباحثون
المورّدون
المنتجات