CVE-2024-58238
Təsvir
Linux kernel-də aşağıdakı zəiflik aradan qaldırılmışdır: Bluetooth: btnxpuart: Enerji qənaəti stres testində TX timeout xətasının həlli Bu, btnxpuart üçün bir neçə saat ərzində stres testi keçirilərkən ortaya çıxan və iki HCI əmri arasındakı intervalın enerji qənaəti timeout dəyəri olan 2 saniyə ilə üst-üstə düşdüyü hallarda baş verən tx timeout problemini düzəldir. Bash skriptindən istifadə edərək test proseduru: <load btnxpuart.ko> hciconfig hci0 up //Enerji Qənaəti funksiyasını aktivləşdirin hcitool -i hci0 cmd 3f 23 02 00 00 while (true) do hciconfig hci0 leadv sleep 2 hciconfig hci0 noleadv sleep 2 done Bir neçə debug çapı əlavə edildikdən sonra xəta loqu: Bluetooth: btnxpuart_queue_skb(): 01 0A 20 01 00 Bluetooth: hci0: Set UART break: on, status=0 Bluetooth: hci0: btnxpuart_tx_wakeup() tx_work scheduled Bluetooth: hci0: btnxpuart_tx_work() dequeue: 01 0A 20 01 00 Can't set advertise mode on hci0: Connection timed out (110) Bluetooth: hci0: command 0x200a tx timeout Enerji qənaəti mexanizmi UART break-i aktiv etdikdə və eyni zamanda btnxpuart_tx_work() planlaşdırıldıqda, psdata->ps_state PS_STATE_AWAKE kimi oxunur ki, bu da UART break-i söndürməyə cavabdeh olan psdata->work-un planlaşdırılmasının qarşısını alır. Bu problem, UART break-in açılıb-bağlanması, həmçinin ps_state oxuma/yazma əməliyyatları ətrafına ps_lock mutex-nin əlavə edilməsi ilə həll edilmişdir. Artıq btnxpuart_tx_wakeup() yenilənmiş ps_state dəyərini oxuyacaq. Əgər ps_state PS_STATE_SLEEP olarsa, o, əvvəlcə psdata->work-u planlaşdıracaq, daha sonra UART break söndürüldükdən və ps_state PS_STATE_AWAKE olduqdan sonra özünü yenidən planlaşdıracaq. Yuxarıdakı skript 50,000 iterasiya boyunca test edilmişdir və TX timeout xətasına rast gəlinməmişdir.
Necə düzəltmək olar
- linux linux_kernel6.6.49, 6.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 | 6.4 ≤ v < 6.6.49, 6.7 ≤ v < 6.9 | 6.6.49, 6.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.