CVE-2023-53419
Açıklama
Linux kernel içerisinde aşağıdaki güvenlik açığı giderilmiştir: rcu: rcu_print_task_exp_stall() ->exp_tasks erişimini koruyun CONFIG_PREEMPT_RCU=y ile derlenen çekirdekler için aşağıdaki senaryo bir NULL-pointer dereference durumuna yol açabilir: CPU1 CPU2 rcu_preempt_deferred_qs_irqrestore rcu_print_task_exp_stall if (special.b.blocked) READ_ONCE(rnp->exp_tasks) != NULL raw_spin_lock_rcu_node np = rcu_next_node_entry(t, rnp) if (&t->rcu_node_entry == rnp->exp_tasks) WRITE_ONCE(rnp->exp_tasks, np) .... raw_spin_unlock_irqrestore_rcu_node raw_spin_lock_irqsave_rcu_node t = list_entry(rnp->exp_tasks->prev, struct task_struct, rcu_node_entry) (eğer rnp->exp_tasks NULL ise, bu bir NULL pointer dereference yapacaktır) Sorun, CPU2'nin rcu_node yapısının ->lock kilidini tutmadan rcu_node yapısının ->exp_tasks alanına erişmesi ve CPU2'nin, CPU1 tarafından rcu_node yapısının ->exp_tasks alanında yapılan değişikliği zamanında fark etmemesidir. Bu nedenle, eğer CPU1 rcu_node yapısının ->exp_tasks işaretçisini NULL olarak ayarlarsa, CPU2 bu NULL işaretçiyi dereference edebilir. Bu commit, söz konusu yapının ->exp_tasks alanına erişirken rcu_node yapısının ->lock kilidini tutmaktadır. [ paulmck: Frederic Weisbecker geri bildirimi uygulandı. ]
Nasıl düzeltilir
- linux linux_kernel5.10.181, 5.15.113, 6.1.30, 6.3.4 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 | v < 5.10.181, 5.11 ≤ v < 5.15.113, 5.16 ≤ v < 6.1.30, 6.2 ≤ v < 6.3.4 | 5.10.181, 5.15.113, 6.1.30, 6.3.4 |
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.