CVE-2026-74513
Açıklama
Linux çekirdeğinde aşağıdaki güvenlik açığı giderilmiştir: dibs: loopback attach/detach/unregister sırasında dmb_node üzerinde serbest bırakıldıktan sonra kullanım hatası düzeltildi dibs_lo_attach_dmb(), dibs_lo_detach_dmb() ve dibs_lo_unregister_dmb() dmb_node'u dmb_ht_lock altında arar, kilidi bırakır ve ancak ondan sonra düğümün refcount'u üzerinde işlem yapar. Bu pencere boyunca düğümü canlı tutan hiçbir şey yoktur: __dibs_lo_unregister_dmb() düğümü yazma kilidi altında hash tablosundan kaldırır ve hemen serbest bırakır. Bu nedenle eşzamanlı bir son put, arama ile refcount işlemi arasında düğümü serbest bırakabilir: CPU0 (attach) CPU1 (owner unregisters) read_lock_bh(&dmb_ht_lock) find dmb_node (refcnt == 1) read_unlock_bh(&dmb_ht_lock) refcount_dec_and_test() 1 -> 0 write_lock_bh(&dmb_ht_lock) hash_del(&dmb_node->list) write_unlock_bh(&dmb_ht_lock) kfree(dmb_node) refcount_inc_not_zero(&dmb_node->refcnt) <-- serbest bırakıldıktan sonra kullanım Aynı pencere detach ve unregister yollarındaki refcount_dec_and_test() çağrıları için de mevcuttur. Hash tablosu üyeliğini ve refcount geçişlerini birbirine göre atomik hale getirerek yarışı yapısal olarak kapatın: - Son refcount_dec_and_test() ve hash_del() işlemlerini hem unregister hem de detach yolunda tek bir dmb_ht_lock yazma tarafı kritik bölümünde gerçekleştirin. Düğümün serbest bırakılması hâlâ kilit bırakıldıktan sonra gerçekleşir; bu güvenlidir çünkü refcount'u sıfıra ulaşan bir düğüm hash tablosundan ayrılmıştır ve artık bulunamaz. - Bu, hash tablosunda bulunan herhangi bir düğümün en az bir referans tuttuğu ve son referansın yalnızca yazma kilidi altında düşürülebileceği değişmezini tesis eder. Böylece dibs_lo_attach_dmb() referansını hâlâ okuma kilidini tutarken düz bir refcount_inc() ile alabilir; refcount_inc_not_zero() artık gerekli değildir. __dibs_lo_unregister_dmb() artık hash tablosuna dokunmaz ve buna uygun olarak dibs_lo_free_dmb() olarak yeniden adlandırılmıştır. Not: cc21191b584c ("dibs: Move data path to dibs layer") commit'i kodu mevcut konumuna taşımıştır; yarış daha önce c3a910f2380f ("net/smc: implement DMB-merged operations of loopback-ism") commit'i tarafından ortaya çıkarılmıştır. SMC-D, ISM ve dibs loopback üzerinden test edilmiştir.
Nasıl düzeltilir
- Linux Linux90b2166605a7476007f7c013521d30b0be557cac, c0837aeace96152d14b17fdd19d70102b6631a7d, 48c073f88c93707089a4214f21cb4c3de5aea6e4, a10ea943356b9d70c5616a0a06f6fa97cfdaccb1 ya da sonraki bir sürüm
Etkilenen ürünler
| Ürün | Etkilenen sürümler | Düzeltildiği sürüm |
|---|---|---|
| Linux Linux | c3a910f2380fe294d14e42af66af3d3eed8fecbf ≤ v < 90b2166605a7476007f7c013521d30b0be557cac, c3a910f2380fe294d14e42af66af3d3eed8fecbf ≤ v < c0837aeace96152d14b17fdd19d70102b6631a7d, c3a910f2380fe294d14e42af66af3d3eed8fecbf ≤ v < 48c073f88c93707089a4214f21cb4c3de5aea6e4, c3a910f2380fe294d14e42af66af3d3eed8fecbf ≤ v < a10ea943356b9d70c5616a0a06f6fa97cfdaccb1, 6.10 | 90b2166605a7476007f7c013521d30b0be557cac, c0837aeace96152d14b17fdd19d70102b6631a7d, 48c073f88c93707089a4214f21cb4c3de5aea6e4, a10ea943356b9d70c5616a0a06f6fa97cfdaccb1 |
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.