نقص CIFSwitch در لینوکس؛ دسترسی root روی چند توزیع
خلاصهٔ کاملتر
یه آسیبپذیریِ تازهکشفشده برای افزایش دسترسیِ محلی به اسم «CIFSwitch» در هستهی لینوکس میتونه به مهاجم اجازه بده توصیف کلیدهای احراز هویت CIFS رو جعل کنه، از مکانیزم درخواست کلیدِ هسته سوءاستفاده کنه و به دسترسی root برسه. این مشکل چند توزیع لینوکس رو که ترکیب آسیبپذیری از CIFS هسته و بستهی cifs-utils (نسخهی ۶.۱۴ به بالا، هرچند بعضی نسخههای قدیمیتر هم) دارن، تحتتأثیر میذاره. CIFS یه پروتکل شبکهست که دسترسی به فایل و پوشه و دستگاه روی شبکهی محلی رو فراهم میکنه.
این نقص رو Asim Manizada، مهندس امنیت SpaceX، کشف و نامگذاری کرده. ماجرا اینه: وقتی یه اشتراک شبکهی CIFS از Kerberos برای احراز هویت استفاده میکنه، هسته از یه برنامهی کمکی در فضای کاربر میخواد احراز هویت رو انجام بده و ابزار cifs.upcall بهعنوان root این کار رو میکنه. مشکل اینه که زیرسیستم CIFS هسته بررسی نمیکنه که درخواست کلید cifs.spnego واقعاً از کلاینت CIFS هسته اومده باشه. در نتیجه یه کاربر بدون دسترسی میتونه یه درخواست جعلی بسازه و جریان احراز هویت رو راه بندازه.
از اونجا، کمکیِ root یعنی cifs.upcall به فیلدهای تحتکنترل مهاجم اعتماد میکنه (چون فکر میکنه هسته اونها رو ساخته). مهاجم با سوءاستفاده از این فیلدها یه تعویض namespace رو مجبور میکنه و قبل از اینکه دسترسیها پایین بیان، یه جستجوی Name Service Switch (NSS) رو تریگر میکنه؛ اینطوری میتونه یه ماژول NSS مخرب رو بارگذاری و کد رو با دسترسی root اجرا کنه. نکتهی جالب اینه که این باگ ۱۹ سال پیش در ۲۰۰۷ وارد شده.
Manizada میگه این نقص «غیرجهانی»ه و اکسپلویتش به چند عامل بستگی داره: نسخهی آسیبپذیر هسته و cifs-utils، در دسترس بودن user namespaceها و اینکه سیاستهای SELinux/AppArmor جلوش رو نگیرن. توزیعهایی که با پیکربندی پیشفرض آسیبپذیرن شامل Linux Mint، CentOS Stream 9، Rocky Linux 9، AlmaLinux 9، Kali Linux و SLES 15 SP7 هستن، در حالی که نسخههایی مثل Ubuntu 26.04 و Fedora 40-44 با تنظیمات پیشفرض جلوی اکسپلویت رو میگیرن. این نقص با یه پچ هسته که مبدأ درخواستهای cifs.spnego رو اعتبارسنجی میکنه برطرف شده، ولی نسخهی دقیق هستهای که این پچ رو داره از توزیعی به توزیع دیگه فرق میکنه. تا اون موقع توصیه شده ماژول CIFS اگه استفاده نمیشه غیرفعال یا blacklist بشه، بستهی cifs-utils اگه لازم نیست حذف بشه و user namespaceهای بدوندسترسی غیرفعال بشن. یه PoC هم منتشر شده.
نکات کلیدی:
- نقص CIFSwitch در زیرسیستم CIFS هستهی لینوکس امکان رسیدن به دسترسی root رو میده
- ریشه: هسته بررسی نمیکنه درخواست کلید cifs.spnego از کلاینت CIFS هسته اومده یا نه
- این باگ ۱۹ سال پیش (۲۰۰۷) وارد شده و چند توزیع مثل Mint، Rocky 9 و Kali رو درگیر میکنه
- پچ هسته منتشر شده؛ توصیه: غیرفعالکردن ماژول CIFS، حذف cifs-utils و غیرفعالکردن user namespaceها




