یک آسیبپذیری امنیتی در پروژه SGLang (نسخههای تا 0.5.21) شناسایی شده است که منجر به افشای اطلاعات حساس مدیریتی میشود. این نقص امنیتی در بخش HTTP Endpoint و بهطور مشخص در تابع server_info در فایل python/sglang/srt/entrypoints/http_server.py رخ میدهد.
جزئیات فنی آسیبپذیری
در این نقص امنیتی، یک کاربر بدون نیاز به احراز هویت (Unauthenticated) میتواند با ارسال یک درخواست GET به مسیر /server_info یا از طریق مسیر gRPC GetServerInfo، دسترسی کامل به کلاس دادههای ServerArgs داشته باشد. این امر منجر به افشای مقادیر زیر به صورت متن ساده (Cleartext) میشود:
- api_key: کلید دسترسی به API
- admin_api_key: کلید دسترسی مدیر
- ssl_keyfile_password: رمز عبور فایل کلید SSL
تحلیل ریسک و تاثیرات
این آسیبپذیری از نوع Cleartext Transmission of Sensitive Information (CWE-319) است. با توجه به اینکه هیچ سطح دسترسی یا تعاملی از سوی کاربر مورد نیاز نیست، یک مهاجم میتواند از راه دور و با دسترسی به شبکه، اعتبارنامههای اصلی (Master Credentials) سرویس را استخراج کند. اگرچه این مورد تاثیر مستقیمی بر یکپارچگی (Integrity) یا در دسترس بودن (Availability) سیستم ندارد، اما افشای کلیدهای مدیریتی میتواند منجر به دسترسیهای غیرمجاز گسترده در مراحل بعدی حمله شود.
در حال حاضر کد اکسپلویت (Exploit) این آسیبپذیری به صورت عمومی منتشر شده است و یک Pull Request برای رفع این مشکل در انتظار تایید قرار دارد.