CVE-2024-26671
Təsvir
Linux kernel-də aşağıdakı zəiflik aradan qaldırılıb: blk-mq: sbitmap oyanma yarışı (race condition) səbəbindən yaranan IO donmasının düzəldilməsi blk_mq_mark_tag_wait() funksiyasında, drayver teqi (driver tag) alınmadıqda, __add_wait_queue() funksiyası növbəti blk_mq_get_driver_tag() ilə yenidən sıralana bilər. Bu zaman __sbitmap_queue_wake_up() funksiyasında waitqueue_active() blk_mq_mark_tag_wait()-də əlavə edilmiş gözləyicini görməyə bilər və heç kimi oyatmaz, eyni zamanda blk_mq_mark_tag_wait() drayver teqini uğurla ala bilmir. Bu problem aşağıdakı testi dövr şəklində işlətməklə təkrar istehsal edilə bilər və mənim noutbukumdakı test VM-də işlədilərkən 30 dəqiqədən az müddət ərzində fio donması müşahidə oluna bilər: modprobe -r scsi_debug modprobe scsi_debug delay=0 dev_size_mb=4096 max_queue=1 host_max_queue=1 submit_queues=4 dev=`ls -d /sys/bus/pseudo/drivers/scsi_debug/adapter*/host*/target*/*/block/* | head -1 | xargs basename` fio --filename=/dev/"$dev" --direct=1 --rw=randrw --bs=4k --iodepth=1 \ --runtime=100 --numjobs=40 --time_based --name=test \ --ioengine=libaio Problem, blk_mq_mark_tag_wait() funksiyasına bir aşkar baryer (explicit barrier) əlavə etməklə həll edilmişdir ki, bu da teqlər bitdikdə tamamilə uyğundur.
Necə düzəltmək olar
- linux linux_kernel4.19.307, 5.4.269, 5.10.210, 5.15.149, 6.1.77, 6.7.4 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 | v < 4.19.307, 4.20 ≤ v < 5.4.269, 5.5 ≤ v < 5.10.210, 5.11 ≤ v < 5.15.149, 5.16 ≤ v < 6.1.77, 6.2 ≤ v < 6.7.4 | 4.19.307, 5.4.269, 5.10.210, 5.15.149, 6.1.77, 6.7.4 |
| debian debian_linux | 10.0 | — |
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.