CVE-2026-89647

Yüksek

Açıklama

Linux çekirdeğinde aşağıdaki güvenlik açığı giderilmiştir: ceph: ilerleme sağlanamadığında ceph_trim_dentries() işlemini tekrarlamayın ceph_cap_reclaim_work(), bir kira taraması `nr_to_scan` bütçesini tükettiğinde gerçekleşen ve ceph_trim_dentries() fonksiyonunun -EAGAIN döndürdüğü sürece kendisini yeniden kuyruğa ekler. Bu durum, geri alınacak hiçbir şey olmadığında herhangi bir ilerleme kaydetmeden CPU tüketen yoğun bir döngü oluşturur: kapak baskısı yokken (`count==0`) ve taranan her kira hala geçerliyken, her geçiş tam tarama bütçesini sıfıra indirir ve `-EAGAIN` döndürür, ardından hemen tekrar kuyruğa eklenir. Dizin kira taraması bu durumu daha da kötüleştirmiştir. `expire_dir_lease` değeri `false` olduğunda (yani dizin kiralarını geri alma niyetimiz olmadığında), __dir_lease_check() her geçerli kira için `TOUCH` döndürüyordu. `TOUCH`, dentry'yi listenin sonuna taşır ve __dentry_dir_lease_touch() aracılığıyla `di->time` değerini sıfırlar; böylece N adet geçerli kira üzerindeki bir tarama anlamsızca listeyi yeniden yazar, zaman damgalarını günceller (onların zaman aşımına uğramasını engeller) ve her zaman `nr_to_scan` bütçesini tüketerek `-EAGAIN` ile yeniden kuyruğa eklemeyi garanti eder. Bu sorun üç adımda düzeltilmiştir: - `expire_dir_lease` değeri `false` olduğunda `TOUCH` yerine `KEEP` döndürün. Kirayı geri almayacaksak, listeyi karıştırmak ve zaman damgasını sıfırlamak yerine onu olduğu yerde bırakın; böylece tarama doğal olarak sona erer (veya ilk yeni kirada `STOP` ile durur). - İlk (dentry-kira) taramasından yalnızca gerçekten bir şeyler serbest bırakıldığında `-EAGAIN` döndürün. Hiçbir şeyi serbest bırakmayan tam bir grup, aynı listenin hemen yeniden denenmesinin beyhude olduğu anlamına gelir; bunun yerine dizin kira taramasına geçin. - Her iki taramadan sonra, hiçbir şey serbest bırakılmadığında ve kapak baskısı olmadığında (`count==0`), başarıyla (0) çıkış yapın. Kapak sınırını aşmadığımızda ve ilerleme kaydedilmediğinde yeniden denemeye devam etmek için hiçbir neden yoktur. Gerçek kapak baskısı altında (`count>0`), geri alma yolu değişmemiştir ve hala `-EAGAIN` üzerinden yeniden denemeler yapar. Bu yama olmadan, web sunucularımızda saniyede 500 ceph_trim_dentries() çağrısı gözlemlenmiştir. Bu durum `/proc/lock_stat` dosyasında belirgindir (5 dakikalık kayıt): class name con-bounces contentions waittime-min waittime-max waittime-total waittime-avg acq-bounces acquisitions holdtime-min holdtime-max holdtime-total holdtime-avg &mdsc->dentry_list_lock: 126180 128218 0.04 8063.44 15986965.20 124.69 1573354 5296812 0.04 8291.28 74164526.48 14.00 ----------------------- &mdsc->dentry_list_lock 111736 [<000000007b11e319>] __ceph_dentry_dir_lease_touch+0x7c/0xa8 &mdsc->dentry_list_lock 2631 [<0000000050597999>] __dentry_leases_walk+0x64/0x2c8 &mdsc->dentry_list_lock 3878 [<00000000c0022f62>] __ceph_dentry_lease_touch+0x5c/0xa8 &mdsc->dentry_list_lock 9973 [<000000002f27cb6f>] __dentry_lease_unlist+0x50/0xa0 ----------------------- &mdsc->dentry_list_lock 123621 [<0000000050597999>] __dentry_leases_walk+0x64/0x2c8 &mdsc->dentry_list_lock 1822 [<000000007b11e319>] __ceph_dentry_dir_lease_touch+0x7c/0xa8 &mdsc->dentry_list_lock 2720 [<000000002f27cb6f>] __dentry_lease_unlist+0x50/0xa0 &mdsc->dentry_list_lock 55 [<00000000c0022f62>] __ceph_dentry_lease_touch+0x5c/0xa8 Bu yama ile: class name con-bounces contentions waittime-min waittime-max waittime-total waittime-avg acq-bounces acquisitions holdtime-min holdtime-max holdtime-total holdtime-avg &mdsc->dentry_list_lock: 1203 1215 0.16 408.88 33082.88 27.23 4320501 7357389 0.04 500.64 1961578.00 0.27 ----------------------- &mdsc->dentry_list_lock 1029 [<000000003c9aea8a>] __ceph_dentry_dir_lease_touch+0x7c/0xa8 &mdsc->dentry_list_lock 1 ---kesildi---

ÖnemYüksek
CVSS7.5
İstismar olasılığı—
ÜrünMicrosoft Azl3 Kernel
Yayın11 Eyl 2026
İlk görülme11 Eyl 2026

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ünEtkilenen sürümlerDüzeltildiği sürüm
microsoft azl3_kernel_6.6.157.1-1Aralık belirtilmemiş—
microsoft azl3_kernel_6.6.150.1-1Aralık belirtilmemiş—
microsoft azl3_kernel_6.6.152.1-1Aralık belirtilmemiş—
microsoft azl3_kernel_6.6.159.1-1Aralı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.

Intelligence 360 paketinde

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.