CVE-2024-27005
Təsvir
Linux kernel-də aşağıdakı zəiflik aradan qaldırılıb: interconnect: req_list manipulyasiya olunarkən ona giriş etməyin Lockdep xətalarının qarşısını almaq üçün [1]-də icc_lock muteksi ayrı icc_lock və icc_bw_lock mutekslərinə bölünüb. Lakin bu, icc_node::req_list-ə girişi adekvat şəkildə qorumayıb. icc_set_bw() funksiyası yalnız icc_bw_lock tutulmuş halda req_list üzərində iterasiya edir, lakin req_list yalnız icc_lock tutulduqda dəyişdirilə bilər. Bu, icc_set_bw(), of_icc_get() və icc_put() arasında yarış şəraitinə (race condition) səbəb olur. Nümunə A: CPU0 CPU1 ---- ---- icc_set_bw(path_a) mutex_lock(&icc_bw_lock); icc_put(path_b) mutex_lock(&icc_lock); aggregate_requests() hlist_for_each_entry(r, ... hlist_del(... <r = invalid pointer> Nümunə B: CPU0 CPU1 ---- ---- icc_set_bw(path_a) mutex_lock(&icc_bw_lock); path_b = of_icc_get() of_icc_get_by_index() mutex_lock(&icc_lock); path_find() path_init() aggregate_requests() hlist_for_each_entry(r, ... hlist_add_head(... <r = invalid pointer> Bu problem, icc_node::req_list manipulyasiya edilməzdən əvvəl həmişə icc_bw_lock-un tutulmasını təmin etməklə həll edilmişdir. icc_bw_lock-un tutulduğu əlavə yerlərdə heç bir yaddaş ayırması (memory allocation) yerinə yetirilmir, buna görə də ayrıca kilidlərin tətbiqinə səbəb olan orijinal lockdep xətalarından hələ də qorunuruq. [1] commit af42269c3523 ("interconnect: Fix locking for runpm vs reclaim")
Necə düzəltmək olar
- linux linux_kernel5.16, 6.2, 6.6.29, 6.8.8 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 | 5.15.133 ≤ v < 5.16, 6.1.55 ≤ v < 6.2, 6.5.5 ≤ v < 6.6.29, 6.7 ≤ v < 6.8.8, 6.9 | 5.16, 6.2, 6.6.29, 6.8.8 |
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.