CVE-2026-89956
Açıklama
Linux kernel'de aşağıdaki güvenlik açığı giderilmiştir: s390/vfio-ap: ap_matrix_mdev nesne listesine erişim için gerekli olan eksik kilit düzeltildi matrix_dev->mdev_list içerisindeki ap_matrix_mdev nesneleri arasında gezinmek veya bu nesneleri eklemek/kaldırmak için matrix_dev->guests_lock mutex'inin tutulması gerekir. Listeye mutex tutmadan erişen iki fonksiyon bulunmaktadır: vfio_ap_mdev_probe fonksiyonu ~~~~~~~~~~~~~~~~~~~~~~~~~~~ vfio_ap_mdev_probe fonksiyonu, yeni oluşturulan bir ap_matrix_mdev nesnesinin matrix_dev->mdev_list'e eklenmesini korumak için matrix_dev->mdevs_lock mutex'ini kullanır. Bu mutex liste erişimini korumaz; amacı, bir ap_matrix_mdev nesnesi içinde bulunan alanlara eşzamanlı erişimi engellemektir. Başka bir mdev eşzamanlı olarak oluşturulursa veya kaldırılırsa, bu durum çekirdek bellek bozulmasına veya serbest bırakıldıktan sonra kullanım (use-after-free) hatasına yol açabilir. Bir ap_matrix_mdev nesnesinin matrix_dev->mdev_list'e eklenmesi artık, eşzamanlı mdev_list erişimine karşı korunmanın doğru yolu olan matrix_dev->guests_lock tarafından korunmaktadır. Ayrıca, matrix_mdev'in kzalloc kullanan vfio_alloc_device makrosu aracılığıyla tahsis edilmesi nedeniyle, vfio_register_emulated_iommu_dev çağrısından önce struct tahsis edildiğinde req_trigger ve cfg_chg_trigger zaten sıfıra başlatılmış olduğundan aşağıdaki iki kod satırı kaldırılmıştır. Bu işlem, cihaz kullanıcı alanına sunulduktan sonra bu tetikleyicilerin NULL olarak ayarlandığı bir zaman aralığının oluşmasını önler. matrix_mdev->req_trigger = NULL; matrix_mdev->cfg_chg_trigger = NULL; vfio_ap_mdev_for_queue fonksiyonu ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /sys/bus/ap/devices altındaki cihazların durum özniteliğinin görüntülenmesini destekleyen status_show fonksiyonu, durumu görüntülenecek kuyruk cihazını temsil eden nesneyi bulmak için matrix_dev->mdev_list üzerinde yineleme yapan vfio_ap_mdev_for_queue fonksiyonunu çağırır. Bu listede gezinmek için matrix_dev->guests_lock mutex'inin tutulması gerekir. Bunu düzeltmek için, status_show fonksiyonunda matrix_dev->mdevs_lock mutex'i alınmadan önce guests_lock mutex'i alınır. İhtiyaç duyulan yer olan vfio_ap_mdev_for_queue fonksiyonu yerine burada alınmasının sebebi, uygun kilitleme sırasına uymak ve bir lockdep splat'i önlemek için mdevs_lock mutex'inden önce alınması gerekmesidir; ayrıca o fonksiyonda matrix_mdev nesnesi içindeki alanlara erişmek için mdevs_lock gereklidir. Linux kernel ağacındaki vfio-ap-locking.rst dosyesine bakınız.
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.152.1-1 | Aralık belirtilmemiş | — |
| microsoft azl3_kernel_6.6.157.1-1 | Aralık belirtilmemiş | — |
| microsoft azl3_kernel_6.6.150.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.