CVE-2026-10663
Təsvir
Zephyr-in eksperimental USB host stekində (CONFIG_USB_HOST_STACK), usbh_device_disconnect() (subsys/usb/host/usbh_device.c) funksiyası keşlənmiş ctx->root göstəricisini təmizləmədən kök usb_device slab obyektini azad edirdi. Bus silinmə idarəçisi olan dev_removed_handler() (subsys/usb/host/usbh_core.c) nəyin söküləcəyinə yalnız ctx->root əsasında qərar verir və sadəcə onun NULL olmadığını yoxlayır. UHC kontroller drayverləri (məsələn, uhc_max3421e, uhc_mcux_common) UHC_EVT_DEV_REMOVED hadisəsini heç bir debounce və ya vəziyyət qoruması olmadan birbaşa fiziki şin xəttinin vəziyyətindən sintez etdiyi üçün, fiziki USB girişinə malik hücumçu (və ya bağlantısını kəsib bərpa edən zərərli cihaz) kök cihazın ayrılmasından sonra ikinci bir cihaz-silindi (device-removed) hadisəsi yarada bilər. Bu zaman idarəçi, asılı qalmış göstərici ilə yenidən usbh_device_disconnect() funksiyasına daxil olur, azad edilmiş obyekt daxilindəki mutex-i kilidləyir (use-after-free), azad edilmiş düyünü cihaz siyahısından silir və artıq azad edilmiş blok üzərində k_mem_slab_free() funksiyasını çağırır (double-free). Əgər bu arada slab bloku yeni qoşulmuş cihaza təyin edilibsə, bu, aktiv obyekti korlayır. Təsir xidmətdən imtina (çökmə) və yaddaşın korlanmasıdır; hücum vektoru fiziki/lokaldır. Bu çatışmazlıq v4.4.0 versiyasında connect/disconnect refaktorlaşdırılması zamanı yaranmışdır və usbh_device_disconnect() funksiyasında azad etməzdən əvvəl ctx->root göstəricisinin təmizlənməsi ilə düzəldilmişdir.
Necə düzəltmək olar
- zephyrproject zephyr4.5.0 və ya daha yeni versiya
Təsirlənən məhsullar
| Məhsul | Təsirlənən versiyalar | Düzəldildiyi versiya |
|---|---|---|
| zephyrproject zephyr | 4.4.0 ≤ v < 4.5.0 | 4.5.0 |
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.