CVE-2022-49781

Orta

Açıklama

Linux kernel içerisinde aşağıdaki güvenlik açığı giderilmiştir: perf/x86/amd: amd_pmu_enable_all, perf NMI ve throttling arasındaki yarış durumu nedeniyle oluşan çökmeyi düzeltme amd_pmu_enable_all() şunları yapar: if (!test_bit(idx, cpuc->active_mask)) continue; amd_pmu_enable_event(cpuc->events[idx]); Bu iki adım arasında başka bir olayın perf NMI'ı gelebilir. Perf NMI işleyicisi dahili olarak, nmi-intercepted amd_pmu_enable_all()'ın etkinleştirmek üzere olduğu olay da dahil olmak üzere _tüm_ olayları devre dışı bırakır ve tekrar etkinleştirir. Eğer kasıt dışı olarak etkinleşen bu olay çok düşük bir örnekleme dönemine sahipse ve hemen ardışık NMI'lara neden olup olayın throttle edilmesine yol açarsa, cpuc->events[idx] ve cpuc->active_mask, x86_pmu_stop() tarafından temizlenir. Bu durum, amd_pmu_enable_all() NMI'ların işlenmesinden sonra devam ettiğinde, amd_pmu_enable_event()'ın event=NULL ile çağrılmasıyla sonuçlanır. Bu da bir çekirdek çökmesine neden olur: BUG: kernel NULL pointer dereference, address: 0000000000000198 #PF: supervisor read access in kernel mode #PF: error_code(0x0000) - not-present page [...] Call Trace: <TASK> amd_pmu_enable_all+0x68/0xb0 ctx_resched+0xd9/0x150 event_function+0xb8/0x130 ? hrtimer_start_range_ns+0x141/0x4a0 ? perf_duration_warn+0x30/0x30 remote_function+0x4d/0x60 __flush_smp_call_function_queue+0xc4/0x500 flush_smp_call_function_queue+0x11d/0x1b0 do_idle+0x18f/0x2d0 cpu_startup_entry+0x19/0x20 start_secondary+0x121/0x160 secondary_startup_64_no_verify+0xe5/0xeb </TASK> Perf NMI işleyicisi içindeki amd_pmu_disable_all()/amd_pmu_enable_all() çağrıları yakın zamanda BRS etkinleştirilmesinin bir parçası olarak eklenmiştir ancak bunlara gerçekten ihtiyacımız olduğundan emin değilim. Sadece başlangıçta BRS'yi devre dışı bırakabilir ve NMI'dan dönerken tekrar etkinleştirebiliriz. Bu, active_masks değerleri ayarlanmış olan ancak henüz donanım PMU'sunda etkinleştirilmemiş olan olayları etkinleştirmeyerek sorunu çözecektir.

ÖnemOrta
CVSS4.7
İstismar olasılığı—
ÜrünLinux Kernel
Yayın1 May 2025
İlk görülme1 May 2025
Zayıflık türüCWE-362Yarış durumu

Nasıl düzeltilir

Etkilenen ürünler

ÜrünEtkilenen sürümlerDüzeltildiği sürüm
linux linux_kernel5.19 ≤ v < 6.0.10, 6.16.0.10

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.