CVE-2026-99084
Təsvir
Linux nüvəsində aşağıdakı zəiflik aradan qaldırılmışdır: readdir: dəyişməz kataloqda inode kilidi istifadə edilmir iterate_dir() funksiyası kataloqun i_rwsem paylaşım kilidini götürür və onu ->iterate_shared() boyunca saxlayır. Heç vaxt girişi olmayan və heç vaxt silinməyən kataloq üçün bu kilid heç nəyi sabit saxlamır, o yalnız həmin inode-u oxuyan və yazan hər kəsi bir-birinin ardınca sıraya düzür. nullfs instansiyasının kataloqu üçün bu vacibdir. İlkin mount namespace instansiyası hər bir boş mount namespace-nin köküdür və şəxsi instansiya hər bir nüvə axınının (kernel thread) köküdür, beləliklə, ortaq cəhəti olmayan istifadəçilər arasında bir inode paylaşılır. Oxuyucu isə kilidi istədiyi qədər saxlaya bilər: getdents() buferini özünüzün FUSE mount-undakı fayl xəritələnməsi ilə təmin edin, "." və ".." nüsxələrinin xətasına (fault) yol verin və serverin gözləməsinə icazə verin. Onun ardına eksklüziv giriş istəyəni əlavə edin; həmin kataloqdakı mkdir() çağırışı, salt-oxunan mount barədə məlumat verilməzdən əvvəl start_dirop()-dan keçir və bundan sonra həmin kataloqda dcache-də tapılmayan hər bir axtarış, hər bir yaratma və onun üzərindəki hər bir mount server cavab verənə qədər gözləyir. Boş mount namespace-dən istifadə edən bir istifadəçi digərlərinin hamısını ləngidir. Heç vaxt dəyişməyən və heç vaxt silinməyən kataloqun fayl əməliyyatları üçün FOP_IMMUTABLE əlavə edildi və iterate_dir()-in onun üçün kilidi ötürməsinə icazə verildi. Bayraq fayl üçün heç vaxt dəyişmir, kataloqlar FMODE_ATOMIC_POS olduğu üçün ->f_pos f_pos_lock tərəfindən qorunur, belə bir kataloqda IS_DEADDIR təyin edilə bilməz və nə touch_atime(), nə də fsnotify i_rwsem istifadə etmir. Bu bayrağı nullfs kataloqunda təyin edin. libfs-in yer tutucu (placeholder) kataloqlarının da heç vaxt girişi olmur, lakin onların sahibləri onları silirlər, buna görə də onlar kilidi saxlayırlar.
Necə düzəltmək olar
- Linux Linux6d30b399ae28e5166d62484f81ccaefde6fe7996, e08f57a7dcb83818c058e415988c23beb6c5a47f və ya daha yeni versiya
Təsirlənən məhsullar
| Məhsul | Təsirlənən versiyalar | Düzəldildiyi versiya |
|---|---|---|
| Linux Linux | 9d4e752a24f740b31ca827bfab07010e4e7f34b0 ≤ v < 6d30b399ae28e5166d62484f81ccaefde6fe7996, 9d4e752a24f740b31ca827bfab07010e4e7f34b0 ≤ v < e08f57a7dcb83818c058e415988c23beb6c5a47f, 7.1 | 6d30b399ae28e5166d62484f81ccaefde6fe7996, e08f57a7dcb83818c058e415988c23beb6c5a47f |
Versiyanızı yoxlayın
Məhsulu seçin və istifadə etdiyiniz versiyanı yazın; versiyanın təsirlənən aralıqda olub-olmadığını görün.
Attack Surface Management
Domenlərinizə bağlı aktivləri, onlarda işləyən texnologiyaları və məlum zəiflikləri bir siyahıda görün.