یک آسیبپذیری بحرانی از نوع تزریق کد (Code Injection) در نرمافزار AUTOMATIC1111 Stable Diffusion WebUI (نسخههای تا ۱.۱۰.۱) شناسایی شده است. این نقص امنیتی به مهاجمان اجازه میدهد تا از طریق فایلهای پیکربندی YAML که همراه با مدلهای هوش مصنوعی منتشر میشوند، کد دلخواه خود را در سیستم قربانی اجرا کنند.
جزئیات فنی و مکانیزم حمله
این آسیبپذیری در تابع get_obj_from_str در فایل modules/sd_models.py قرار دارد. مهاجم با ایجاد یک فایل پیکربندی YAML مخرب و تنظیم آرگومان target روی یک کلاس یا تابع دلخواه در پایتون، میتواند فرآیند بارگذاری مدل را به یک حمله Remote Code Execution (RCE) تبدیل کند. زمانی که کاربر یک مدل غیرقابل اعتماد را از سایتهای اشتراکگذاری مدل بارگذاری میکند، این تابع کلاس مخرب را فراخوانی و اجرا میکند.
تحلیل ریسک و تضاد در امتیازدهی
شایان ذکر است که امتیاز CVSS 4.0 ارائه شده توسط برخی منابع (۲.۱ – Low) با ماهیت واقعی این آسیبپذیری در تضاد است. اگرچه حمله مستلزم تعامل کاربر (User Interaction) برای بارگذاری مدل است، اما از آنجایی که منجر به اجرای کامل کد (Arbitrary Code Execution) بر روی میزبان میشود، سطح تاثیر (Impact) باید High در نظر گرفته شود. این حمله بیشتر از نوع حملات زنجیره تأمین (Supply Chain) و مهندسی اجتماعی (Social Engineering) محسلف میشود.
اقدامات پیشنهادی و مقابله
- عدم بارگذاری مدلهای ناشناس: از بارگذاری فایلهای
.ckpt،.safetensorsیا فایلهای پیکربندی YAML از منابع غیرقابل اعتماد خودداری کنید. - بررسی فایلهای پیکربندی: پیش از بارگذاری هر مدلی، فیلد
targetرا در فایل YAML مربوطه بررسی کنید. - ایزولهسازی محیط اجرا: نرمافزار را در یک کانتینر (Container) یا ماشین مجازی (VM) با سطح دسترسی محدود و بدون دسترسی به فایلهای حساس سیستم میزبان اجرا کنید.
- محدودسازی دسترسی شبکه: خروجی شبکه (Egress) محیط اجرای WebUI را محدود کنید تا در صورت سرایت، ارتباط با سرور مهاجم قطع شود.
در حال حاضر هیچ وصله امنیتی (Patch) رسمی برای این آسیبپذیری منتشر نشده است و کاربران باید تا زمان ارائه اصلاحیه توسط توسعهدهنده، از پروتکلهای حفاظتی فوق استفاده کنند.