Skip to content
KitploitKITPLOIT
أدواتالمدونة
Log in
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

الخلاصاتاتصالالخصوصية© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2026-33032 — استدعاء دالة واحد ناقص في تسجيل المسار كان كافياً لتحويل واجهة MCP إلى بوابة تنفيذ أوامر عن بُعد (RCE) غير مصادق عليها. | Kitploit
أدوات/GitHubGitHub/keraattin/cve-2026-33032
الاستطلاعماسحات الثغرات الأمنيةالاستغلالأمن الويبأمن الشبكاتاختبار الاختراقأمن واجهات برمجة التطبيقات
GitHubkeraattin/cve-2026-33032

CVE-2026-33032

استدعاء دالة واحد ناقص في تسجيل المسار كان كافياً لتحويل واجهة MCP إلى بوابة تنفيذ أوامر عن بُعد (RCE) غير مصادق عليها.

عرض المستودع
544منذ 5 أشهرلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة

CVE-2026-33032 / MCPwn

CVE CVSS Status Affected License Python

أداة كشف غير تخريبية لثغرة تجاوز المصادقة في واجهة MCP الخاصة بـ nginx-ui، المعروفة علنًا باسم MCPwn. تتيح الاستيلاء غير المصادق عليه عبر طلبي HTTP على أي مثيل nginx-ui يعمل بإصدار ثغري.

جدول المحتويات

  1. حقائق سريعة
  2. نظرة عامة على الثغرة
  3. غوص تقني معمق
  4. استراتيجية الكشف
  5. التثبيت
  6. الاستخدام
  7. مثال على المخرجات
  8. الربط مع CVE-2026-27944
  9. المعالجة
  10. الاستخدام المسؤول
  11. المراجع
  12. الترخيص

حقائق سريعة

الحقلالقيمة
معرّف CVECVE-2026-33032
الاسم المستعارMCPwn
CVSS 3.19.8 / حرج (AV:N / AC:L / PR:N / UI:N / S:U / C:H/I:H/A:H)
CWECWE-306 غياب المصادقة لوظيفة حرجة
المنتج المتأثرnginx-ui (github.com/0xjacky/nginx-ui)
الإصدارات المتأثرةجميع الإصدارات قبل 2.3.4
الإصدار المُصحَّح2.3.4
حالة الاستغلالنشط في البرية (Picus Security, Recorded Future)
التعرض عبر Shodan~2,689 مثيلًا مواجهًا للإنترنت
تاريخ النشر2026-04-15

نظرة عامة على الثغرة

يكشف nginx-ui عن واجهة بروتوكول سياق النموذج (MCP) التي تتيح للمشغّل المصادَق عليه تشغيل أدوات تخريبية مثل تعديل إعدادات nginx، وأوامر إعادة التشغيل، وعمليات النسخ الاحتياطي عبر JSON-RPC.

نقطة النهاية /mcp محمية بوسيط AuthRequired()، بينما نقطة النهاية المقترنة بها /mcp_message، التي تستقبل فعليًا استدعاءات الأدوات، تم نشرها بدون الوسيط. أي عميل يمكنه الوصول إلى الواجهة عبر الشبكة يمكنه:

  1. فتح تدفق أحداث مرسلة من الخادم (SSE) إلى /mcp واستلام sessionID جديد دون تقديم أي بيانات اعتماد.
  2. استخدام ذلك sessionID لاستدعاء أي أداة MCP مسجلة عبر إرسال POST إلى /mcp_message، دون مصادقة أيضًا.

يحصل المهاجم على سيطرة كاملة على عملية nginx: تعديل كتل الخادم لإعادة توجيه حركة المرور، استخراج مفاتيح TLS الخاصة عبر قراءات المسارات، إعادة تحميل nginx أو إيقافه، وزرع أبواب خلفية دائمة.

غوص تقني معمق

السبب الجذري على مستوى الكود

// ثغري (قبل 2.3.4)
r.GET("/mcp",          AuthRequired(), mcpHandler)
r.POST("/mcp_message", mcpMessageHandler)    // وسيط مفقود

// مُصحَّح في 2.3.4
r.GET("/mcp",          AuthRequired(), mcpHandler)
r.POST("/mcp_message", AuthRequired(), mcpMessageHandler)

استدعاء دالة واحد مفقود في تسجيل المسار كان كافيًا لتحويل واجهة MCP إلى بوابة تنفيذ أوامر عن بُعد (RCE) غير مصادق عليها.

