خلاصه
پژوهش JFrog یک آسیبپذیری «ربودن پیام» در پروتکل MCP را کشف کرده که به مهاجم اجازه میدهد جلسه کاربر را تصاحب و پاسخهای جعلی به هوش مصنوعی تزریق کند؛ این تهدید زنجیرهی تأمین نرمافزار را نشانه میرود.
مقدمه
هوش مصنوعی برای بهتر شدن به دادههای زنده نیاز دارد؛ پروتکل MCP این اتصال را ایجاد میکند، اما همان رابط اگر امن نباشد بهترین ابزار را به تهدیدی برای کدنویسان تبدیل میکند.
چرا حمله به MCP خطرناک است؟
الگوهای یادگیری فقط اطلاعات آموزشی را میشناسند؛ MCP قرار است با دادههای لحظهای آنها را بهروز کند. اگر این کانال ایمن نباشد، مهاجم میتواند:
- توصیهی بد جایگزین کتابخانهی اصلی کند
- کد مخرب وارد پروژه شود
- دستورات دلخواه اجرا کند
نمونهی حمله
برنامهنویس درخواست «بهترین کتابخانهی پردازش تصویر پایتون» میدهد؛ در سیستم آسیبپذیر oatpp-mcp مهاجم session-id پیشبینیپذیر را میدزدد و بهجای پاسخ امن «Pillow»، بستهی مخرب theBestImageProcessingPackage را معرفی میکند.
مکانیزم آسیبپذیری CVE-2025-6515
نقص در شناسهی جلسه
سرور بهجای تولید تصادفی، آدرس حافظهی شیء را بهعنوان session-id برمیگرداند؛ این آدرسها معمولاً بازیافت میشوند و مهاجم با ساخت و بستن سریع جلسهها شناسههای آینده را حدس میزند.
سوءاستفاده از SSE
اتصال HTTP SSE بدون احراز هویت اضافی انجام میشود؛ مهاجم پس از دانستن session-id پیام خود را به همان شناسه میفرستد و سرور آن را متعلق به کاربر واقعی میپندارد.
پیامدها
- تلقیه کد در مخزن سازمانی
- سرقت توکنها یا اسرار کد
- خدشهدار شدن اعتماد تیمها به پیشنهادهای هوش مصنوعی
راهکارهای دفاعی
مدیریت جلسهی ایمن
- شناسهی جلسه با طول مناسب و الگوریتم تصادفی رمزنگاریشده تولید شود
- مهلت انقضا برای هر session-id تعریف شود
- پس از خروج یا بیکاری طولانی جلسه بسته شود
سختگیری سمت کاربر
- کلاینت فقط eventهایی با شناسه و نوع مورد انتظار را بپذیرد
- شناسهی رویداد نیز تصادفی و یکتا باشد تا حملهی اسپری بیثمر بماند
رویکرد صفراعتماد
تمام لایههای بین مدل و داده باید احراز هویت، مجوزدهی و لاگگیری داشته باشند؛ همانگونه که برای اپلیکیشنهای وب انجام میشود.
نتیجهگیری
آسیبپذیری MCP نشان میدهد حملات قدیمی مانند ربودن جلسه حالا وارد اکوسیستم هوش مصنوعی شدهاند؛ رعایت اصول اولیهی امنیت وب در طراحی پروتکلهای AI از بروز فاجعه در زنجیرهی تأمین جلوگیری میکند.
