CVE-2026-19738
Təsvir
Connected Isochronous Stream (CIS) yaradılması üçün Bluetooth Link Layer Control Procedure (LLCP) tətbiqi, daha sonra host bildirişi kimi istifadə edilə bilməsi üçün bir RX düyününü (ctx->node_ref.rx, NODE_RX_TYPE_RETAIN olaraq işarələnmiş) saxlayır — periferiya cihazında Host-un LL_CIS_REQ cavabını gözləyərkən və mərkəzi cihazda lokal olaraq başladılmış CIS Create prosesinin bütün müddəti ərzində. subsys/bluetooth/controller/ll_sw/ull_llcp_cc.c faylında, llcp_rp_cc_rx() və llcp_lp_cc_rx() funksiyalarının "invalid PDU received" yolları həmin saxlanılan düyünü azad etmədən bağlantını kəsir və proseduru tamamlayırdı; bu isə llcp_lr_check_done() və llcp_rr_check_done() funksiyalarında yoxlanılan dəyişməzliyi pozur və düyünün yaddaşının yetim qalmasına səbəb olur. Radio diapazonundakı qarşı tərəf cihazı autentifikasiya olunmamış, şifrələnməmiş ACL bağlantısı üzərindən tək bir əlavə LL Control PDU ilə buna nail ola bilər. Periferiya cihazına qarşı hücum zamanı, hücumçu düzgün LL_CIS_REQ göndərir və sonra Host cavab verməzdən əvvəl hər hansı əlaqəsiz LL Control PDU (məsələn, LL_VERSION_IND) göndərir ki, bunu da ull_cp_rx() aktiv uzaq proseduruna yönləndirir. CIS Create yerinə yetirən mərkəzi cihaza qarşı zərərli periferiya cihazı CIS_REQ üçün LL_UNKNOWN_RSP ilə cavab verir və bu, aktiv lokal proseduruna ötürülür. Heç bir cütləşmə, şifrələmə və ya istifadəçi qarşılıqlı əlaqəsi tələb olunmur; kod CONFIG_BT_CTLR_PERIPHERAL_ISO və ya CONFIG_BT_CTLR_CENTRAL_ISO aktiv olduqda kompilyasiya edilir. Default build-lərdə (CONFIG_BT_CTLR_ASSERT_DEBUG standart olaraq 'y'-dir) saxlanılan düyün assertion-ı dərhal işə düşür, nəticədə kontrollerdə kritik xəta baş verir və adətən, bir injeksiya edilmiş PDU ilə sistem yenidən başladılır. Development assertion-ları deaktiv edildikdə, hər bir cəhd kontrollerin kiçik LL bildiriş hovuzundan (LL_PDU_RX_CNT, 2 * CONFIG_BT_CTLR_LLCP_CONN) bir düyünü onun memq_link_t strukturu ilə birlikdə daimi olaraq itirir; qoşulma-hücum-yenidən qoşulma dövrünün təkrarlanması hovuzu tükədir, bundan sonra bildiriş ayrılması həmişə uğursuz olur, RX axın idarəetməsi dayanır və llcp_lp_cc_flush() funksiyasındakı deaktiv edilə bilməyən LL_ASSERT_ERR() xətaya səbəb olur. Təsir yalnız əlçatanlıqla məhdudlaşır — sızan düyün yetim qalır, heç vaxt yenidən istifadə edilmir və ya ikiqat azad edilmir — bərpa üçün isə sistemin yenidən başladılması tələb olunur.
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 | 3.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.