کشف آسیبپذیری بحرانی در پلتفرم mlflow
MLflow یک پلتفرم متنباز جهت مدیریت چرخه عمر یادگیری ماشین، از جمله آزمایش، تکرارپذیری و استقرار میباشد. آسیبپذیری با شناسهی CVE-2024-3573 و شدت بحرانی و امتیاز CVSS 9.8 حاکی از نقص امنیتی پلتفرم mlflow در برابر Local File Inclusion (LFI) به دلیل تجزیهی نامناسب URIها میباشد. این آسیبپذیری، دور زدن پروتکلهای امنیتی و خواندن از فایلهای مختلف سیستم را برای مهاجمان ممکن میسازد. این مسئله از عدم مدیریت صحیح URIها در تابع 'is_local_uri' ناشی شده و منجر به طبقهبندی اشتباه URIها تحت عنوان غیر محلی میشود. مهاجمان میتوانند با ایجاد کدهای مخرب با پارامترهای «منبع»(source) که مختص به این هدف ساخته شده باشند، از این نقص بهرهبرداری کرده و فایلهای حساس را در حداقل دو سطح دایرکتوری از root و سرور بخوانند.
شکل 1: پارامتر منبع (source) در کد بالا نمایش داده میشود.
مهاجم میتواند از این آسیبپذیری برای خواندن هر فایلی در سرور قربانی بهرهبرداری کند. این فایلها میتوانند شامل کلیدهای SSH، اطلاعات محصولات، پیکربندی داخلی، فایلهای حساس و ... باشند.
محصولات تحت تأثیر
از این نقص میتوان برای خواندن هر فایلی در سیستم استفاده کرد. بسته به پیکربندی سرور، این آسیبپذیری میتواند آنها را در سطوح مختلفی تحت تاثیر قرار دهد.
توصیههای امنیتی
ابتدا در تابع is_local_uri متغیر scheme را بررسی کنید:
شکل 2
در تابع is_file_uri حالت «خالی/ “”» را نیز برای متغیر scheme در نظر بگیرید:
شکل 3
منابع خبر:
[1] https://nvd.nist.gov/vuln/detail/CVE-2024-3573
[2] https://huntr.com/bounties/8ea058a7-4ef8-4baf-9198-bc0147fc543c