CVE-2021-47454
Açıklama
Linux kernel içerisinde aşağıdaki güvenlik açığı giderilmiştir: powerpc/smp: CPU çevrim dışıyken boşta olan görev ön alma sayacı azaltılmamalıdır PREEMPT_COUNT=y ile bir CPU çevrim dışı bırakılıp ardından tekrar çevrim içi hale getirildiğinde şu hata alınmaktadır: BUG: scheduling while atomic: swapper/1/0/0x00000000 no locks held by swapper/1/0. CPU: 1 PID: 0 Comm: swapper/1 Not tainted 5.15.0-rc2+ #100 Call Trace: dump_stack_lvl+0xac/0x108 __schedule_bug+0xac/0xe0 __schedule+0xcf8/0x10d0 schedule_idle+0x3c/0x70 do_idle+0x2d8/0x4a0 cpu_startup_entry+0x38/0x40 start_secondary+0x2ec/0x3a0 start_secondary_prolog+0x10/0x14 Bunun nedeni, powerpc'nin arch_cpu_idle_dead() fonksiyonunun, a7c2bb8279d2 ("powerpc: Re-enable preemption before cpu_die()") commit'inde açıklanan nedenlerle, özellikle de "start_secondary() fonksiyonunun preempt_count() değerinin 0 olmasını beklemesi" sebebiyle boşta olan görevin ön alma sayacını azaltmasıdır. Ancak, 2c669ef6979c ("powerpc/preempt: Don't touch the idle task's preempt_count during hotplug") ve f1a0a376ca0c ("sched/core: Initialize the idle task with preemption disabled") commit'lerinden beri bu gerekçe artık geçerli değildir. Boşta olan görevin ön almayı yeniden etkinleştirmemesi gerektiğinden, CPU çevrim dışı yolundaki kalıntı preempt_enable() kaldırılmıştır. qemu üzerinde pseries ve powernv ile, PowerVM üzerinde ise pseries ile test edilmiştir.
Nasıl düzeltilir
- linux linux_kernel5.10.76, 5.13, 5.14.15 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.10.50 ≤ v < 5.10.76, 5.12.17 ≤ v < 5.13, 5.13.2 ≤ v < 5.14.15, 5.15 | 5.10.76, 5.13, 5.14.15 |
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.