CVE-2024-40915
Açıklama
Linux kernel içerisinde aşağıdaki güvenlik açığı giderilmiştir: riscv: geçersiz bağlamda uyuma sorununu düzeltmek için __kernel_map_pages() yeniden yazıldı __kernel_map_pages(), serbest bırakılan sayfalara yönelik yasa dışı bellek erişimlerini tespit etmek amacıyla, tahsisatı kaldırılmış sayfalar için sayfa tablosu girişindeki geçerli bitini temizleyen bir hata ayıklama fonksiyonudur. Bu fonksiyon, geçerli bitini __set_memory() kullanarak ayarlar veya temizler. __set_memory(), init_mm semaforunu edinir ve bu işlem uyumaya (sleep) neden olabilir. __kernel_map_pages() atomik bağlamda çağrılabildiği için uyunması yasaktır ve bu durum sorun teşkil etmektedir. Bunun neden olduğu örnek bir uyarı şöyledir: BUG: sleeping function called from invalid context at kernel/locking/rwsem.c:1578 in_atomic(): 1, irqs_disabled(): 0, non_block: 0, pid: 2, name: kthreadd preempt_count: 2, expected: 0 CPU: 0 PID: 2 Comm: kthreadd Not tainted 6.9.0-g1d4c6d784ef6 #37 Hardware name: riscv-virtio,qemu (DT) Call Trace: [<ffffffff800060dc>] dump_backtrace+0x1c/0x24 [<ffffffff8091ef6e>] show_stack+0x2c/0x38 [<ffffffff8092baf8>] dump_stack_lvl+0x5a/0x72 [<ffffffff8092bb24>] dump_stack+0x14/0x1c [<ffffffff8003b7ac>] __might_resched+0x104/0x10e [<ffffffff8003b7f4>] __might_sleep+0x3e/0x62 [<ffffffff8093276a>] down_write+0x20/0x72 [<ffffffff8000cf00>] __set_memory+0x82/0x2fa [<ffffffff8000d324>] __kernel_map_pages+0x5a/0xd4 [<ffffffff80196cca>] __alloc_pages_bulk+0x3b2/0x43a [<ffffffff8018ee82>] __vmalloc_node_range+0x196/0x6ba [<ffffffff80011904>] copy_process+0x72c/0x17ec [<ffffffff80012ab4>] kernel_clone+0x60/0x2fe [<ffffffff80012f62>] kernel_thread+0x82/0xa0 [<ffffffff8003552c>] kthreadd+0x14a/0x1be [<ffffffff809357de>] ret_from_fork+0xe/0x1c Bu fonksiyon apply_to_existing_page_range() ile yeniden yazılmıştır. __kernel_map_pages() tahsis edilen/tahsisatı kaldırılan sayfalarla çalıştığından ve bu sayfalar bu süre zarfında başka hiç kimse tarafından değiştirilmediğinden herhangi bir kilitleme yapılmasına gerek yoktur.
Nasıl düzeltilir
- linux linux_kernel6.1.95, 6.6.35, 6.9.6 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.7 ≤ v < 6.1.95, 6.2 ≤ v < 6.6.35, 6.7 ≤ v < 6.9.6 | 6.1.95, 6.6.35, 6.9.6 |
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.