مخطط الهجوم من البداية إلى النهاية

  المهاجم                              nginx-ui (<2.3.4)
     |   1) GET /mcp  (بدون مصادقة)          |
     | -------------------------------------->  |
     |   2) event: endpoint data: /mcp_message?sessionID=XYZ
     | <--------------------------------------  |
     |   3) POST /mcp_message?sessionID=XYZ     |
     |      body: JSON-RPC call_tool "nginx_reload" أو
     |             "edit_config {...}"          |
     | -------------------------------------->  |
     |   4) 200 OK; تم تنفيذ الأداة بصلاحيات كاملة
     | <--------------------------------------  |

مصفوفة التأثير

أداة MCPالتأثير على خادم nginx
edit_configإعادة كتابة كتل خادم عشوائية، إدراج upstream تابع للمهاجم
reload_nginxتطبيق إعدادات المهاجم دون إجراء يدوي
stop_nginxرفض الخدمة
read_fileتسريب مفاتيح TLS الخاصة وبيانات الاعتماد من المسارات المثبتة
create_certإعادة إصدار شهادات TLS تحت سيطرة المهاجم
list_backups / downloadسحب نسخة nginx-ui الاحتياطية كاملة بما فيها node_secret والتجزئات

استراتيجية الكشف

يتجنب هذا المستودع عمدًا أي إجراء تخريبي. يستخدم الكاشف طرق MCP للقراءة فقط (tools/list) فقط. المنطق:

> الخطوة 1  بصمة nginx-ui عبر
>         GET /               (عنوان HTML، حزم JS)
>         GET /api/settings   (JSON يشير إلى مفاتيح nginx-ui)
>         استخراج الإصدار عبر الترويسة / تعبير regex في النص
> الخطوة 2  فتح تدفق SSE إلى /mcp
>         تحليل أول sessionID من حدث "endpoint"
> الخطوة 3  POST /mcp_message?sessionID=<id>
>         Body: {"jsonrpc":"2.0","method":"tools/list","params":{}}
>         بدون ترويسة Authorization
> الخطوة 4  ثغري إذا كانت الحالة 200 ويحتوي النص على قائمة أدوات
>         مُصحَّح إذا كانت الحالة 401 / 403 / 404
>         غير حاسم بخلاف ذلك

لماذا هذا آمن

طريقة JSON-RPC الخاصة بـ tools/list للقراءة فقط. إنها تُعدّد الأدوات التي يعرفها خادم MCP دون استدعاء أي منها. يرفض السكربت إرسال POST لأي طريقة أخرى ولا يبني أبدًا حمولات لأدوات تخريبية.

التثبيت

git clone https://github.com/your-org/CVE-2026-33032-detector.git
cd CVE-2026-33032-detector
python3 --version      # 3.9 أو أحدث
# لا حاجة لحزم خارجية.

لمكوّن Nmap NSE، انسخ nginx-ui-mcpwn.nse إلى دليل السكربتات المحلي وحدّث قاعدة بيانات السكربتات:

cp nginx-ui-mcpwn.nse /usr/share/nmap/scripts/
sudo nmap --script-updatedb

الاستخدام

كاشف Python

# هدف واحد
python3 detect_nginx_ui_mcpwn.py --target https://nginx-ui.internal

# فحص جماعي من ملف
python3 detect_nginx_ui_mcpwn.py --targets targets.txt --workers 20

# مخرجات JSON (NDJSON) مناسبة للأنابيب إلى jq
python3 detect_nginx_ui_mcpwn.py --target 10.0.0.5:9000 --json | jq .

مرجع سطر الأوامر:

العلمالغرض
--targetعنوان URL واحد أو host[:port]
--targetsملف أهداف مفصول بأسطر جديدة
--timeoutمهلة HTTP، الافتراضي 10 ثوانٍ
--workersعمليات متزامنة للفحص الجماعي، الافتراضي 10
--verify-tlsفرض التحقق من شهادة TLS (معطّل افتراضيًا)
--jsonإصدار NDJSON، سجل واحد لكل هدف
--no-bannerإخفاء الشعار ASCII

Nmap NSE

nmap -p 80,443,9000 --script nginx-ui-mcpwn 10.0.0.0/24
nmap -p 443 --script nginx-ui-mcpwn --script-args "nginx-ui-mcpwn.timeout=8" host.example.com

مثال على المخرجات

قابل للقراءة البشرية

تنزيل الأداة