CVE-2026-15891
Təsvir
subsys/net/lib/mqtt_sn/mqtt_sn.c faylındakı MQTT-SN klientinin keepalive handler-i olan process_ping() funksiyası, PINGREQ təkrar cəhdləri tükəndikdən sonra şlüz (gateway) qeydini silir. Funksiya SYS_SLIST_PEEK_HEAD_CONTAINER(&client->gateways, gw, next) makrosunu çağırır, lakin nəticəni nəzərə almır. Həmin makro, gw dəyişəninə mənimsətmə etməyən sadə bir ifadədir, buna görə də siyahının məzmunundan asılı olmayaraq gw öz NULL ilkin dəyərini saxlayır. Daha sonra kod NULL olan gw-ni (gw->gw_id) dereference edir və onu mqtt_sn_gw_destroy() funksiyasına ötürür ki, bu da k_mem_slab_free(&gateways, NULL) çağırışına səbəb olur. CONFIG_MEM_SLAB_POINTER_VALIDATE aktiv olduqda bu, k_panic() funksiyasını tetikləyir; standart konfiqurasiyada isə NULL göstəricisi vasitəsilə yazma əməliyyatı yerinə yetirilir ((char )mem = slab->free_list;) və slab boş siyahısı korlanır. Nəticədə sistem çökməsi/kernel panic baş verir və ya ünvan 0-ın yazıla bildiyi hədəflərdə yaddaş ayırıcısı (memory-allocator) gizli şəkildə korlanır. Həssas budaq, qoşulmuş MQTT-SN şlüzü konfiqurasiya edilmiş təkrar cəhd sayı qədər keepalive PINGREQ-lərinə cavab vermədikdə işə düşür. Bu şərt uzaq tərəf tərəfindən idarə olunur: bədxah və ya kompromisə uğramış şlüz, yaxud özünü şlüz kimi təqdim edib sonra cavab verməyi dayandıran (və ya real şlüzün PINGRESP-lərini bloklayan) on-path/adjacent hücumçu klienti bu qüsura məcbur edə bilər. MQTT-SN UDP üzərində işləyir və heç bir autentifikasiya tələb olunmur. Təsir, təsirlənmiş MQTT-SN klientinin uzaqdan tetiklenebilən xidmətdən imtina (əlçatanlıq) vəziyyətidir; hücumçu tərəfindən idarə olunan heç bir məlumat yazılmır. Oxşar silmə prosesi olan process_advertise() funksiyası SYS_SLIST_FOR_EACH_CONTAINER_SAFE istifadə edir və bu problemdən təsirlənmir. Düzəliş makronun qaytardığı dəyərin gw dəyişəninə mənimsədilməsini təmin edir.
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 | 4.1.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.