ایک سیکیورٹی محقق نے 24 اوپن سورس MCP (Model-Control-Protocol) سرور پروجیکٹس کو اسکین کیا جس کے نتیجے میں ایک سنگین 'سینڈ باکس کمانڈ انجیکشن' (sandbox command-injection) کی خامی سامنے آئی، جس کا CVSS اسکیل پر اسکور 9.8 ہے۔ یہ بگ AgenticX میں پایا گیا ہے، جو کہ ایک مڈ-ٹیر (mid-tier) AI-agent فریم ورک ہے، اور یہ حملہ آور کو اس Docker کنٹینر میں اپنی مرضی کے شیل کمانڈز (shell commands) داخل کرنے کی اجازت دیتا ہے جو سرور کو چلاتا ہے۔

MCP سرورز کیوں اہم ہیں

MCP وہ پل ہے جو خود مختار AI ایجنٹس کو بیرونی ٹولز—جیسے فائلز، ڈیٹا بیسز، براؤزرز اور اسی طرح کے دیگر ذرائع—کے ساتھ بات چیت کرنے کے قابل بناتا ہے۔ ڈویلپرز اپنی ایپلی کیشنز میں ایک MCP سرور شامل کرتے ہیں تاکہ لینگویج ماڈل کو حقیقی دنیا کے وسائل کو پڑھنے، لکھنے اور ان پر عمل کرنے کی صلاحیت مل سکے۔ یہ پروٹوکول بذاتِ خود ہلکا پھلکا (lightweight) ہے اور اسے بڑے پیمانے پر اپنایا گیا ہے، لیکن ہر پروجیکٹ کے برقرار رکھنے والوں (maintainers) کی ذمہ داری ہے کہ وہ اس کے گرد موجود کوڈ کو محفوظ بنائیں۔

بڑے پیمانے پر استعمال ہونے والے MCP امپلیمنٹیشنز جیسے کہ Cline یا Aider کو پہلے سے ہی باقاعدگی سے آڈٹ کیا جاتا ہے اور ان کے پاس پختہ سیکیورٹی کے عمل موجود ہیں۔ یہاں جن 24 پروجیکٹس کا جائزہ لیا گیا ہے وہ GitHub پر "مڈ-ٹیر" (mid-tier) کی حد میں آتے ہیں، جن کے اسٹارز کی تعداد 100 سے 1,000 کے درمیان ہے۔ یہ ریپوزٹریز اکثر کوڈ کو مضبوط بنانے کے بجائے تیزی سے فیچرز فراہم کرنے کو ترجیح دیتی ہیں، جس سے ان صارفین کے لیے ایک خطرہ پیدا ہو جاتا ہے جو یہ فرض کر لیتے ہیں کہ کوئی بھی اوپن سورس MCP سرور ڈیفالٹ کے طور پر محفوظ ہے۔

اسکیننگ

محقق نے ایک ایسا اسکینر بنایا جو ویب ایپلی کیشن کے پانچ کلاسک حملوں کے پیٹرنز تلاش کرتا ہے:

  • Command injection
  • Path traversal
  • Server-Side Request Forgery (SSRF)
  • SQL injection
  • Sandbox escape

5,911 سورس فائلوں پر اسکینر چلانے سے ابتدائی طور پر 94 الرٹس سامنے آئے۔ دستی جانچ پڑتال (manual triage) کے بعد، صرف ایک الرٹ ہی حقیقی کمزوری (vulnerability) ثابت ہوا۔

AgenticX بگ کی تفصیلات

AgenticX صارف کی فراہم کردہ اسٹرنگز کو Python f-strings میں شامل (interpolate) کر کے شیل کمانڈز بناتا ہے، اور پھر اس کے نتیجے کو براہ راست کنٹینر کے شیل کو بھیج دیتا ہے۔ فائل پاتھز کی کوئی تصدیق (validation) یا کوٹنگ (quoting) نہیں کی جاتی۔ اس لیے ایک مخالفانہ پرامپٹ (adversarial prompt) کے ذریعے سیمیکولن (semicolon) یا دیگر شیل میٹا کریکٹرز شامل کیے جا سکتے ہیں، جس سے کنٹینر حملہ آور کی مرضی کی کوئی بھی کمانڈ چلا سکتا ہے۔

