
# CVE-2026-23744 के लिए MCPJam Inspector के कमजोर और पैच किए गए बिल्ड की तुलना करने हेतु Docker लैब, जो शैक्षिक सुरक्षा अनुसंधान के लिए नेटवर्क बाइंडिंग अंतर और API एक्सपोज़र प्रदर्शित करता है।
यह रिपॉजिटरी एक छोटा Docker लैब है जो CVE-2026-23744 के लिए MCPJam Inspector के कमजोर बनाम पैच किए गए बिल्ड की तुलना करने के लिए है।
यह सीखने और सार्वजनिक सुरक्षा पोर्टफोलियो बनाने के लिए है: त्वरित सेटअप, स्पष्ट साक्ष्य, और स्क्रीनशॉट।
⚠️ नैतिकता / दायरा: केवल उन सिस्टम पर परीक्षण करें जिनके आप मालिक हैं या जिनके परीक्षण की स्पष्ट अनुमति आपके पास है। यह रिपॉजिटरी स्थानीय पुनरुत्पादन और दस्तावेज़ीकरण के लिए है।
/api/mcp/connect) मौजूद है और कमजोर सेटअप में बिना किसी प्रमाणीकरण चुनौती के प्रतिक्रिया देती है।यह विक्रेता सलाह / सार्वजनिक रिपोर्ट से मेल खाता है:
.
├── docker-compose.yml
├── vuln/
│ └── Dockerfile
├── patched/
│ └── Dockerfile
└── docs/
└── (स्क्रीनशॉट यहाँ रखें)
दोनों कंटेनर बनाएं और चलाएं:
docker compose up -d --build
जांचें कि वे चालू हैं:
docker compose ps
अपेक्षित:
inspector_vuln_142 127.0.0.1:6274 पर प्रकाशितinspector_patched_143 127.0.0.1:6275 पर प्रकाशित (लेकिन यह होस्ट से पहुंच योग्य नहीं होना चाहिए)
एंडपॉइंट मौजूद है और आवश्यक फ़ील्ड अनुपस्थित होने पर सत्यापन त्रुटि के साथ प्रतिक्रिया देता है:
curl -i -X POST http://127.0.0.1:6274/api/mcp/connect \
-H 'Content-Type: application/json' \
-d '{}'
HTTP/1.1 400 और कुछ इस तरह की अपेक्षा करें:
{"success":false,"error":"Failed to parse request body","details":"Unexpected end of JSON input"}
कंटेनरों के अंदर, जांचें कि पोर्ट 6274 पर कौन सा पता सुन रहा है:
# कमजोर
docker exec -it inspector_vuln_142 sh -lc "apk add --no-cache iproute2 >/dev/null 2>&1; ss -lnt | grep 6274"
# पैच किया गया
docker exec -it inspector_patched_143 sh -lc "apk add --no-cache iproute2 >/dev/null 2>&1; ss -lnt | grep 6274"
अपेक्षित परिणाम:
0.0.0.0:6274127.0.0.1:6274
भले ही हम 127.0.0.1:6275 -> कंटेनर:6274 मैप करते हैं, पैच किया गया कंटेनर केवल अपने स्वयं के लूपबैक इंटरफ़ेस पर सुनता है। इसलिए होस्ट से, आपको कनेक्शन बंद / खाली प्रतिक्रिया दिखनी चाहिए।
curl -v http://127.0.0.1:6275/
अपेक्षित: पहुंच योग्य नहीं (यह शमन काम कर रहा है)।
यह साबित करने के लिए कि पैच किया गया UI अभी भी काम करता है, कंटेनर के अंदर से curl करें:
docker exec -it inspector_patched_143 sh -lc "apk add --no-cache curl >/dev/null 2>&1; curl -i http://127.0.0.1:6274/"
अपेक्षित: HTTP/1.1 200।


कमजोर कंटेनर पर स्थानीय परीक्षण के दौरान, मैंने Inspector सर्वर प्रक्रिया से strace जोड़ा और देखा कि यह एक चाइल्ड प्रक्रिया बना रहा है और execve() कॉल कर रहा है।
मैं जानबूझकर यहाँ एक तैयार-से-चलाने योग्य एक्सप्लॉइट पेलोड शामिल नहीं कर रहा हूँ।
क्या कैप्चर करें:
execve("/bin/sh", ["sh","-c", "..."], ...) = 0
execve("/usr/bin/...", [...], ...) = 0
चाइल्ड प्रक्रिया सामान्य रूप से बाहर निकल रही है (स्थिति 0)

यह रिपॉजिटरी रक्षात्मक अनुसंधान, शिक्षा, और नियंत्रित वातावरण में प्रतिलिपि योग्य सत्यापन के लिए है। इसे उन सिस्टम के खिलाफ उपयोग न करें जिनके आप मालिक नहीं हैं या जिनके परीक्षण की अनुमति आपके पास नहीं है।