آخرین اخبار
همهٔ اخبار
امنیت وب و نرم‌افزار گزارش بحرانیت ۵/۱۰

آسیب‌پذیری Path Traversal در MLflow؛ امکان نوشتن فایل‌های دلخواه بدون احراز هویت

آسیب‌پذیری Path Traversal در MLflow؛ امکان نوشتن فایل‌های دلخواه بدون احراز هویت

آسیب‌پذیری جدیدی با شناسه CVE-2026-53995 در پلتفرم MLflow شناسایی شده است که به مهاجمان اجازه می‌دهد بدون نیاز به احراز هویت (Unauthenticated)، از طریق تکنیک Path Traversal، فایل‌های دلخواه را در سیستم هدف بنویسند.

جزئیات فنی و نحوه حمله

این آسیب‌پذیری در بخش FileStore tracking backend در MLflow وجود دارد. مهاجم می‌تواند با ارسال یک درخواست POST به اندپوینت /api/3.0/mlflow/traces و استفاده از کاراکترهای خاص مانند ../../ در فیلد trace_id، از محدودیت‌های مسیر فایل فراتر رفته و فایل‌های خود را در مکان‌های غیرمنتظره‌ای در سیستم فایل (Filesystem) ذخیره کند.

این عملیات شامل نوشتن فایل‌هایی نظیر trace_info.yaml، request_metadata و فایل‌های مربوط به tags با محتوای کنترل‌شده توسط مهاجم است. دامنه اثرگذاری این حمله محدود به سطح دسترسی (Permissions) کاربرِ اجراکننده فرآیند MLflow است، اما می‌تواند منجر به بازنویسی فایل‌های پیکربندی یا سایر فایل‌های حساس شود.

شرایط آسیب‌پذیری و نسخه‌های تحت تأثیر

نکته بسیار مهم در این آسیب‌پذیری، وابستگی شدید آن به نوع پیکربندی (Configuration) است:

  • نسخه‌های تحت تأثیر: تمامی نسخه‌های MLflow 3.17.1 و قدیمی‌تر.
  • وضعیت پیش‌فرض: در نسخه‌های قبل از 3.7.0، بخش FileStore به صورت پیش‌فرض فعال است و سیستم‌ها بدون نیاز به تغییر تنظیمات، مستقیماً آسیب‌پذیر هستند.
  • نسخه‌های جدیدتر: از نسخه 3.7.0 به بعد، پیش‌فرض به SQLite تغییر یافته است؛ بنابراین در نسخه‌های جدیدتر، سیستم تنها در صورتی آسیب‌پذیر است که مدیر سیستم به صورت دستی FileStore را انتخاب کرده باشد.

راهکارهای مقابله و کاهش ریسک

برای مقابله با این تهدید، اقدامات زیر توصیه می‌شود:

  • به‌روزرسانی: استفاده از آخرین نسخه اصلاح‌شده MLflow به محض انتشار رسمی توسط سازنده.
  • تغییر Backend: مهاجرت از FileStore به یک پایگاه داده مانند SQLite یا سایر دیتابیس‌های استاندارد.
  • محدودسازی دسترسی شبکه: محدود کردن دسترسی به اندپوینت‌های حساس MLflow و اطمینان از اینکه تنها کلاینت‌های مورد اعتماد می‌توانند به سرور متصل شوند.
  • استفاده از WAF/Reverse Proxy: اعمال فیلترهای ورودی برای مسدود کردن مقادیر حاوی کاراکترهای .. یا جداکننده‌های مسیر در trace_id پیش از رسیدن به سرور.
  • اصل حداقل دسترسی (Least Privilege): اجرای سرویس MLflow با یک حساب کاربری محدود شده که دسترسی نوشتن آن تنها به دایرکتوری‌های ضروری محدود باشد.