CVE-2024-26802
Təsvir
Linux kernel-də aşağıdakı zəiflik aradan qaldırılıb: stmmac: İş növbəsi məhv edilərkən dəyişən təmizlənsin Hazırda sürücü dayandırılarkən və iş növbəsi saxlanılarkən iş növbəsinin NULL olub-olmadığı yoxlanılır və əgər belədirsə, o, məhv edilir. destroy_workqueue() funksiyası növbəni boşaldır və dəyişəni təmizləyir, lakin iş növbəsi dəyişənini NULL-a təyin etmir. Bu, əgər kod işə salınmamış iş növbəsini təmizləməyə cəhd edərsə, kernel/modul panikasına səbəb ola bilər. Bu ssenari stmmac_resume() funksiyasında dayandırılmış sürücü davam etdirilərkən mümkündür, çünki uğursuz stmmac_hw_setup() üçün heç bir emal yoxdur, hansı ki, DMA mühərriki işə başlaya bilmədikdə uğursuz ola və geri qayıda bilər, iş növbəsi isə DMA mühərrikindən sonra işə salınır. Əgər DMA mühərriki işə başlaya bilməzsə, davam etdirmə normal şəkildə davam edəcək, lakin interfeys işləməyəcək və TX növbəsi nəhayət vaxt aşımına uğrayacaq, bu da 'Reset adapter' xətasına səbəb olacaq. Bu da öz növbəsində sıfırlama prosesi zamanı iş növbəsini məhv edir. Və iş növbəsi DMA mühərrikindən sonra işə salındığı və ötürülə bildiyi üçün bu, kernel/modul panikasına səbəb olacaq. Bu mümkün qəzadan qorunmaq üçün iş növbəsi məhv edilərkən iş növbəsi dəyişənini NULL-a təyin edin. Qəzadan log/geri izləmə aşağıdakı kimidir: [88.031977]------------[ cut here ]------------ [88.031985]NETDEV WATCHDOG: eth0 (sxgmac): transmit queue 1 timed out [88.032017]WARNING: CPU: 0 PID: 0 at net/sched/sch_generic.c:477 dev_watchdog+0x390/0x398 <Skipping backtrace for watchdog timeout> [88.032251]---[ end trace e70de432e4d5c2c0 ]--- [88.032282]sxgmac 16d88000.ethernet eth0: Reset adapter. [88.036359]------------[ cut here ]------------ [88.036519]Call trace: [88.036523] flush_workqueue+0x3e4/0x430 [88.036528] drain_workqueue+0xc4/0x160 [88.036533] destroy_workqueue+0x40/0x270 [88.036537] stmmac_fpe_stop_wq+0x4c/0x70 [88.036541] stmmac_release+0x278/0x280 [88.036546] __dev_close_many+0xcc/0x158 [88.036551] dev_close_many+0xbc/0x190 [88.036555] dev_close.part.0+0x70/0xc0 [88.036560] dev_close+0x24/0x30 [88.036564] stmmac_service_task+0x110/0x140 [88.036569] process_one_work+0x1d8/0x4a0 [88.036573] worker_thread+0x54/0x408 [88.036578] kthread+0x164/0x170 [88.036583] ret_from_fork+0x10/0x20 [88.036588]---[ end trace e70de432e4d5c2c1 ]--- [88.036597]Unable to handle kernel NULL pointer dereference at virtual address 0000000000000004
Necə düzəltmək olar
- linux linux_kernel5.15.151, 6.1.81, 6.6.21, 6.7.9 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 | 5.13 ≤ v < 5.15.151, 5.16 ≤ v < 6.1.81, 6.2 ≤ v < 6.6.21, 6.7 ≤ v < 6.7.9, 6.8 | 5.15.151, 6.1.81, 6.6.21, 6.7.9 |
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.