CVE-2026-72121
Təsvir
Linux kernel-də aşağıdakı zəiflik aradan qaldırılıb: can: bcm: filtr və taymer dəyərləri yenilənərkən kilidləmə əlavə edildi Gələn CAN trafiki zamanı bcm_rx_handler(), bcm_rx_timeout_handler() və ya bcm_rx_thr_handler() funksiyaları eyni vaxtda işləyərkən, taymer və filtr məzmunu yeniləndiyi zaman bcm_rx_setup()-da üzərinə yazıla bilən taymer dəyərlərinə eyni vaxtda giriş KCSAN tərəfindən aşkar edilmişdir. bcm_rx_setup()-da taymer (ival1/ival2/kt_ival1/kt_ival2/kt_lastmsg) və filtr (nframes/flags/frames/last_frames) yeniləmələri yeni per-op bcm_rx_update_lock ilə qorunur və bu kilid RX handler-lərində müvafiq sahədə götürülür. memcpy_from_msg() funksiyası yuxulma ehtimalı olduğu üçün və spinlock altında işləməməli olduğu üçün kilid götürülməzdən əvvəl müvəqqəti buferə köçürülür. hrtimer_cancel() həmişə bcm_rx_update_lock olmadan çağırılır, çünki bcm_rx_timeout_handler()/bcm_rx_thr_handler() eyni kilidi götürür və əks halda işləyən geri çağırma (callback) ləğvedici ilə qarşılıqlı bloklanmaya (deadlock) səbəb ola bilərdi. Həmçinin əlaqəli bir yarış şərti (race condition) aradan qaldırıldı: bcm_rx_setup() saxlanılan cavab freyminin can_id-də RTR bayrağını, freym məzmunu artıq quraşdırıldıqdan sonra ayrıca, qorumasız bir addımla təmizləyirdi, buna görə də eyni vaxtda işləyən bcm_rx_handler() CAN_RTR_FLAG hələ də təyin edilmiş köhnə cavabı ötürə bilərdi. Bu normallaşdırma ilkin freym hazırlığına daxil edildi (yeniləmələr üçün müvəqqəti buferdə, yeni op-lar üçün qeydiyyatdan keçirməzdən əvvəl birbaşa op->frames-də), beləliklə quraşdırılmış freym həmişə atomik olaraq özü ilə uyğun olur. bcm_rx_handler()-in RX_RTR_FRAME yoxlaması indi bcm_can_tx()-i çağırıb çağırmamağa qərar verməzdən əvvəl op->flags-in kilidlə qorunan anlıq görüntüsünü (snapshot) götürür, lakin həmin çağırış boyunca kilidi saxlamır. Həmçinin, bcm_tx_setup()-dakı məzmun yeniləmələri tərəfindən qismən üzərinə yazılmanın qarşısını almaq üçün bcm_can_tx()-də currframe-in kilidlə qorunan anlıq görüntüsü götürülür. Sonda, bcm_can_tx()-də iki kilidli bölmə arasında TX_RESET_MULTI_IDX/SETTIMER-in op->currframe-i sıfırlayıb-sıfırlamadığı yoxlanılır. bcm_rx_thr_handler()-də sıfır intervalı ilə hrtimer_forward() çağırışı çıxarıldı. Bu taymeri ləğv etməzdən əvvəl kt_ival2 bcm_rx_setup() tərəfindən eyni vaxtda təmizlənmiş ola bilər, ona görə də kt_ival2 bcm_rx_update_lock daxilində yoxlanılır.
Necə düzəltmək olar
- Linux Linux96994180bd7b248b0cc698afe926e23fc1bda59b, caa8704a7f3cb7806331596195385437126ecb3a, a7c369e7da8203e2b5be12bbcac7b9ab2ed5b658, a7eb6db1cd3f7b556a301dc1265945ad112089f7, 834cbca3b12e46887f7a9b35f1981a888360ea4c, 19b1994069dd29478ba767de1f98f14a088198dc, fc9f5ee1b073bd233d9c604e338af4ebb42cbc33, 749179c2e25b95d22499ed29096b3e02d6dfd2b4, 5.10.265, 5.15.216, 6.1.183, 6.6.148, 6.12.101, 5.5, 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 | 7595de7bc56e0e52b74e56c90f7e247bf626d628 ≤ v < 96994180bd7b248b0cc698afe926e23fc1bda59b, fbd8fdc2b218e979cfe422b139b8f74c12419d1f ≤ v < caa8704a7f3cb7806331596195385437126ecb3a, 2a437b86ac5a9893c902f30ef66815bf13587bf6 ≤ v < a7c369e7da8203e2b5be12bbcac7b9ab2ed5b658, 76c84c3728178b2d38d5604e399dfe8b0752645e ≤ v < a7eb6db1cd3f7b556a301dc1265945ad112089f7, cc55dd28c20a6611e30596019b3b2f636819a4c0 ≤ v < 834cbca3b12e46887f7a9b35f1981a888360ea4c, c2aba69d0c36a496ab4f2e81e9c2b271f2693fd7 ≤ v < 19b1994069dd29478ba767de1f98f14a088198dc, c2aba69d0c36a496ab4f2e81e9c2b271f2693fd7 ≤ v < fc9f5ee1b073bd233d9c604e338af4ebb42cbc33, c2aba69d0c36a496ab4f2e81e9c2b271f2693fd7 ≤ v < 749179c2e25b95d22499ed29096b3e02d6dfd2b4, 8f1c022541bf5a923c8d6fa483112c15250f30a4, c4e8a172501e677ebd8ea9d9161d97dc4df56fbd, 5.10.238 ≤ v < 5.10.265, 5.15.185 ≤ v < 5.15.216, 6.1.141 ≤ v < 6.1.183, 6.6.93 ≤ v < 6.6.148, 6.12.31 ≤ v < 6.12.101, 5.4.294 ≤ v < 5.5, 6.14.9 ≤ v < 6.15, 6.15 | 96994180bd7b248b0cc698afe926e23fc1bda59b, caa8704a7f3cb7806331596195385437126ecb3a, a7c369e7da8203e2b5be12bbcac7b9ab2ed5b658, a7eb6db1cd3f7b556a301dc1265945ad112089f7, 834cbca3b12e46887f7a9b35f1981a888360ea4c, 19b1994069dd29478ba767de1f98f14a088198dc, fc9f5ee1b073bd233d9c604e338af4ebb42cbc33, 749179c2e25b95d22499ed29096b3e02d6dfd2b4, 5.10.265, 5.15.216, 6.1.183, 6.6.148, 6.12.101, 5.5, 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.