CVE-2026-53264
Açıklama
Linux kernel içerisinde aşağıdaki güvenlik açığı giderilmiştir: net/sched: act_api: eylem yaşam döngüsü için ertelenmiş serbest bırakma ile RCU kullanımı NEWTFILTER ve DELFILTER eşzamanlı olarak çalıştırıldığında, ilişkili bir eylemle yarış durumu (race condition) oluşturmak mümkündür. Durumu, CPU0'ın NEWTFILTER ve CPU1'in DELFILTER çalıştırdığı senaryo ile örneklendirelim: 0: mutex_lock() <-- idr kilidini tutar 0: rcu_read_lock() 0: p = idr_find(idr, index) <-- eylem p geçerlidir (RCU, IDR'yi korur) 0: mutex_unlock() <-- idr kilidini serbest bırakır 1: refcount_dec_and_mutex_lock() <-- refcnt 1->0, mutex tutuluyor 1: idr_remove(idr, index) <-- Eylem IDR'den kaldırılır 1: mutex_unlock() <-- mutex serbest bırakılarak eylemin silinmesine izin verilir 1: tcf_action_cleanup(p); kfree(p) <-- p hemen serbest bırakılır, erteleme yoktur 0: refcount_inc_not_zero(&p->tcfa_refcnt) <-- hata, UAF; p serbest bırakılmış belleğe işaret ediyor Bu yama, ertelemede kullanılan tc_action yapısına struct rcu_head ekleyerek ve nihai kfree() işlemini ertelemek için silme yoluna bir call_rcu() ekleyerek NEWTFILTER ve DELFILTER arasındaki yarış durumunu düzeltir. Not: bu işlem, d7fb60b9cafb ("net_sched: get rid of tcfa_rcu") commit'inin geri alınmasıdır ancak aynı zamanda doğrudan kfree_rcu() kullanacak şekilde modernizasyon/basitleştirmedir. Yeni restore edilen kod yolu şu şekildedir: 0: rcu_read_lock() 1: refcount_dec_and_mutex_lock() <-- refcnt 1->0, mutex tutuluyor 1: idr_remove(idr, index) 1: mutex_unlock() 1: call_rcu(&p->tcfa_rcu, tcf_action_rcu_free) <-- kfree işlemi grace period sonrasına ertelenir 0: p = idr_find(idr, index) 0: refcount_inc_not_zero(&p->tcfa_refcnt) <-- başarısız olur, refcnt zaten 0 1: rcu_read_unlock() <-- grace period sonrası serbest bırakmanın çalışabilmesi için serbest bırakılır CPU1 idr_remove() fonksiyonunu çağırdıktan sonra nesneye artık IDR üzerinden erişilemez. CPU0'ın sonraki idr_find() çağrısı NULL döndürecektir ve güncel olmayan bir işaretçiyi hala tutuyor olsa bile, anlık kfree() işlemi artık RCU grace period sonrasına ertelendiğinden herhangi bir UAF meydana gelmeyecektir.
Nasıl düzeltilir
- linux linux_kernel5.10.259, 5.15.210, 6.1.176, 6.6.143, 6.12.94, 6.18.36, 7.0.13 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 | 4.14 ≤ v < 5.10.259, 5.11 ≤ v < 5.15.210, 5.16 ≤ v < 6.1.176, 6.2 ≤ v < 6.6.143, 6.7 ≤ v < 6.12.94, 6.13 ≤ v < 6.18.36, 6.19 ≤ v < 7.0.13, 7.1 | 5.10.259, 5.15.210, 6.1.176, 6.6.143, 6.12.94, 6.18.36, 7.0.13 |
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.