محقق نے درج ذیل طریقوں سے کوڈ کو درست (patch) کیا:

  1. لینگویج ماڈل کی طرف سے فراہم کردہ کسی بھی پاتھ کو محفوظ طریقے سے ایسکیپ (escape) کرنے کے لیے shlex.quote() کا استعمال کیا۔
  2. کمانڈ بنانے سے پہلے پاتھ ٹریورسل پیٹرنز (../) کے لیے واضح چیکس شامل کیے۔

اصلاح کے بعد اسکینر کو دوبارہ چلانے سے خطرے کی سطح میں نمایاں کمی دیکھی گئی، جس سے تصدیق ہوئی کہ اس حل نے اصل مسئلے کو ختم کر دیا ہے۔

فائدہ کس کا، نقصان کس کا

  • AI ڈویلپرز جو اپنی مصنوعات میں MCP سرور شامل کرتے ہیں، اب ان کے پاس ایک ٹھوس مثال موجود ہے کہ کس طرح صفائی (sanitization) کا ایک چھوٹا سا مرحلہ پوری سیکیورٹی چین کو تباہ کر سکتا ہے۔ لینگویج ماڈل سے آنے والے ہر پیرامیٹر کو غیر قابلِ اعتماد ان پٹ (untrusted input) سمجھیں، بالکل اسی طرح جیسے آپ کسی بھی بیرونی API پے لوڈ (payload) کو سمجھتے ہیں۔

کہانی کا دوسرا رخ

محقق اس بات پر زور دیتا ہے کہ MCP پروٹوکول بذاتِ خود درست ہے۔ یہ خامی وائر فارمیٹ (wire format) میں ڈیزائن کی کمزوری نہیں ہے بلکہ ایک مخصوص امپلیمنٹیشن میں کوڈنگ کی غلطی ہے۔ بڑے اور باقاعدگی سے آڈٹ کیے جانے والے پروجیکٹس پہلے ہی اس طرح کے مسائل حل کر چکے ہیں، اور اوپن سورس کمیونٹی AgenticX پیچ سے سیکھ سکتی ہے۔ اس کے باوجود، یہ واقعہ ظاہر کرتا ہے کہ "مڈ-ٹیر" پروجیکٹس کم اسٹارز کے باوجود بڑے اثرات والے بگ کا شکار ہو سکتے ہیں۔

خلاصہ

AgenticX میں ایک غیر چیک شدہ f-string نے پورے MCP سرور کو اپنی مرضی کا کوڈ چلانے (arbitrary code execution) کے لیے ایک لانچ پیڈ میں بدل دیا۔ یہ واقعہ ثابت کرتا ہے کہ AI-agent ایکو سسٹم کی سیکیورٹی کا انحصار پروٹوکول سے کم اور نظم و ضبط کے ساتھ کی گئی امپلیمنٹیشن پر زیادہ ہے۔ ڈویلپرز کو LLM سے تیار کردہ ہر پیرامیٹر کو جارحانہ (hostile) سمجھنا چاہیے، پلیٹ فارمز کو رن ٹائم حفاظتی اقدامات (runtime safeguards) نافذ کرنے چاہئیں، اور سیکیورٹی ٹولز کو ان منفرد ٹرسٹ چینز کو سمجھنے کے لیے تیار ہونا چاہیے جو AI ایجنٹس تخلیق کرتے ہیں۔

ماخذ: dev.to/easterndev/i-scanned-24-mcp-server-projects-and-found-a-real-sandbox-command-injection-cvss-98-4k9h