CVE-2026-98924
Təsvir
Linux nüvəsində aşağıdakı zəiflik aradan qaldırılmışdır: fs: evict_inodes() funksiyasında təkrarlanan skanların qarşısının alınması İstifadəçilər fayl sistemindən istifadə edildiyi halda diski çıxardıqdan sonra onu unmount etməyə çalışdıqda, donmuş tapşırıqlar (hung tasks) müşahidə edilmişdir. Cihazın çıxarılması zamanı fs_bdev_mark_dead() funksiyası s_umount kilidini saxlayaraq evict_inodes() funksiyasını çağırır. evict_inodes() yenidən planlaşdırma üçün hər dəfə s_inode_list_lock kilidini buraxdıqda, s_inodes siyahısının başından gəzintini yenidən başladır. Siyahının başında çoxlu sayda istinad verilmiş inode-lar olduqda, bu yenidən başlamalar eyni inode-ları geri qaytarmadan təkrar-təkrar skan edir. Bu, s_umount kilidinin uzun müddət tutulmasına səbəb ola bilər ki, bu da paralel unmount cəhdlərini bloklayır və donmuş tapşırıq hesabatlarını tetikləyir. Artıq I_FREEING olaraq işarələnmiş cari inode-u, s_inode_list_lock yenidən əldə edilənə qədər utilizasiya paketindən kənarda saxlayın. Gəzintini bu inode-dan davam etdirin və onu sonrakı paketdə və ya gəzintinin sonunda utilizasiya edin. i_lock altında sıfır istinad sayı və vəziyyət yoxlamaları, bu gəzintçi elementinə I_FREEING təyin etməklə və onu LRU-dan çıxarmaqla inode-u əldə etməyə imkan verir. Digər bərpaedicilər həmin inode-u ötürür və onun çıxarılmasına görə bu gəzintçi məsul olur. Yalnız evict() onu s_inodes siyahısından silir, buna görə də onu utilizasiya paketindən kənarda saxlamaq, kilid buraxıldıqda onun siyahıda qalmasını təmin edir. Kilidi yenidən əldə etdikdən sonra, mövcud növbəti göstəricisinin oxunması ardıcıl inode-ların paralel silinməsini nəzərə alır. Mövcud inode ömür dövrü qaydaları I_FREEING və ya I_WILL_FREE olaraq işarələnmiş inode-a istinad əldə etməyi qadağan edir. __iget() funksiyası çağıran tərəfdən i_lock kilidinin tutulmasını və istinadın götürülməsinin etibarlı olduğunun müəyyən edilməsini tələb edir. Inode axtarışı və igrab() funksiyaları, sıfırdan istinad əldə edərkən i_lock altında bu bayraqları yoxlayır. ihold() mövcud istinadı tələb edir ki, bu da i_count-u sıfırdan fərqli saxlayacaq və bu gəzintçinin inode-u əldə etməsinin qarşısını alacaqdır. Bu qaydalar artıq iput_final() və inode shrinker-in I_FREEING təyin etdikdən sonra və çıxarma prosesi tamamlanmamışdan əvvəl i_lock kilidini buraxmasına imkan verir. Müvəqqəti __iget() istinadı da inode-u siyahıda saxlayardı, lakin onun buraxılması sonuncu istinadın idarə olunmasını qorumalıdır. Başqa bir istifadəçi istinad əldə edə, lazy timestamp-ləri yeniləyə və pin tutulduğu müddətdə öz istinadını buraxa bilər. Əgər pin sonuncu istinada çevrilsə, onu atomic_dec_and_test() ilə buraxmaq və birbaşa çıxarmaq iput()-un lazytime idarəetməsini yan keçir və həmin vaxt möhürü yeniləmələrini itirə bilər. Pin-in iput() ilə buraxılması həmin idarəetməni qoruyur, lakin çıxarılmanı zəmanət altına almır. fs_bdev_mark_dead() SB_ACTIVE təyin edilmiş halda işləyir, ona görə də iput() inode-u keşdə saxlaya bilər, halbuki evict_inodes() uyğun gələn sıfır istinadlı inode-ları mütləq çıxarmalıdır. iput() geri döndükdə inode artıq azad edilmiş ola bilər, buna görə də gəzintçi ondan çıxarmanı məcburi etmək üçün istifadə edə bilməz. I_FREEING-dən istifadə etmək, əlavə sonuncu istinad keçidini yaratmadan mövcud çıxarma davranışını qoruyub saxlayır. xfstests avto qrupu, əlaqəli olmayan məlum xətalar istisna edilməklə, ext4 və XFS üzrə uğurla tamamlandı. Heç bir yeni problem müşahidə edilmədi və əvvəllər təkrar istehsal olunan donmuş tapşırıq problemi bu yamayla artıq baş vermir.
Necə düzəltmək olar
Mənbələrdə bu zəiflik üçün düzəldilmiş versiya və ya yamaq keçidi yoxdur.
Təsirlənən məhsullar
| Məhsul | Təsirlənən versiyalar | Düzəldildiyi versiya |
|---|---|---|
| microsoft azl3_kernel_6.6.157.1-1 | Aralıq göstərilməyib | — |
| microsoft azl3_kernel_6.6.159.1-1 | Aralıq göstərilməyib | — |
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.