एक सुरक्षा शोधकर्ता (security researcher) जिसने 24 ओपन-सोर्स MCP (Model-Control-Protocol) सर्वर प्रोजेक्ट्स को स्कैन किया, उन्हें एक गंभीर सैंडबॉक्स कमांड-इंजेक्शन (sandbox command-injection) खामी मिली, जिसका CVSS स्केल पर स्कोर 9.8 है। यह बग AgenticX में है, जो एक मिड-टियर AI-एजेंट फ्रेमवर्क है, और यह हमलावर को उस Docker कंटेनर में मनमाने शेल कमांड (arbitrary shell commands) इंजेक्ट करने की अनुमति देता है जो सर्वर को चलाता है।

MCP सर्वर क्यों महत्वपूर्ण हैं

MCP वह कड़ी है जो स्वायत्त (autonomous) AI एजेंटों को बाहरी टूल्स—जैसे फ़ाइलें, डेटाबेस, ब्राउज़र आदि—से बात करने की अनुमति देती है। डेवलपर्स अपने एप्लिकेशन में एक MCP सर्वर को एम्बेड करते हैं ताकि लैंग्वेज मॉडल को वास्तविक दुनिया के संसाधनों को पढ़ने, लिखने और उन पर कार्य करने की क्षमता मिल सके। प्रोटोकॉल स्वयं हल्का (lightweight) है और व्यापक रूप से अपनाया गया है, लेकिन प्रत्येक प्रोजेक्ट के मेंटेनर्स को आसपास के कोड को सुरक्षित करने की जिम्मेदारी दी जाती है।

Cline या Aider जैसे बड़े पैमाने के MCP इम्प्लीमेंटेशन को पहले से ही नियमित ऑडिट मिलते हैं और उनकी सुरक्षा प्रक्रियाएं परिपक्व (mature) हैं। यहाँ जांचे गए 24 प्रोजेक्ट्स GitHub पर "मिड-टियर" रेंज में आते हैं, जिनके पास 100 से 1,000 के बीच स्टार्स हैं। वे रिपॉजिटरी अक्सर सुरक्षित कोड (hardened code) के बजाय तेजी से फीचर्स देने को प्राथमिकता देती हैं, जिससे उन उपयोगकर्ताओं के लिए एक ब्लाइंड स्पॉट (blind spot) बन जाता है जो यह मान लेते हैं कि कोई भी ओपन-सोर्स MCP सर्वर डिफ़ॉल्ट रूप से सुरक्षित है।

स्कैन

शोधकर्ता ने एक ऐसा स्कैनर बनाया जो पांच क्लासिक वेब-ऐप अटैक पैटर्न की तलाश करता था:

  • कमांड इंजेक्शन (Command injection)
  • पाथ ट्रैवर्सल (Path traversal)
  • सर्वर-साइड रिक्वेस्ट फोर्जरी (SSRF)
  • SQL इंजेक्शन (SQL injection)
  • सैंडबॉक्स एस्केप (Sandbox escape)

5,911 सोर्स फ़ाइलों पर स्कैनर चलाने से शुरुआत में 94 अलर्ट मिले। मैन्युअल ट्राइएज (manual triage) के बाद, केवल एक अलर्ट ही वास्तविक भेद्यता (vulnerability) के रूप में सामने आया।

AgenticX बग के अंदर

AgenticX यूजर द्वारा दिए गए स्ट्रिंग्स को Python f-strings में इंटरपोलेट (interpolate) करके शेल कमांड बनाता है, और फिर परिणाम को सीधे कंटेनर के शेल को पास कर देता है। इसमें फ़ाइल पाथ के वैलिडेशन या कोटिंग (quoting) की कोई प्रक्रिया नहीं होती है। इसलिए, एक एडवर्सरियल प्रॉम्प्ट (adversarial prompt) सेमीकोलन या अन्य शेल मेटाकैरेक्टर इंजेक्ट कर सकता है, जिससे कंटेनर हमलावर द्वारा चुने गए किसी भी कमांड को निष्पादित (execute) कर सकता है।

शोधकर्ता ने कोड को इस प्रकार पैच किया:

  1. लैंग्वेज मॉडल द्वारा दिए गए किसी भी पाथ को सुरक्षित रूप से एस्केप करने के लिए shlex.quote() का उपयोग किया।
  2. कमांड बनाने से पहले पाथ-ट्रैवर्सल पैटर्न (../) के लिए स्पष्ट जांच (explicit checks) जोड़ी।

फिक्स के बाद स्कैनर को दोबारा चलाने पर जोखिम का स्तर नाटकीय रूप से कम हो गया, जिससे पुष्टि हुई कि शमन (mitigation) ने मूल कारण को हल कर दिया है।

किसे फायदा, किसे नुकसान

  • AI डेवलपर्स जो अपने प्रोडक्ट्स में MCP सर्वर को एम्बेड करते हैं, उनके पास अब एक ठोस उदाहरण है कि कैसे सैनिटाइजेशन (sanitization) का एक भी छूटा हुआ स्टेप पूरी सुरक्षा श्रृंखला को तोड़ सकता है। लैंग्वेज मॉडल से आने वाले हर पैरामीटर को अनट्रस्टेड इनपुट (untrusted input) के रूप में मानें, ठीक वैसे ही जैसे आप किसी भी बाहरी API पेलोड को मानते हैं।

कहानी का दूसरा पहलू

शोधकर्ता इस बात पर जोर देते हैं कि MCP प्रोटोकॉल स्वयं सुरक्षित है। यह खामी वायर फॉर्मेट (wire format) में कोई डिजाइन कमजोरी नहीं है, बल्कि एक विशिष्ट इम्प्लीमेंटेशन में कोडिंग की चूक है। बड़े और अच्छी तरह से ऑडिट किए गए प्रोजेक्ट्स ने पहले ही इसी तरह की समस्याओं का समाधान कर लिया है, और ओपन-सोर्स कम्युनिटी AgenticX पैच से सीख सकती है। फिर भी, यह घटना दिखाती है कि कम स्टार काउंट होने के बावजूद "मिड-टियर" प्रोजेक्ट्स में हाई-इम्पैक्ट बग्स हो सकते हैं।

निष्कर्ष

AgenticX में एक अनचेक्ड (unchecked) f-string ने पूरे MCP सर्वर को मनमाने कोड निष्पादन (arbitrary code execution) के लॉन्चपैड में बदल दिया। यह घटना साबित करती है कि AI-एजेंट इकोसिस्टम की सुरक्षा प्रोटोकॉल पर कम और अनुशासित कार्यान्वयन (disciplined implementation) पर अधिक निर्भर करती है। डेवलपर्स को LLM-जेनरेटेड हर पैरामीटर को शत्रुतापूर्ण (hostile) मानना चाहिए, प्लेटफॉर्म्स को रनटाइम सुरक्षा उपायों (runtime safeguards) को लागू करना चाहिए, और सुरक्षा उपकरणों को AI एजेंटों द्वारा बनाई जाने वाली अनूठी ट्रस्ट चेन (trust chains) को समझने के लिए विकसित होने की आवश्यकता है।

स्रोत: dev.to/easterndev/i-scanned-24-mcp-server-projects-and-found-a-real-sandbox-command-injection-cvss-98-4k9h