CVE-2023-54113
Açıklama
Linux çekirdeğinde aşağıdaki güvenlik açığı giderilmiştir: rcu: vmalloc bellek bilgilerini güvenli şekilde dök Şu anda, call_rcu() işlevinin iki kez çağrılması durumunda rcu_head nesnelerinin bellek bilgileri dökülür; nesneler slab ayırıcısından ayrılmamışsa vmalloc_dump_obj() çağrılır ve vmap_area_lock spinlock'unun tutulması gerekir. call_rcu() kesme bağlamında çağrılabildiğinden, spinlock kilitlenme senaryoları olasılığı vardır. Ayrıca Preempt-RT çekirdeğinde rcutorture testi şu lockdep uyarısını da tetikler: BUG: sleeping function called from invalid context at kernel/locking/spinlock_rt.c:48 in_atomic(): 1, irqs_disabled(): 1, non_block: 0, pid: 1, name: swapper/0 preempt_count: 1, expected: 0 RCU nest depth: 1, expected: 1 3 locks held by swapper/0/1: #0: ffffffffb534ee80 (fullstop_mutex){+.+.}-{4:4}, at: torture_init_begin+0x24/0xa0 #1: ffffffffb5307940 (rcu_read_lock){....}-{1:3}, at: rcu_torture_init+0x1ec7/0x2370 #2: ffffffffb536af40 (vmap_area_lock){+.+.}-{3:3}, at: find_vmap_area+0x1f/0x70 irq event stamp: 565512 hardirqs last enabled at (565511): [<ffffffffb379b138>] __call_rcu_common+0x218/0x940 hardirqs last disabled at (565512): [<ffffffffb5804262>] rcu_torture_init+0x20b2/0x2370 softirqs last enabled at (399112): [<ffffffffb36b2586>] __local_bh_enable_ip+0x126/0x170 softirqs last disabled at (399106): [<ffffffffb43fef59>] inet_register_protosw+0x9/0x1d0 Preemption disabled at: [<ffffffffb58040c3>] rcu_torture_init+0x1f13/0x2370 CPU: 0 PID: 1 Comm: swapper/0 Tainted: G W 6.5.0-rc4-rt2-yocto-preempt-rt+ #15 Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS rel-1.16.2-0-gea1b7a073390-prebuilt.qemu.org 04/01/2014 Call Trace: <TASK> dump_stack_lvl+0x68/0xb0 dump_stack+0x14/0x20 __might_resched+0x1aa/0x280 ? __pfx_rcu_torture_err_cb+0x10/0x10 rt_spin_lock+0x53/0x130 ? find_vmap_area+0x1f/0x70 find_vmap_area+0x1f/0x70 vmalloc_dump_obj+0x20/0x60 mem_dump_obj+0x22/0x90 __call_rcu_common+0x5bf/0x940 ? debug_smp_processor_id+0x1b/0x30 call_rcu_hurry+0x14/0x20 rcu_torture_init+0x1f82/0x2370 ? __pfx_rcu_torture_leak_cb+0x10/0x10 ? __pfx_rcu_torture_leak_cb+0x10/0x10 ? __pfx_rcu_torture_init+0x10/0x10 do_one_initcall+0x6c/0x300 ? debug_smp_processor_id+0x1b/0x30 kernel_init_freeable+0x2b9/0x540 ? __pfx_kernel_init+0x10/0x10 kernel_init+0x1f/0x150 ret_from_fork+0x40/0x50 ? __pfx_kernel_init+0x10/0x10 ret_from_fork_asm+0x1b/0x30 </TASK> Önceki yama bunu find_vm_area işlevinin kilitlenmeye karşı güvenli en iyi çaba sürümünü kullanarak düzeltir. Ancak başarısızlık durumunda, işaretçinin bir vmalloc işaretçisi olduğu bilgisini yazdırarak en azından bir şey yazdırmamızı sağlar.
Nasıl düzeltilir
- Linux Linux0a22f9c17b1aa2a35b5eedee928f7841595b55cd, 3f7a4e88e40e38c0b16a4bcb599b7b1d8c81440d, dddca4c46ec92f83449bc91dd199f46a89e066be, 8fb1601ec0a2c4c34fc2170af767e5c2a6400573, c83ad36a18c02c0f51280b50272327807916987f ya da sonraki bir sürüm
Etkilenen ürünler
| Ürün | Etkilenen sürümler | Düzeltildiği sürüm |
|---|---|---|
| Linux Linux | 98f180837a896ecedf8f7e12af22b57f271d43c9 ≤ v < 0a22f9c17b1aa2a35b5eedee928f7841595b55cd, 98f180837a896ecedf8f7e12af22b57f271d43c9 ≤ v < 3f7a4e88e40e38c0b16a4bcb599b7b1d8c81440d, 98f180837a896ecedf8f7e12af22b57f271d43c9 ≤ v < dddca4c46ec92f83449bc91dd199f46a89e066be, 98f180837a896ecedf8f7e12af22b57f271d43c9 ≤ v < 8fb1601ec0a2c4c34fc2170af767e5c2a6400573, 98f180837a896ecedf8f7e12af22b57f271d43c9 ≤ v < c83ad36a18c02c0f51280b50272327807916987f, 5.12 | 0a22f9c17b1aa2a35b5eedee928f7841595b55cd, 3f7a4e88e40e38c0b16a4bcb599b7b1d8c81440d, dddca4c46ec92f83449bc91dd199f46a89e066be, 8fb1601ec0a2c4c34fc2170af767e5c2a6400573, c83ad36a18c02c0f51280b50272327807916987f |
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.