CVE-2026-98342
Təsvir
Linux kernel-də aşağıdakı zəiflik aradan qaldırılıb: dmaengine: dma_device azad edilməzdən əvvəl RCU oxucularının gözlənilməsi dma_issue_pending_all() funksiyası rcu_read_lock() altında list_for_each_entry_rcu() vasitəsilə dma_device_list siyahısını gəzir. dma_device_release() funksiyası cihazı list_del_rcu() ilə siyahıdan çıxarır və sonra device->device_release() funksiyasını çağırır (bir çox drayverlərdə, məsələn plx_dma.c faylında, bu birbaşa kfree() funksiyasını çağırır). Cihazın siyahıdan çıxarılması və onun yaddaşdan silinməsi arasında lütf periodu (grace period) olmadığı üçün, dma_issue_pending_all() funksiyasındakı eyni vaxtda işləyən RCU oxucuları cihaz azad edildikdən sonra ona müraciət edə bilər. Kilidsiz gəzinti əvvəlcə müştərilərin təminatçı modulunu və buna görə də cihazı onlar siyahını gəzdiyi müddətcə sabit saxlamaq üçün dmaengine istinadına malik olmasına əsaslanırdı. 8ad342a86359 nömrəli commit ("dmaengine: Add reference counting to dma_device struct") dma_device ömrünü modul istinadından ayırdı, beləliklə artıq oxucu hələ də siyahını gəzərkən cihaz azad edilə bilər. Cihaz azad edilməzdən əvvəl synchronize_rcu() əlavə edildi ki, bununla da RCU oxucularının işini bitirdiyi təmin olunsun. Bunu şərtsiz saxlayın: device_release() funksiyasını tətbiq etməyən təminatçılar dma_async_device_unregister() geri döndükdən sonra cihazı özləri azad edirlər. Bu çağırış dma_list_mutex tutulmuş halda lütf periodu boyunca gecikdiriləcək ki, bu da təhlükəsizdir və yalnız sökülmə yolu (teardown path) gecikir.
Necə düzəltmək olar
- Linux Linuxac8ce9f89638d6d79875cca7d8ae42566a9bde15, 14578c78405d51fa92e4ada4502a45f537c0fcb8, cbb3310a5167e868a5e763e32b9a23b4d50669ee, 8577a5ec4f7e00443015ef99f646def093121a1b, 4448a539a0c39141cccc67be6cacde0f35024313, fc1f4884f1d46fc7a8cee6e2997ecc9e8d1c7f77, 4aed7e47a10b94ea3c5171e8d1382081accd2e03, dc750422170a563c7a81f6e49d36bb02c62ae37f və ya daha yeni versiya
Təsirlənən məhsullar
| Məhsul | Təsirlənən versiyalar | Düzəldildiyi versiya |
|---|---|---|
| Linux Linux | 2ba05622b8b143b0c95968ba59bddfbd6d2f2559 ≤ v < ac8ce9f89638d6d79875cca7d8ae42566a9bde15, 2ba05622b8b143b0c95968ba59bddfbd6d2f2559 ≤ v < 14578c78405d51fa92e4ada4502a45f537c0fcb8, 2ba05622b8b143b0c95968ba59bddfbd6d2f2559 ≤ v < cbb3310a5167e868a5e763e32b9a23b4d50669ee, 2ba05622b8b143b0c95968ba59bddfbd6d2f2559 ≤ v < 8577a5ec4f7e00443015ef99f646def093121a1b, 2ba05622b8b143b0c95968ba59bddfbd6d2f2559 ≤ v < 4448a539a0c39141cccc67be6cacde0f35024313, 2ba05622b8b143b0c95968ba59bddfbd6d2f2559 ≤ v < fc1f4884f1d46fc7a8cee6e2997ecc9e8d1c7f77, 2ba05622b8b143b0c95968ba59bddfbd6d2f2559 ≤ v < 4aed7e47a10b94ea3c5171e8d1382081accd2e03, 2ba05622b8b143b0c95968ba59bddfbd6d2f2559 ≤ v < dc750422170a563c7a81f6e49d36bb02c62ae37f, 2.6.29 | ac8ce9f89638d6d79875cca7d8ae42566a9bde15, 14578c78405d51fa92e4ada4502a45f537c0fcb8, cbb3310a5167e868a5e763e32b9a23b4d50669ee, 8577a5ec4f7e00443015ef99f646def093121a1b, 4448a539a0c39141cccc67be6cacde0f35024313, fc1f4884f1d46fc7a8cee6e2997ecc9e8d1c7f77, 4aed7e47a10b94ea3c5171e8d1382081accd2e03, dc750422170a563c7a81f6e49d36bb02c62ae37f |
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.