CVE-2026-53264
Təsvir
Linux kernelində aşağıdakı zəiflik həll edilmişdir: net/sched: act_api: action həyat dövrü üçün təxirə salınmış azad etmə ilə RCU istifadə edin NEWTFILTER və DELFILTER eyni vaxtda işlədildikdə əlaqəli action ilə yarış vəziyyəti (race) yaratmaq mümkündür. CPU0-ın NEWTFILTER, CPU1-in isə DELFILTER işlətdiyi halı göstərək: 0: mutex_lock() <-- idr kilidini tutur 0: rcu_read_lock() 0: p = idr_find(idr, index) <-- action p etibarlıdır (RCU IDR-ni qoruyur) 0: mutex_unlock() <-- idr kilidini buraxır 1: refcount_dec_and_mutex_lock() <-- refcnt 1->0, mutex tutulur 1: idr_remove(idr, index) <-- Action IDR-dən silinir 1: mutex_unlock() <-- mutex buraxılır və action-ı silməyə imkan verir 1: tcf_action_cleanup(p); kfree(p) <-- p dərhal kfree edilir, təxirə salınma yoxdur 0: refcount_inc_not_zero(&p->tcfa_refcnt) <-- eyvay, UAF p azad edilmiş yaddaşa işarə edir Bu yamaq NEWTFILTER və DELFILTER arasındakı yarış vəziyyətini təxirə salmada istifadə olunan tc_action-a struct rcu_head əlavə etməklə və son kfree()-ni təxirə salmaq üçün silmə yolunda call_rcu() tətbiq etməklə düzəldir. Qeyd: bu, d7fb60b9cafb commit-inin ("net_sched: get rid of tcfa_rcu") geri qaytarılmasıdır, həm də birbaşa kfree_rcu() istifadə etmək üçün müasirləşdirmə/sadələşdirmədir. Bərpa edilmiş yeni kod yolunu göstərək: 0: rcu_read_lock() 1: refcount_dec_and_mutex_lock() <-- refcnt 1->0, mutex tutulur 1: idr_remove(idr, index) 1: mutex_unlock() 1: call_rcu(&p->tcfa_rcu, tcf_action_rcu_free) <-- grace period-dan sonra kfree-ni təxirə salır 0: p = idr_find(idr, index) 0: refcount_inc_not_zero(&p->tcfa_refcnt) <-- uğursuz olur, refcnt artıq 0-dır 1: rcu_read_unlock() <-- buraxır ki, azad etmə grace period-dan sonra işləyə bilsin CPU1 idr_remove() çağırdıqdan sonra obyekt artıq IDR vasitəsilə əlçatan deyil. CPU0-ın sonrakı idr_find() çağırışı NULL qaytaracaq və hətta o hələ də köhnəlmiş göstəricini saxlasa belə, dərhal kfree() artıq RCU grace period-undan sonraya təxirə salınır, buna görə heç bir UAF baş verə bilməz.
Necə düzəltmək olar
- linux linux_kernel5.10.259, 5.15.210, 6.1.176, 6.6.143, 6.12.94, 6.18.36, 7.0.13 və ya daha yeni versiya
Təsirlənən məhsullar
| Məhsul | Təsirlənən versiyalar | Düzəldildiyi versiya |
|---|---|---|
| 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 |
Versiyanızı yoxlayın
Məhsulu seçin və istifadə etdiyiniz versiyanı yazın; versiyanın təsirlənən aralıqda olub-olmadığını görün.
Attack Surface Management
Domenlərinizə bağlı aktivləri, onlarda işləyən texnologiyaları və məlum zəiflikləri bir siyahıda görün.