CVE-2026-45919
Təsvir
Linux kernel-də aşağıdakı zəiflik aradan qaldırılıb: sched/rt: rto_next_cpu() funksiyasında hazırda icra olunan CPU-nu ötürün CPU-ya bağlı olan bir RT tapşırığına, CPU-ya bağlı olmayan bir RT tapşırığına və kernel sahəsində ilişib qalmış bir CFS tapşırığına ev sahibliyi etdikdə CPU0 həddindən artıq yüklənir. Digər CPU-lar RT tapşırıqlarından qeyri-RT tapşıriqlara keçdikdə, RT yük balanslaşdırması (LB) tetiklənir; HAVE_RT_PUSH_IPI aktiv olduqda, onlar rto_push_irq_work_func-ın icrasını təmin etmək üçün CPU0-a IPI-lər göndərirlər. CPU0 üzərində push_rt_task zamanı, əgər next_task->prio < rq->donor->prio olarsa, resched_curr() NEED_RESCHED təyin edir və push əməliyyatı tamamlandıqdan sonra CPU0 rto_next_cpu()-u çağırır. Bu ssenaridə yalnız CPU0 həddindən artıq yükləndiyi üçün, rto_next_cpu() ideal halda -1 qaytarmalıdır (artıq IPI-yə ehtiyac yoxdur). Lakin, LB zamanı tell_cpu_to_push()-u çağıran çox saylı CPU-lar rd->rto_loop_next dəyərini artırır. Hətta rd->rto_cpu -1 təyin edildikdə belə, rd->rto_loop və rd->rto_loop_next arasındakı uyğunsuzluq rto_next_cpu()-nu axtarışa yenidən -1-dən başlatmağa məcbur edir. CPU0 həddindən artıq yüklü qaldığı üçün (rt_nr_migratory && rt_nr_total > 1 şərti ödənildikdə), o yenidən seçilir ki, bu da CPU0-ın özünə irq_work növbəsinə əlavə etməsinə və təkrarən öz-özünə IPI-lər göndərməsinə səbəb olur. CPU0 həddindən artıq yüklü qaldığı və digər CPU-lar pull_rt_tasks()-i icra etdiyi müddətcə, sistem sonsuz öz-özünə IPI döngüsünə girir və bu da davamlı öz-özünü kəsmələr (self-interrupts) səbəbindən CPU hardlockup-a səbəb olur. Tetikləyici ssenari aşağıdakı kimidir: cpu0 cpu1 cpu2 pull_rt_task tell_cpu_to_push <------------irq_work_queue_on rto_push_irq_work_func push_rt_task resched_curr(rq) pull_rt_task rto_next_cpu tell_cpu_to_push <-------------------------- atomic_inc(rto_loop_next) rd->rto_loop != next rto_next_cpu irq_work_queue_on rto_push_irq_work_func rto_next_cpu() funksiyasında başladan CPU-nu filtrləməklə artıq öz-özünə IPI problemi düzəldilib. Bu həll yolu yalançı öz-özünə IPI-ləri effektiv şəkildə aradan qaldırdığını və CPU hardlockup ssenarilərinin qarşısını aldığını təsdiqləmişdir.
Necə düzəltmək olar
- linux linux_kernel4.5, 4.10, 5.10.252, 5.15.202, 6.1.165, 6.6.128, 6.12.75, 6.18.14, 6.19.4 və ya daha yeni versiya
- git.kernel.org/stable/c/16ca9f3117e9a294646c897daf08a5ab546c711b
- git.kernel.org/stable/c/3b3c672a66db3de3b40f8a7057864bc1f874ede3
- git.kernel.org/stable/c/52aeb1e07ec223caf212f036817976c98d2aa250
- git.kernel.org/stable/c/8ad5577b2d4acfd83f03d97a0aece2d18aac5f07
- git.kernel.org/stable/c/94894c9c477e53bcea052e075c53f89df3d2a33e
- git.kernel.org/stable/c/9f25edc5a20cb52a5abbf25f0724bb4732b81801
- git.kernel.org/stable/c/a6a73403733e86748421f2eeaf028c85683ef896
- git.kernel.org/stable/c/d57d0746276a88ea43a2cc62b849fd8a95e32e41
Təsirlənən məhsullar
| Məhsul | Təsirlənən versiyalar | Düzəldildiyi versiya |
|---|---|---|
| linux linux_kernel | 4.4.103 ≤ v < 4.5, 4.9.66 ≤ v < 4.10, 4.14.3 ≤ v < 5.10.252, 5.11 ≤ v < 5.15.202, 5.16 ≤ v < 6.1.165, 6.2 ≤ v < 6.6.128, 6.7 ≤ v < 6.12.75, 6.13 ≤ v < 6.18.14, 6.19 ≤ v < 6.19.4 | 4.5, 4.10, 5.10.252, 5.15.202, 6.1.165, 6.6.128, 6.12.75, 6.18.14, 6.19.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.