CVE-2021-47034

Orta

Açıklama

Linux çekirdeğinde aşağıdaki güvenlik açığı giderilmiştir: powerpc/64s: radix üzerinde çekirdek belleği için pte güncellemesini düzelt Bir PTE eklenirken, PTE güncellemesinin sonraki erişimlerle sıralanması için bir ptesync gereklidir; aksi takdirde hatalı bir sayfa hatası oluşabilir. radix__set_pte_at() performans kazancı için bunu yapmaz. Çekirdek belleği dışındaki bellek için bu bir sorun değildir çünkü bu tür hatalar sayfa hatası işleyicisi tarafından düzeltilir. Çekirdek belleği için bu hatalar işlenmez. Mevcut çözüm, vmalloc bölgesinden eşleme yapılırken çağrılması gereken flush_cache_vmap() içinde bir ptesync bulunmasıdır. Ancak map_kernel_page() flush_cache_vmap() çağrısını yapmaz. Bu özellikle radix üzerinde Strict RWX ile kod yamalama için sorunludur. do_patch_instruction() içinde yamalanacak talimatı içeren sayfa çerçevesi eşlenir ve hemen ardından yamalanır. PTE'nin kurulması ile sayfaya yazma arasında herhangi bir sıralama veya eşitleme olmadığından hatalar oluşabilir. Kod yamalama __put_user_asm_goto() kullanılarak yapıldığından ortaya çıkan hata gizlenir - ancak normal bir store kullanıldığında görülebilir: BUG: Unable to handle kernel data access on write at 0xc008000008f24a3c Faulting instruction address: 0xc00000000008bd74 Oops: Kernel access of bad area, sig: 11 [#1] LE PAGE_SIZE=64K MMU=Radix SMP NR_CPUS=2048 NUMA PowerNV Modules linked in: nop_module(PO+) [last unloaded: nop_module] CPU: 4 PID: 757 Comm: sh Tainted: P O 5.10.0-rc5-01361-ge3c1b78c8440-dirty #43 NIP: c00000000008bd74 LR: c00000000008bd50 CTR: c000000000025810 REGS: c000000016f634a0 TRAP: 0300 Tainted: P O (5.10.0-rc5-01361-ge3c1b78c8440-dirty) MSR: 9000000000009033 <SF,HV,EE,ME,IR,DR,RI,LE> CR: 44002884 XER: 00000000 CFAR: c00000000007c68c DAR: c008000008f24a3c DSISR: 42000000 IRQMASK: 1 Bu, burada bildirilen türde bir soruna yol açar: https://lore.kernel.org/linuxppc-dev/[email protected]/ Chris Riedl sorunu yeniden üretmenin güvenilir bir yolunu önerdi: $ mount -t debugfs none /sys/kernel/debug $ (while true; do echo function > /sys/kernel/debug/tracing/current_tracer ; echo nop > /sys/kernel/debug/tracing/current_tracer ; done) & ftrace'i açıp kapatmak büyük miktarda kod yamalama yapar ve genellikle 5 dakikadan kısa sürede çökerek şuna benzer bir iz üretir: ftrace-powerpc: (____ptrval____): replaced (4b473b11) != old (60000000) ------------[ ftrace bug ]------------ ftrace failed to modify [<c000000000bf8e5c>] napi_busy_loop+0xc/0x390 actual: 11:3b:47:4b Setting ftrace call site to call ftrace function ftrace record flags: 80000001 (1) expected tramp: c00000000006c96c ------------[ cut here ]------------ WARNING: CPU: 4 PID: 809 at kernel/trace/ftrace.c:2065 ftrace_bug+0x28c/0x2e8 Modules linked in: nop_module(PO-) [last unloaded: nop_module] CPU: 4 PID: 809 Comm: sh Tainted: P O 5.10.0-rc5-01360-gf878ccaf250a #1 NIP: c00000000024f334 LR: c00000000024f330 CTR: c0000000001a5af0 REGS: c000000004c8b760 TRAP: 0700 Tainted: P O (5.10.0-rc5-01360-gf878ccaf250a) MSR: 900000000282b033 <SF,HV,VEC,VSX,EE,FP,ME,IR,DR,RI,LE> CR: 28008848 XER: 20040000 CFAR: c0000000001a9c98 IRQMASK: 0 GPR00: c00000000024f330 c000000004c8b9f0 c000000002770600 0000000000000022 GPR04: 00000000ffff7fff c000000004c8b6d0 0000000000000027 c0000007fe9bcdd8 GPR08: 0000000000000023 ffffffffffffffd8 0000000000000027 c000000002613118 GPR12: 0000000000008000 c0000007fffdca00 0000000000000000 0000000000000000 GPR16: 0000000023ec37c5 0000000000000000 0000000000000000 0000000000000008 GPR20: c000000004c8bc90 c0000000027a2d20 c000000004c8bcd0 c000000002612fe8 GPR24: 0000000000000038 0000000000000030 0000000000000028 0000000000000020 GPR28: c000000000ff1b68 c000000000bf8e5c c00000000312f700 c000000000fbb9b0 NIP ftrace_bug+0x28c/0x2e8 LR ftrace_bug+0x288/0x2e8 Call T ---kısaltıldı---

ÖnemOrta
CVSS4.4
İstismar olasılığı—
ÜrünLinux Kernel
Yayın28 Şub 2024
İlk görülme28 Şub 2024

Nasıl düzeltilir

Güncelleyin
  • linux linux_kernel4.19.191, 5.4.119, 5.10.37, 5.11.21, 5.12.4 ya da sonraki bir sürüm

Etkilenen ürünler

ÜrünEtkilenen sürümlerDüzeltildiği sürüm
linux linux_kernel4.18 ≤ v < 4.19.191, 4.20 ≤ v < 5.4.119, 5.5 ≤ v < 5.10.37, 5.11 ≤ v < 5.11.21, 5.12 ≤ v < 5.12.44.19.191, 5.4.119, 5.10.37, 5.11.21, 5.12.4

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.

Intelligence 360 paketinde

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.

CVE-2021-47034 · Linux Kernel · Dark Radar