CVE-2023-53419
Təsvir
Linux nüvəsində aşağıdakı zəiflik aradan qaldırılmışdır: rcu: rcu_print_task_exp_stall() ->exp_tasks girişinin qorunması CONFIG_PREEMPT_RCU=y ilə qurulmuş nüvələr üçün aşağıdakı ssenari NULL göstəricisinin istifadəsinə (NULL-pointer dereference) səbəb ola bilər: 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) (əgər rnp->exp_tasks NULL-dursa, bu NULL göstəricisini istifadə edəcək) Problem ondadır ki, CPU2 rcu_node strukturunun ->lock kilidini saxlamadan həmin strukturun ->exp_tasks sahəsinə müraciət edir və CPU2, CPU1-in rcu_node strukturunun ->exp_tasks sahəsində etdiyi dəyişikliyi vaxtında görmür. Buna görə də, əgər CPU1 rcu_node strukturunun ->exp_tasks göstəricisini NULL təyin edərsə, CPU2 həmin NULL göstəricisini istifadə edə bilər. Bu commit, həmin strukturun ->exp_tasks sahəsinə müraciət zamanı rcu_node strukturunun ->lock kilidini saxlayır. [ paulmck: Frederic Weisbecker-in rəyləri tətbiq edildi. ]
Necə düzəltmək olar
- linux linux_kernel5.10.181, 5.15.113, 6.1.30, 6.3.4 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 | 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 |
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.