آسیبپذیری MCP SDK آنتروپیک به مهاجمان اجازه ربودن حسابهای کاربری را میدهد
شرکت Cycode یک آسیبپذیری تصاحب حساب با شدت بالا را در SDK پایتون MCP آنتروپیک افشا کرده است. این مشکل نسخههای ۱.۹.۱ تا ۲.۱.۱ را تحت تأثیر قرار میدهد و به فرایند احراز هویت OAuth در این نرمافزار مربوط است.
یک سرور مخرب MCP میتوانست فرایند ورود را دستکاری کند و اطلاعات کاربری را به مهاجم هدایت کند، در حالی که کاربر همچنان صفحه واقعی ورود ارائهدهنده هویت را مشاهده میکرد.
این آسیبپذیری به پروتکل Model Context Protocol آنتروپیک مربوط است؛ یک پروتکل باز که برای اتصال دستیارهای هوش مصنوعی به ابزارها و منابع داده خارجی استفاده میشود. طبق گزارش Cycode، این نقص به مهاجم اجازه میداد کلاینتسکرت، کد مجوز و کلید اثبات PKCE را رهگیری کند و سپس با استفاده از آنها یک توکن دسترسی معتبر به دست آورد و بهعنوان قربانی وارد حساب شود.
این حمله از یک مسیر جایگزین برای کشف تنظیمات در فرایند احراز هویت SDK استفاده میکرد. زمانی که یک سرور در پاسخ به درخواست کشف، کد ۴۰۴ بازمیگرداند، SDK به روش قدیمیتر بازمیگشت و تنظیمات ورود ارائهشده توسط سرور را بدون بررسی تطابق آن با ارائهدهنده هویت مورد انتظار میپذیرفت.
این نقص، یک بررسی امنیتی مهم را که برای تأیید واقعی بودن ارائهدهنده نامبردهشده طراحی شده بود، دور میزد. در نتیجه مهاجم میتوانست نقطه پایانی توکن مورد استفاده کلاینت را کنترل کند، در حالی که کاربر همچنان به صفحه ورود قانونی Google، Okta یا Azure AD هدایت میشد.
در چنین شرایطی، قربانی فرایندی را مشاهده میکرد که کاملاً شبیه یک ورود عادی بود. پس از احراز هویت کاربر، SDK بسته اطلاعاتی ایجادشده را به نقطه پایانی تحت کنترل مهاجم ارسال میکرد، نه به ارائهدهنده واقعی ورود.
نحوه عملکرد
این مشکل سه ارائهدهنده احراز هویت در SDK را تحت تأثیر قرار میداد: OAuthClientProvider، ClientCredentialsOAuthProvider و PrivateKeyJWTOAuthProvider. Cycode این آسیبپذیری را با درجه شدت بالا و امتیاز ۷.۵ ارزیابی کرده است.
این نقص فقط به ورودهای تعاملی محدود نبود. پیکربندیهای ماشینبهماشین که از اعتبارنامههای کلاینت یا احراز هویت مبتنی بر JWT با کلید خصوصی استفاده میکردند نیز ممکن بود در معرض خطر قرار گیرند و این سناریوها به هیچ تعامل کاربر نیاز نداشتند.
پیامدهای این آسیبپذیری میتوانست فراتر از یک حساب به خطر افتاده باشد. اگر کلاینت آسیبدیده دسترسی گستردهای به APIهای داخلی، مخازن داده، سرویسهای ابری یا خطوط استقرار داشت، مهاجم نیز میتوانست همان سطح دسترسی را به دست آورد.
همچنین ممکن بود ابزارهای استاندارد پایش نتوانند این نفوذ را شناسایی کنند، زیرا مهاجم از اعتبارنامههای معتبر در یک مسیر احراز هویت قانونی استفاده میکرد. از دید ارائهدهنده هویت، این ورود میتوانست کاملاً واقعی به نظر برسد.
کاربران تحت تأثیر
کاربرانی در معرض خطر بودند که برنامههای آنها از SDK پایتون MCP آنتروپیک بهعنوان کلاینت HTTP با یکی از ارائهدهندگان آسیبدیده استفاده میکرد، به سرورهای MCP که کاملاً تحت کنترل آنها نبودند متصل میشد و اعتبارنامه ورود به یک ارائهدهنده هویت قانونی را در اختیار داشتند.
نسخههای ۱.۹.۱ تا ۱.۲۹.۱ فاقد بررسی صادرکننده (issuer) و اتصال اعتبارنامهها به ارائهدهنده مربوطه در تمام مسیرهای کشف بودند. نسخههای ۲.۰.۰ تا ۲.۱.۱ این بررسیها را در مسیر کشف جدید داشتند، اما در مسیر جایگزین یا یک مسیر جداگانه تغییر مسیر ۴۰۳ وجود نداشت.
همه استقرارها تحت تأثیر قرار نگرفتند. سرورهای MCP ساختهشده با SDK، کلاینتهای محلی مبتنی بر stdio و کلاینتهایی که توکنها یا هدرهای خود را به سیستم اضافه میکردند، خارج از محدوده این مشکل بودند.
انتشار وصله
یک اصلاحیه برای خط ۲.x در نسخه mcp 2.2.0 و برای خط ۱.x در نسخه mcp 1.30.0 منتشر شده است. نسخههای اصلاحشده پیش از دریافت تنظیمات، ارائهدهنده مورد انتظار ورود را مشخص میکنند، تنظیمات ارائهشده از یک ارائهدهنده متفاوت را رد میکنند و اعتبارنامههای ذخیرهشده را به ارائهدهنده متعلق به آنها متصل میکنند.
Cycode پس از ارتقا، اقدامات اضافی دیگری را نیز توصیه کرده است. از جمله این اقدامات میتوان به مشخص کردن issuer برای اعتبارنامههای از پیش تعریفشده در ارائهدهندگان ماشینبهماشین، پاکسازی ثبتنامهای ذخیرهشده ایجادشده توسط نسخههای قدیمی و چرخش کلیدهای محرمانه کلاینت و لغو توکنها در صورت احتمال قرار گرفتن در معرض سرورهای MCP غیرقابل اعتماد پیش از رفع مشکل اشاره کرد.
Seth Robbins، رئیس و مدیر ارشد درآمد Cycode، گفت این یافته نشاندهنده یک خطر گستردهتر است؛ زیرا شرکتها دسترسی عاملهای هوش مصنوعی و دستیارها به سامانهها و دادههای سازمانی را افزایش میدهند.
Cycode این مشکل را از طریق فرایند امنیتی آنتروپیک گزارش کرد و وصله مربوطه پیش از انتشار عمومی، در قالب افشای هماهنگشده منتشر شده بود.
رابینز گفت: «اثر عملی این موضوع فقط این نیست که کسی بتواند پروفایل من را بخواند. بسته به اینکه کلاینت آسیبدیده به چه منابعی دسترسی دارد، این میتواند یک نقطه نفوذ به هر چیزی باشد که آن کلاینت میتواند به آن دسترسی پیدا کند؛ و مهاجم تا زمانی که کلاینتسکرت تغییر نکند، این دسترسی را حفظ میکند.»

