CVE-2026-68173
Təsvir
Linux nüvəsində aşağıdakı zəiflik aradan qaldırılmışdır: ublk: ub->completion əvəzinə ublk_dev_ready() funksiyasının gözlənilməsi ub->completion yalnız uğurlu START_USER_RECOVERY tərəfindən yenidən aktivləşdirilir. Əgər ublk serveri bunu etmədən END_USER_RECOVERY göndərsə - məsələn, onun START prosesi -EBUSY ilə uğursuz olduqda və xəta nəzərə alınmadıqda - gözləmə şərti əvvəlki bərpa dövrünün köhnəlmiş tamamlanması ilə ödənilir, cihaz LIVE olaraq işarələnir və FETCH axını hələ də davam edərkən və ubq->canceling hələ də təyin olunmuş halda olarkən requeue siyahısı başladılır. Bu başlama əməliyyatı əvvəllər növbəyə alınmış sorğunu yenidən yönləndirir, __ublk_queue_rq_common() funksiyası ->canceling statusunu görür və onu __ublk_abort_rq() vasitəsilə yenidən park edir və sonuncu FETCH ->canceling statusunu təmizlədikdən sonra heç nə requeue siyahısını yenidən başlatmır: sorğu öz teqi ilə orada ilişib qalır. Əgər bu, flush mexanizminin flush_rq-sı olarsa, növbəti hər bir fsync kəsilə bilməyən yuxuda toplanır və sökülmə prosesi teqlərin boşaldılması zamanı donur. Bu, daemon çökməsindən sonra bərpa zamanı ublk üzərində ext4 ilə itirilmiş PREFLUSH hesabatına uyğundur. ub->completion, "hər bir növbə bütün I/O əmrlərini götürmüşdür" səviyyə şərtinin proksisi kimi istifadə edilən kənar tetikleməli (edge-triggered) kiliddir ki, bu şərt geri çəkilə bilər (F_BATCH-in UNPREP-i, daemon ölümü) və onun yenidən aktivləşdirilməsi ötürülə bilər. Onu ləğv edin və bunun əvəzinə real şərti gözləyin: yeni ublk_wait_dev_ready_and_lock() köməkçi funksiyası wait_var_event_interruptible() vasitəsilə ublk_dev_ready()-ni gözləyir, ublk_mark_io_ready() tərəfindən oyadılır, sonra ub->mutex altında onu yenidən yoxlayır, geri çəkilmə zamanı yenidən gözləyir və mutex tutulmuş və hazırlıq təmin edilmiş halda geri dönür. Hazırlıq statusu, sonuncu növbənin ->canceling statusunu təmizləyən eyni ub->mutex kritik bölməsində doğru olur, beləliklə END_USER_RECOVERY cihazı yalnız ->canceling təmizləndikdən sonra LIVE olaraq işarələyir və requeue siyahısını başladır. Gözləmə kəsilə bilən (interruptible) olaraq qalır, beləliklə daemon-u ölmüş serverə hələ də siqnal göndərmək mümkündür. ublk_ctrl_start_dev() üçün bu, F_BATCH ready->UNPREP geri çəkilməsi zamanı sürətli -EINVAL xətasını cihaz yenidən hazır olana qədər gözləmə ilə əvəzləyir.
Necə düzəltmək olar
- Linux Linux7dd26adf7e7d482af524e3a0cca4a81ef7c159d0, 8f188dd11a1c2ad94caeaee36ef68bb8221d4a12, 432a9b2780c0a01caf547bd1fc2fcf28aeb8d173, 6.15 və ya daha yeni versiya
Təsirlənən məhsullar
| Məhsul | Təsirlənən versiyalar | Düzəldildiyi versiya |
|---|---|---|
| Linux Linux | 728cbac5fe219d3b8a21a0688a08f2b7f8aeda2b ≤ v < 7dd26adf7e7d482af524e3a0cca4a81ef7c159d0, 728cbac5fe219d3b8a21a0688a08f2b7f8aeda2b ≤ v < 8f188dd11a1c2ad94caeaee36ef68bb8221d4a12, 728cbac5fe219d3b8a21a0688a08f2b7f8aeda2b ≤ v < 432a9b2780c0a01caf547bd1fc2fcf28aeb8d173, 42ea64e01c96e594fb4f80c54dfe4f934d008a6e, 6.14.6 ≤ v < 6.15, 6.15 | 7dd26adf7e7d482af524e3a0cca4a81ef7c159d0, 8f188dd11a1c2ad94caeaee36ef68bb8221d4a12, 432a9b2780c0a01caf547bd1fc2fcf28aeb8d173, 6.15 |
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.