CVE-2024-27005
Açıklama
Linux kernel içerisinde aşağıdaki güvenlik açığı giderilmiştir: interconnect: req_list üzerinde işlem yapılırken erişim sağlamayın Lockdep hatalarını önlemek amacıyla [1]'de icc_lock mutex'i, ayrı icc_lock ve icc_bw_lock mutex'lerine bölünmüştü. Ancak bu durum, icc_node::req_list erişimini yeterince korumamıştır. icc_set_bw() fonksiyonu, yalnızca icc_bw_lock tutulurken req_list üzerinde yineleme yapacaktır; fakat req_list, yalnızca icc_lock tutulurken değiştirilebilir. Bu durum icc_set_bw(), of_icc_get() ve icc_put() arasında yarış durumlarına (race condition) neden olur. Örnek 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 = geçersiz işaretçi> Örnek 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 = geçersiz işaretçi> Bu sorun, icc_node::req_list üzerinde işlem yapmadan önce her zaman icc_bw_lock'un tutulduğundan emin olunarak düzeltilmiştir. icc_bw_lock'un tutulduğu ek yerlerde herhangi bir bellek tahsisi gerçekleştirilmediğinden, ayrı kilitlerin gerekçesi olan orijinal lockdep hatalarına karşı hala güvende olmalıyız. [1] commit af42269c3523 ("interconnect: Fix locking for runpm vs reclaim")
Nasıl düzeltilir
- linux linux_kernel5.16, 6.2, 6.6.29, 6.8.8 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 | 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 |
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.