CVE-2026-98924
Açıklama
Linux kernel'de aşağıdaki güvenlik açığı giderilmiştir: fs: evict_inodes() fonksiyonundaki tekrarlanan taramaların önlenmesi Kullanıcıların, hala kullanımdayken diski çıkarılmış bir dosya sistemini ayırmaya (unmount) çalıştıkları durumlarda askıda kalan görevler gözlemlenmiştir. Cihaz çıkarma işlemi sırasında, fs_bdev_mark_dead() fonksiyonu s_umount kilidini tutarken evict_inodes() fonksiyonunu çağırır. evict_inodes(), yeniden zamanlama yapmak için s_inode_list_lock kilidini her bıraktığında, yürütmeyi s_inodes başından yeniden başlatır. Listenin başında referans verilen çok sayıda inode olduğunda, bu yeniden başlatmalar aynı inode'ları geri kazanmadan tekrar tekrar tarar. Bu durum, s_umount kilidinin uzun süre tutulmasına neden olarak eşzamanlı umount denemelerini engelleyebilir ve askıda kalan görev raporlarını tetikleyebilir. Zaten I_FREEING olarak işaretlenmiş olan mevcut inode, s_inode_list_lock yeniden alınana kadar imha grubunun dışında tutulur. Yürütmeye bu inode üzerinden devam edilir ve inode daha sonraki bir grupta veya yürütmenin sonunda imha edilir. i_lock altındaki sıfır referans sayacı ve durum kontrolleri, bu yürütücünün I_FREEING bayrağını ayarlayarak ve inode'u LRU'dan kaldırarak inode üzerinde hak iddia etmesine izin verir. Diğer geri kazanım işlemleri bu inode'u atlar ve tahliye sorumluluğunu bu yürütücüye bırakır. Sadece evict() fonksiyonu onu s_inodes listesinden kaldırır; dolayısıyla imha grubunun dışında tutmak, kilit bırakıldığında listenin üzerinde kalmasını sağlar. Kilit yeniden alındıktan sonra, güncel next işaretçisinin okunması, takip eden inode'ların eşzamanlı olarak kaldırılmasını hesaba katar. Mevcut inode yaşam süresi kuralları, I_FREEING veya I_WILL_FREE olarak işaretlenmiş bir inode için referans alınmasını yasaklar. __iget(), çağıranın i_lock kilidini tutmasını ve referans almanın geçerli olduğunu belirlemesini gerektirir. Inode araması ve igrab(), sıfırdan referans alırken i_lock altında bu bayrakları kontrol eder. ihold() ise mevcut bir referans gerektirir; bu da i_count değerini sıfırdan farklı tutarak bu yürütücünün inode üzerinde hak iddia etmesini engeller. Bu kurallar halihazırda iput_final() ve inode daraltıcısının (shrinker), I_FREEING bayrağını ayarladıktan sonra ve tahliye tamamlanmadan önce i_lock kilidini serbest bırakmasına izin vermektedir. Geçici bir __iget() referansı da inode'u listede tutacaktır ancak bunun serbest bırakılması son referans yönetimini korumalıdır. Başka bir kullanıcı referans alabilir, gecikmeli zaman damgalarını (lazy timestamps) güncelleyebilir ve sabitleme (pin) tutulurken referansını bırakabilir. Eğer sabitleme son referans haline gelirse, atomic_dec_and_test() ile serbest bırakılması ve doğrudan tahliye edilmesi, iput()'nun lazytime yönetimini devre dışı bırakır ve bu zaman damgası güncellemelerinin kaybına yol açabilir. Sabitlemenin iput() ile serbest bırakılması bu yönetimi korur ancak tahliyeyi garanti etmez. fs_bdev_mark_dead() fonksiyonu SB_ACTIVE ayarlanmış şekilde çalışır, bu nedenle iput() inode'u önbellekte tutabilir; oysa evict_inodes() uygun olan sıfır referanslı inode'ları tahliye etmelidir. Ayrıca iput() döndüğünde inode zaten serbest bırakılmış olabilir, bu durumda yürütücü onu zorla tahliye etmek için kullanamaz. I_FREEING kullanımı, ek bir son referans geçişi getirmeden mevcut tahliye davranışını korur. Bilinen ilgisiz hatalar hariç tutulduğunda, xfstests otomatik grubu ext4 ve XFS üzerinde başarıyla tamamlanmıştır. Yeni herhangi bir sorun gözlemlenmemiş ve daha önce yeniden üretilebilen askıda kalan görev sorunu bu yama ile birlikte ortadan kalkmıştır.
Nasıl düzeltilir
Kaynaklarda bu zafiyet için düzeltilmiş sürüm ya da yama bağlantısı yok.
Etkilenen ürünler
| Ürün | Etkilenen sürümler | Düzeltildiği sürüm |
|---|---|---|
| microsoft azl3_kernel_6.6.157.1-1 | Aralık belirtilmemiş | — |
| microsoft azl3_kernel_6.6.159.1-1 | Aralık belirtilmemiş | — |
Sürümünüzü kontrol edin
Ürünü seçin ve kullandığınız sürümü yazın; sürümün etkilenen aralıkta olup olmadığını görün.
Attack Surface Management
Alan adlarınıza bağlı varlıkları, bu varlıklarda çalışan teknolojileri ve bilinen zafiyetleri tek listede görün.