CVE-2026-43250
Təsvir
Linux nüvəsində aşağıdakı zəiflik aradan qaldırılıb: usb: chipidea: udc: _ep_nuke() funksiyasında DMA və SG təmizlənməsi düzəldildi USB cihazı aktiv ötürmə zamanı qoşulmadan ayrıldıqdan sonra yenidən qoşulduqda, ChipIdea UDC drayveri "not page aligned sg buffer" xətaları ilə qarşılaşa bilər. Bu, _ep_nuke() funksiyasının DMA buferlərini düzgün şəkildə unmap etmədən və ya scatter-gather bounce buferlərini təmizləmədən sorğuları gadget təbəqəsinə qaytarması səbəbindən baş verir. Kök səbəb: Çox seqmentli DMA ötürməsi zamanı qoşulma kəsildikdə, sorğunun num_mapped_sgs sahəsi və sgt.sgl göstəricisi köhnəlmiş dəyərlərlə qalır. Sorğu -ESHUTDOWN statusu ilə gadget drayverinə qaytarılır, lakin hələ də aktiv DMA vəziyyətinə malikdir. Əgər gadget drayveri yenidən qoşulma zamanı bu sorğunu yenidən başlatmadan istifadə edərsə, köhnəlmiş DMA vəziyyəti _hardware_enqueue() funksiyasının DMA mapping prosesini ötürünməsinə (sıfırdan fərqli num_mapped_sgs gördüyü üçün) və azad edilmiş/yanlış DMA ünvanlarını istifadə etməyə çalışmasına səbəb olur ki, bu da hizalama xətalarına və potensial yaddaş korlanmasına gətirib çıxarır. _hardware_dequeue() vasitəsilə normal tamamlanma yolu, sorğunu qaytarmazdan əvvəl usb_gadget_unmap_request_by_dev() və sglist_do_debounce() funksiyalarını düzgün çağırır. Sorğuların təmiz və yenidən istifadə edilə bilən vəziyyətdə qaytarılmasını təmin etmək üçün _ep_nuke() yolu da eyni təmizlik prosesini yerinə yetirməlidir. Həll: _hardware_dequeue() funksiyasındakı təmizlik ardıcıllığını təkrarlamaq üçün _ep_nuke() funksiyasına DMA unmapping və bounce buferi təmizlənməsi əlavə edildi: - Əgər num_mapped_sgs təyin edilibsə, usb_gadget_unmap_request_by_dev() çağırılsın - Bounce buferi mövcudursa, copy=false parametri ilə sglist_do_debounce() çağırılsın Bu, son nöqtənin (endpoint) bağlanması səbəbindən sorğular qaytarıldıqda onların köhnəlmiş DMA mapping-lərini saxlamamasını təmin edir. sglist_do_debounce() funksiyasına ötürülən 'false' parametri məlumatların geri kopyalanmasının qarşısını alır (ötürmənin ləğv edildiyi bağlanma yolu üçün uyğundur).
Necə düzəltmək olar
- linux linux_kernel6.12.75, 6.18.16, 6.19.6 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 | 2.6.29 ≤ v < 6.12.75, 6.13 ≤ v < 6.18.16, 6.19 ≤ v < 6.19.6 | 6.12.75, 6.18.16, 6.19.6 |
| microsoft azl3_kernel_6.6.137.1-2 | Aralıq göstərilməyib | — |
| microsoft azl3_kernel_6.6.138.1-1 | Aralıq göstərilməyib | — |
| microsoft azl3_kernel_6.6.141.1-1 | Aralıq göstərilməyib | — |
| microsoft azl3_kernel_6.6.143.1-1 | Aralıq göstərilməyib | — |
| microsoft azl3_kernel_6.6.144.1-1 | Aralıq göstərilməyib | — |
| microsoft azl3_kernel_6.6.145.2-1 | Aralıq göstərilməyib | — |
| microsoft azl3_kernel_6.6.157.1-1 | Aralıq göstərilməyib | — |
| microsoft azl3_kernel_6.6.139.1-1 | Aralıq göstərilməyib | — |
| microsoft azl3_kernel_6.6.150.1-1 | Aralıq göstərilməyib | — |
| microsoft azl3_kernel_6.6.152.1-1 | Aralıq göstərilməyib | — |
| microsoft azl3_kernel_6.6.159.1-1 | Aralıq göstərilməyib | — |
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.