CVE-2024-26757
Açıklama
Linux kernel içerisinde aşağıdaki güvenlik açığı giderilmiştir: md: md_check_recovery() fonksiyonunda salt okunur dizilerin yoksayılmaması Normalde dizi okuma-yazma modunda değilse, md_check_recovery() başlangıçta yeni bir sync_thread kaydetmez. Eğer dizi okuma-yazma modundaysa ve sync_thread kaydedilmişse, md_set_readonly() diziyi salt okunur yapmadan önce sync_thread kaydını siler. md/raid bu davranışı takip eder, dolayısıyla herhangi bir sorun yoktur. f52f5c71f3d4 ("md: fix stopping sync thread") commit'inden sonra, test shell/integrity-caching.sh tarafından şu askıda kalma durumu tetiklenebilir: 1) Dizi salt okunurdur. dm-raid süper bloğu günceller: rs_update_sbs ro = mddev->ro mddev->ro = 0 -> diziyi okuma-yazma olarak ayarlar md_update_sb 2) Eşzamanlı olarak yeni bir sync thread kaydedilir. 3) dm-raid diziyi tekrar salt okunur yapar: rs_update_sbs mddev->ro = ro 4) Diziyi durdurun: raid_dtr md_stop stop_sync_thread set_bit(MD_RECOVERY_INTR, &mddev->recovery); md_wakeup_thread_directly(mddev->sync_thread); wait_event(..., !test_bit(MD_RECOVERY_RUNNING, &mddev->recovery)) 5) Sync thread tamamlanır: md_do_sync set_bit(MD_RECOVERY_DONE, &mddev->recovery); md_wakeup_thread(mddev->thread); 6) Daemon thread, sync thread kaydını silemez: md_check_recovery if (!md_is_rdwr(mddev) && !test_bit(MD_RECOVERY_NEEDED, &mddev->recovery)) return; -> -> MD_RECOVERY_RUNNING temizlenemez, bu nedenle adım 4 askıda kalır; Kök neden, dm-raid'in 'mddev->ro' değerini kendi başına yönetmesidir; ancak dm-raid aslında diziyi salt okunur yapmadan önce sync thread'i durdurmalıdır. Maalesef, dm-raid içindeki 'mddev->ro' işleyicisini yeniden yapılandırmadan önce daha fazla kod incelemem gerekiyor, bu nedenle dm-raid regresyonunu önlemek için şimdilik sorunu kolay yoldan çözelim.
Nasıl düzeltilir
- linux linux_kernel6.7.7 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 | 4.8 ≤ v < 6.7.7, 6.8 | 6.7.7 |
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.