CVE-2023-53215
Təsvir
Linux kernel-də aşağıdakı zəiflik aradan qaldırılmışdır: sched/fair: Tapşırığın hazırda işlədiyi CPU-ya balanslaşdırılmaması Balanslaşdırıcının miqrasiyası deaktiv edilmiş tapşırığı balanslaşdırmağa çalışdığı və aşağıdakı kimi set_task_cpu()-da xəbərdarlığı tetiklediyi hal aşkar edilmişdir: ------------[ cut here ]------------ WARNING: CPU: 7 PID: 0 at kernel/sched/core.c:3115 set_task_cpu+0x188/0x240 Modules linked in: hclgevf xt_CHECKSUM ipt_REJECT nf_reject_ipv4 <...snip> CPU: 7 PID: 0 Comm: swapper/7 Kdump: loaded Tainted: G O 6.1.0-rc4+ #1 Hardware name: Huawei TaiShan 2280 V2/BC82AMDC, BIOS 2280-V2 CS V5.B221.01 12/09/2021 pstate: 604000c9 (nZCv daIF +PAN -UAO -TCO -DIT -SSBS BTYPE=--) pc : set_task_cpu+0x188/0x240 lr : load_balance+0x5d0/0xc60 sp : ffff80000803bc70 x29: ffff80000803bc70 x28: ffff004089e190e8 x27: ffff004089e19040 x26: ffff007effcabc38 x25: 0000000000000000 x24: 0000000000000001 x23: ffff80000803be84 x22: 000000000000000c x21: ffffb093e79e2a78 x20: 000000000000000c x19: ffff004089e19040 x18: 0000000000000000 x17: 0000000000001fad x16: 0000000000000030 x15: 0000000000000000 x14: 0000000000000003 x13: 0000000000000000 x12: 0000000000000000 x11: 0000000000000001 x10: 0000000000000400 x9 : ffffb093e4cee530 x8 : 00000000fffffffe x7 : 0000000000ce168a x6 : 000000000000013e x5 : 00000000ffffffe1 x4 : 0000000000000001 x3 : 0000000000000b2a x2 : 0000000000000b2a x1 : ffffb093e6d6c510 x0 : 0000000000000001 Call trace: set_task_cpu+0x188/0x240 load_balance+0x5d0/0xc60 rebalance_domains+0x26c/0x380 _nohz_idle_balance.isra.0+0x1e0/0x370 run_rebalance_domains+0x6c/0x80 __do_softirq+0x128/0x3d8 ____do_softirq+0x18/0x24 call_on_irq_stack+0x2c/0x38 do_softirq_own_stack+0x24/0x3c __irq_exit_rcu+0xcc/0xf4 irq_exit_rcu+0x18/0x24 el1_interrupt+0x4c/0xe4 el1h_64_irq_handler+0x18/0x2c el1h_64_irq+0x74/0x78 arch_cpu_idle+0x18/0x4c default_idle_call+0x58/0x194 do_idle+0x244/0x2b0 cpu_startup_entry+0x30/0x3c secondary_start_kernel+0x14c/0x190 __secondary_switched+0xb0/0xb4 ---[ end trace 0000000000000000 ]--- Daha dərin araşdırmalar göstərir ki, bu xəbərdarlıq artıqdır, çünki miqrasiyası deaktiv edilmiş tapşırıq sadəcə özünün hazırda işlədiyi CPU-ya miqrasiya olunur. Bunun səbəbi odur ki, yük balanslaşdırması zamanı əgər dst_cpu tapşırıq tərəfindən icazə verilmirsə, namizəd olaraq yeni bir new_dst_cpu seçilir. Əgər heç bir tapşırıq dst_cpu-ya balanslaşdırıla bilmirsə, biz tapşırığı bunun əvəzinə new_dst_cpu-ya balanslaşdırmağa çalışırıq. Bu halda, miqrasiyası deaktiv edilmiş tapşırıq CPU-da olmadıqda və yalnız öz cari CPU-sunda işləməyə icazə verdikdə, yük balanslaşdırması onun cari CPU-sunu new_dst_cpu kimi seçir və daha sonra yuxarıdakı xəbərdarlığı tetiklir. new_dst_cpu env->dst_grpmask-dan seçilir. Hazırda bura sched_group_span()-dakı CPU-lar daxildir və əgər üst-üstə düşən qruplarımız varsa, bu hal ilə qarşılaşmaq mümkündür. Bu yam (patch), env->dst_grpmask-ı ən yüklü qrupdakı bütün CPU-ları istisna edən group_balance_mask() etməklə problemi həll edir. Üst-üstə düşən qrupların olmadığı domenlərdə balanslaşdırma davranışı əvvəlki kimi qalır.
Necə düzəltmək olar
- linux linux_kernel4.14.322, 4.19.291, 5.4.251, 5.10.188, 5.15.150, 6.1.42, 6.4.7 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 < 4.14.322, 4.15 ≤ v < 4.19.291, 4.20 ≤ v < 5.4.251, 5.5 ≤ v < 5.10.188, 5.11 ≤ v < 5.15.150, 5.16 ≤ v < 6.1.42, 6.2 ≤ v < 6.4.7 | 4.14.322, 4.19.291, 5.4.251, 5.10.188, 5.15.150, 6.1.42, 6.4.7 |
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.