CVE-2024-26757
Təsvir
Linux nüvəsində aşağıdakı zəiflik aradan qaldırılıb: md: md_check_recovery() funksiyasında yalnız oxunan massivlərin görməzdən gəlinməməsi Adətən, əgər massiv oxuma-yazma rejimində deyilsə, md_check_recovery() ilk növbədə yeni sync_thread qeydiyyatdan keçirmir. Əgər massiv oxuma-yazma rejimindədirsə və sync_thread qeydiyyata alınıbsa, md_set_readonly() massivi yalnız oxuna bilən etməzdən əvvəl sync_thread-i qeydiyyatdan çıxaracaqdır. md/raid bu davranışı izləyir, buna görə də heç bir problem yoxdur. f52f5c71f3d4 ("md: fix stopping sync thread") komiti ilə bağlı olaraq, test shell/integrity-caching.sh tərəfindən aşağıdakı donma (hang) tetiklene bilər: 1) Massiv yalnız oxunandır. dm-raid super bloku yeniləyir: rs_update_sbs ro = mddev->ro mddev->ro = 0 -> massiv oxuma-yazma rejiminə keçirilir md_update_sb 2) Eyni zamanda yeni sync thread qeydiyyata alınır. 3) dm-raid massivi yenidən yalnız oxuna bilən rejiminə qaytarır: rs_update_sbs mddev->ro = ro 4) Massiv dayandırılır: 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-i qeydiyyatdan çıxara bilmir: md_check_recovery if (!md_is_rdwr(mddev) && !test_bit(MD_RECOVERY_NEEDED, &mddev->recovery)) return; -> -> MD_RECOVERY_RUNNING sıfırlana bilmir, nəticədə 4-cü addımda donma baş verir; Kök səbəb ondan ibarətdir ki, dm-raid 'mddev->ro'-nu müstəqil şəkildə idarə edir, lakin dm-raid massivi yalnız oxuna bilən etməzdən əvvəl həqiqətən sync thread-i dayandırmalıdır. Təəssüf ki, dm-raid-də 'mddev->ro' idarəedicisini refaktor etməzdən əvvəl daha çox kodu oxumağım lazımdır, ona görə də dm-raid reqressiyasını önləmək üçün hazırda problemi sadə üsulla düzəldək.
Necə düzəltmək olar
- linux linux_kernel6.7.7 və ya daha yeni versiya
Təsirlənən məhsullar
| Məhsul | Təsirlənən versiyalar | Düzəldildiyi versiya |
|---|---|---|
| linux linux_kernel | 4.8 ≤ v < 6.7.7, 6.8 | 6.7.7 |
Versiyanızı yoxlayın
Məhsulu seçin və istifadə etdiyiniz versiyanı yazın; versiyanın təsirlənən aralıqda olub-olmadığını görün.
Attack Surface Management
Domenlərinizə bağlı aktivləri, onlarda işləyən texnologiyaları və məlum zəiflikləri bir siyahıda görün.