آسیبپذیری از نوع Path Traversal (CWE-22) در نسخههای تا 2.0.2 از کتابخانه mllm متعلق به UbiquitousLearning شناسایی شده است. این نقص امنیتی به کاربران محلی که دارای سطح دسترسی پایین (Low Privileges) هستند، اجازه میدهد تا از طریق دستکاری آرگومان shard_file در تابع load_model، به فایلهایی خارج از مسیر تعیینشده برای مدلها دسترسی پیدا کنند.
جزئیات فنی و نحوه حمله
این آسیبپذیری در کامپوننت Convertor و در فایل pymllm/mobile/convertor/__init__.py قرار دارد. مهاجم با ارسال یک رشته حاوی کاراکترهای پیمایش دایرکتوری (Directory Traversal) به آرگومان shard_file، میتواند فرآیند حل مسیر (Path Resolution) را فریب داده و به فایلهای حساس در سیستم دسترسی یابد.
- بردار حمله (Attack Vector): محلی (Local) – مهاجم باید از قبل دسترسی به سیستم یا ابزار تبدیل مدل داشته باشد.
- سطح دسترسی مورد نیاز: سطح پایین (Low Privileges).
- تعامل کاربر: عدم نیاز به تعامل کاربر (No User Interaction).
- تأثیر: تأثیر بر محرمانگی، یکپارچگی و در دسترس بودن (C/I/A) در سطح پایین ارزیابی شده است.
وضعیت اکسپلویت و اصلاحیه
در حال حاضر، یک PoC (اثبات مفهوم) عمومی برای این آسیبپذیری وجود دارد، اما صحت عملکرد آن تأیید نشده است. همچنین، هیچ گزارشی مبنی بر بهرهبرداری فعال (Active Exploitation) در محیطهای واقعی یا در لیست CISA KEV مشاهده نشده است. تا لحظه انتشار این گزارش، اصلاحیه (Patch) رسمی از سوی توسعهدهنده منتشر نشده است.
توصیههای امنیتی
با توجه به عدم وجود اصلاحیه رسمی، اقدامات زیر برای کاهش ریسک توصیه میشود:
- محدود کردن دسترسی به ابزار Convertor و تابع
load_modelتنها برای کاربران محلی مورد اعتماد. - اجرای ابزار با رعایت اصل حداقل دسترسی (Least Privilege) در یک محیط ایزوله (Isolated Workspace).
- اعتبارسنجی و استانداردسازی (Canonicalization) تمامی ورودیهای مربوط به
shard_fileقبل از پردازش. - جلوگیری از ارسال مقادیر غیرقابل اعتماد یا ورودیهای کاربر به عنوان آرگومانهای مسیر.