CVE-2026-31444
Açıklama
Linux kernel'da aşağıdaki güvenlik açığı giderilmiştir: ksmbd: smb_grant_oplock() fonksiyonundaki serbest bırakıldıktan sonra kullanım (use-after-free) ve NULL dereferans hataları düzeltildi smb_grant_oplock() fonksiyonunun oplock yayınlama dizisinde iki sorun bulunmaktadır: 1) opinfo, add_lease_global_list() çağrılmadan önce (opinfo_add aracılığıyla) ci->m_op_list içine bağlanır. Eğer add_lease_global_list() başarısız olursa (kmalloc NULL döndürürse), hata yolu, opinfo hala ci->m_op_list içinde bağlıyken onu __free_opinfo() üzerinden serbest bırakır. Eşzamanlı m_op_list okuyucuları (opinfo_get_list veya smb_break_all_levII_oplock içindeki doğrudan yineleme), serbest bırakılan düğüme erişmeye çalışır (dereference). 2) opinfo->o_fp, add_lease_global_list() opinfo'yu küresel kiralama listesinde yayınladıktan sonra atanır. Eşzamanlı bir find_same_lease_key() işlemi, kiralama listesini tarayabilir ve o_fp henüz NULL iken opinfo->o_fp->f_ci değerine erişmeye çalışabilir. Yayın sonrası başarısızlık durumlarını ortadan kaldırmak için yayınlama dizisi yeniden yapılandırılarak sorun giderilmiştir: - Herhangi bir liste yayınlamasından önce opinfo->o_fp ayarlanır (NULL dereferans hatasını düzeltir). - opinfo_add() işleminden önce alloc_lease_table() ile lease_table önceden tahsis edilir; böylece add_lease_global_list() yayınlama işleminden sonra başarısız olamaz hale gelir. - Orijinal m_op_list yayınlama sırası (kiralama listesinden önce opinfo_add) korunur; böylece same_client_has_lease() ve opinfo_get_list() üzerinden yapılan eşzamanlı açılışlar, devam eden yetkilendirmeyi görmeye devam eder. - err_out üzerinde __free_opinfo() yerine opinfo_put() kullanılır, böylece RCU-ertelenmiş serbest bırakma yolu kullanılır. Bu işlem ayrıca, artık başarısız olamayacağı için add_lease_global_list() fonksiyonunun önceden tahsis edilmiş bir lease_table alacak şekilde bölünmesini ve dönüş tipinin int'ten void'e değiştirilmesini gerektirir.
Nasıl düzeltilir
- linux linux_kernel6.12.80, 6.18.21, 6.19.11 ya da sonraki bir sürüm
Etkilenen ürünler
| Ürün | Etkilenen sürümler | Düzeltildiği sürüm |
|---|---|---|
| linux linux_kernel | 6.12.78 ≤ v < 6.12.80, 6.18.19 ≤ v < 6.18.21, 6.19.9 ≤ v < 6.19.11, 6.6.130, 7.0 | 6.12.80, 6.18.21, 6.19.11 |
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.