CVE-2026-15894
Təsvir
subsys/bluetooth/mesh/solicitation.c faylındakı Bluetooth Mesh On-Demand Private Proxy solicitation handleri, mənbə uzunluğunu məhdudlaşdırmadan qəbul edilmiş Solicitation PDU-nu sabit 17 baytlıq stek buferinə kopyalayır. sol_pdu_decrypt() funksiyasında out dəyişəni NET_BUF_SIMPLE(17) olaraq ayrılır və sonra net_buf_simple_add_mem(out, in->data, in->len) ilə doldurulur; net_buf_simple_add() funksiyası öz son boşluğunu yalnız istehsalat versiyalarında (production builds) tərtib edilməyən __ASSERT_NO_MSG ilə qoruyur, buna görə də in->len > 17 olduqda altda yatan memcpy hücumçunun idarə etdiyi baytları 17 baytlıq stek buferindən kənara yazır. Kopyalama hər hansı dekripsiya və ya autentifikasiyadan əvvəl baş verdiyi üçün bunu tetikləmək üçün heç bir açar materialı tələb olunmur. Həddindən artıq böyük uzunluq ondan qaynaqlanır ki, subsys/bluetooth/mesh/adv.c faylındakı mesh scan callback-i bt_mesh_sol_recv() funksiyasına yönləndirmədən əvvəl net_buf_simple_restore() funksiyasını çağırır və beləliklə, buf->len yalnız Solicitation Service Data-nı deyil, bütün qalan reklam yükünü (advertising payload) əhatə edir. Parser Service Data AD-ni tapdıqdan və Identification Type baytını istifadə etdikdən sonra, qalan buf->len 17 oktetlik Network PDU və hər hansı sonuncu reklam baytlarından ibarət olur və bu düzəlişdən əvvəl maksimum uzunluq yoxlaması mövcud deyildi (yalnız minimum yoxlanılırdı). Buna görə də, hücumçu buf->len-in 17-ni aşması üçün Solicitation Service Data-dan sonra əlavə AD strukturları və ya dolğu (padding) əlavə edə bilər. bt_mesh_scan_cb() birbaşa BLE scan callback kimi qeydiyyatdan keçirilir, ona görə də buf efirdən qəbul edilmiş xam, autentifikasiya olunmamış reklam məlumatıdır. Radio diapazonunda olan hər hansı cihaz, CONFIG_BT_MESH_OD_PRIV_PROXY_SRV aktiv edilmiş və hazırda sorğulanmağa uyğun olan (GATT proxy deaktiv, On-Demand Private Proxy aktiv) bir qovşağa heç bir qoşulma (pairing), bağlama (bonding) və ya provizioning olmadan, hazırlanmış mesh Proxy Solicitation ehtiva edən qeyri-qoşula bilən (non-connectable) reklam göndərə bilər. Nəticə hücumçu tərəfindən idarə olunan stek üzərinə yazılmadır ki, bu da ehtimal ki, uzaqdan kodun icrasına və minimum dərəcədə etibarlı uzaqdan xidmətdən imtinaya səbəb ola bilər. Düzəliş, dekripsiyadan əvvəl buf->len-i spesifikasiyada təyin olunmuş 17 oktetə qədər kəsir (əgər daha az qalıbsa, PDU-nu silir).
Necə düzəltmək olar
- zephyrproject zephyr4.4.2 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.4.2 | 4.4.2 |
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.