CVE-2024-56610
Açıklama
Linux kernel içerisinde aşağıdaki güvenlik açığı giderilmiştir: kcsan: report_filterlist_lock bir raw_spinlock'a dönüştürüldü Ran Xiaokai, KCSAN etkinleştirilmiş bir PREEMPT_RT çekirdeğinde şu tarz hataların görülebildiğini bildirmiştir: | BUG: sleeping function called from invalid context at kernel/locking/spinlock_rt.c:48 | in_atomic(): 1, irqs_disabled(): 1, non_block: 0, pid: 0, name: swapper/1 | preempt_count: 10002, expected: 0 | RCU nest depth: 0, expected: 0 | no locks held by swapper/1/0. | irq event stamp: 156674 | hardirqs last enabled at (156673): [<ffffffff81130bd9>] do_idle+0x1f9/0x240 | hardirqs last disabled at (156674): [<ffffffff82254f84>] sysvec_apic_timer_interrupt+0x14/0xc0 | softirqs last enabled at (0): [<ffffffff81099f47>] copy_process+0xfc7/0x4b60 | softirqs last disabled at (0): [<0000000000000000>] 0x0 | Preemption disabled at: | [<ffffffff814a3e2a>] paint_ptr+0x2a/0x90 | CPU: 1 UID: 0 PID: 0 Comm: swapper/1 Not tainted 6.11.0+ #3 | Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.12.0-0-ga698c8995f-prebuilt.qemu.org 04/01/2014 | Call Trace: | <IRQ> | dump_stack_lvl+0x7e/0xc0 | dump_stack+0x1d/0x30 | __might_resched+0x1a2/0x270 | rt_spin_lock+0x68/0x170 | kcsan_skip_report_debugfs+0x43/0xe0 | print_report+0xb5/0x590 | kcsan_report_known_origin+0x1b1/0x1d0 | kcsan_setup_watchpoint+0x348/0x650 | __tsan_unaligned_write1+0x16d/0x1d0 | hrtimer_interrupt+0x3d6/0x430 | __sysvec_apic_timer_interrupt+0xe8/0x3a0 | sysvec_apic_timer_interrupt+0x97/0xc0 | </IRQ> Bir veri yarışı tespit edildiğinde, KCSAN raporlama mantığı raporun filtrelenip filtrelenmeyeceğini kontrol eder. Bu liste, RT çekirdeklerinde uyku moduna geçebilen *non-raw* bir spinlock olan report_filterlist_lock tarafından korunmaktadır. KCSAN herhangi bir bağlamda veri yarışlarını raporlayabildiği için bu kilit raw_spinlock'a dönüştürülmüştür. Bu durum, KCSAN'in debugfs arayüzü üzerinden yapılabilecek filtre listesi için bellek tahsisinin ne zaman yapılacağı konusunda dikkatli olmayı gerektirir. Filtre listesinin debugfs aracılığıyla eşzamanlı olarak değiştirilmesi nadir bir durumdur; seçilen strateji, kritik bölümden önce iyimser bir şekilde önceden bellek tahsis etmek ve kullanılmadığında bunu iptal etmektir.
Nasıl düzeltilir
- linux linux_kernel5.10.231, 5.15.174, 6.1.120, 6.6.66, 6.12.5 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.8 ≤ v < 5.10.231, 5.11 ≤ v < 5.15.174, 5.16 ≤ v < 6.1.120, 6.2 ≤ v < 6.6.66, 6.7 ≤ v < 6.12.5 | 5.10.231, 5.15.174, 6.1.120, 6.6.66, 6.12.5 |
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.