CVE-2022-50177
Açıklama
Linux kernel içerisinde aşağıdaki güvenlik açığı giderilmiştir: rcutorture: ksoftirqd öncelik artırma zamanlaması ve yinelemesi düzeltildi RCU öncelik artırma işlemi iki durumda başarısız olabilir: 1) Eğer (nr_cpus= > maxcpus=) ise, yani toplam CPU sayısı önyükleme sırasında çevrimiçi hale getirilenlerden daha fazlaysa, torture_onoff() daha sonra önyüklemede çevrimiçi olmayan CPU'ları devreye alabilir. rcutorture başlatma işlemi yalnızca önyüklemede çevrimiçi olarak ayarlanan CPU'ların ksoftirqd birimlerinin önceliğini artırdığından, torture_onoff tarafından daha sonra çevrimiçi yapılan CPU'lar bu artırmadan yararlanamaz ve bu durum RCU öncelik artırmasının başarısız olmasına neden olur. 2) ksoftirqd çekirdek iş parçacıkları (kthreads), rcu_torture_boost() çekirdek iş parçacıklarının oluşturulmasından sonra önceliklendirilir; bu durum, rcu_torture_boost() iş parçacıklarının (FIFO önceliğinde çalışmasına rağmen) hala SCHED_NORMAL önceliğinde çalışan ksoftirqd'leri beklemesi için yeterince büyük bir pencere açar. Sorunlar örneğin şununla tetiklenebilir: ./kvm.sh --configs TREE01 --kconfig "CONFIG_RCU_BOOST=y" [ 34.968561] rcu-torture: !!! [ 34.968627] ------------[ cut here ]------------ [ 35.014054] WARNING: CPU: 4 PID: 114 at kernel/rcu/rcutorture.c:1979 rcu_torture_stats_print+0x5ad/0x610 [ 35.052043] Modules linked in: [ 35.069138] CPU: 4 PID: 114 Comm: rcu_torture_sta Not tainted 5.18.0-rc1 #1 [ 35.096424] Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS rel-1.14.0-0-g155821a-rebuilt.opensuse.org 04/01/2014 [ 35.154570] RIP: 0010:rcu_torture_stats_print+0x5ad/0x610 [ 35.198527] Code: 63 1b 02 00 74 02 0f 0b 48 83 3d 35 63 1b 02 00 74 02 0f 0b 48 83 3d 21 63 1b 02 00 74 02 0f 0b 48 83 3d 0d 63 1b 02 00 74 02 <0f> 0b 83 eb 01 0f 8e ba fc ff ff 0f 0b e9 b3 fc ff f82 [ 37.251049] RSP: 0000:ffffa92a0050bdf8 EFLAGS: 00010202 [ 37.277320] rcu: De-offloading 8 [ 37.290367] RAX: 0000000000000000 RBX: 0000000000000001 RCX: 0000000000000001 [ 37.290387] RDX: 0000000000000000 RSI: 00000000ffffbfff RDI: 00000000ffffffff [ 37.290398] RBP: 000000000000007b R08: 0000000000000000 R09: c0000000ffffbfff [ 37.290407] R10: 000000000000002a R11: ffffa92a0050bc18 R12: ffffa92a0050be20 [ 37.290417] R13: ffffa92a0050be78 R14: 0000000000000000 R15: 000000000001bea0 [ 37.290427] FS: 0000000000000000(0000) GS:ffff96045eb00000(0000) knlGS:0000000000000000 [ 37.290448] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 [ 37.290460] CR2: 0000000000000000 CR3: 000000001dc0c000 CR4: 00000000000006e0 [ 37.290470] Call Trace: [ 37.295049] <TASK> [ 37.295065] ? preempt_count_add+0x63/0x90 [ 37.295095] ? _raw_spin_lock_irqsave+0x12/0x40 [ 37.295125] ? rcu_torture_stats_print+0x610/0x610 [ 37.295143] rcu_torture_stats+0x29/0x70 [ 37.295160] kthread+0xe3/0x110 [ 37.295176] ? kthread_complete_and_exit+0x20/0x20 [ 37.295193] ret_from_fork+0x22/0x30 [ 37.295218] </TASK> Bu sorun, ksoftirqd çekirdek iş parçacıklarının doğrudan öncelik artırma hotplug geri çağırma fonksiyonundan ve öncelik artırma iş parçacıkları oluşturulmadan önce önceliklendirilmesiyle çözülmüştür.
Nasıl düzeltilir
- linux linux_kernel5.15.61, 5.18.18, 5.19.2 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.14 ≤ v < 5.15.61, 5.16 ≤ v < 5.18.18, 5.19 ≤ v < 5.19.2 | 5.15.61, 5.18.18, 5.19.2 |
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.