یک نقص امنیتی در پروژه 0215AndrewFeng ACE-MCP (تا نسخه 4.10.8) شناسایی شده است که به مهاجمان اجازه میدهد از طریق دستکاری پارامترهای ورودی، به فایلهای دلخواه در سیستم میزبان دسترسی پیدا کنند.
جزئیات فنی آسیبپذیری
این مشکل در تابع get_file_snippet در فایل getFileSnippet.ts و در بخش MCP Tool رخ میدهد. آسیبپذیری از نوع Path Traversal است و زمانی اتفاق میافتد که مهاجم بتواند آرگومانهای projectRootPath و filePath را کنترل کند.
در حالت عادی، مکانیزم isPathInsideProjectRoot برای جلوگیری از خروج filePath از محدوده مسیر ریشه طراحی شده است. اما مشکل اینجاست که خودِ projectRootPath به عنوان یک ورودی قابل اعتماد از سمت کلاینت پذیرفته میشود. بنابراین، اگر مهاجم مقدار projectRootPath را به /etc و filePath را به hosts تغییر دهد، مکانیزم حفاظتی با موفقیت عبور کرده و فایل حساس /etc/hosts افشا میشود.
تحلیل سطح دسترسی و تاثیرات
- دسترسی مورد نیاز: مهاجم باید دسترسی محدودی به رابط ابزار (Tool Interface) سرور MCP داشته باشد (Low Privilege).
- تاثیرات: این آسیبپذیری تنها منجر به نشت اطلاعات (Confidentiality Impact) میشود و هیچ تاثیری بر روی دسترسی نوشتن (Write) یا در دسترس بودن سرویس (Availability) ندارد.
- وضعیت اکسپلویت: اکسپلویت این آسیبپذیری به صورت عمومی منتشر شده است و میتواند مورد استفاده قرار گیرد.
گزارش شده است که توسعهدهندگان پروژه با وجود اطلاع از این مشکل، هنوز پاسخی برای رفع آن ارائه ندادهاند.