CVE-2026-11368
Təsvir
Bluetooth host ATT təbəqəsi (subsys/bluetooth/host/att.c) hər bir göndərilməkdə olan ATT TX buferini statik tx_meta_data_storage[] massivi vasitəsilə ona sahib olan kanalla əlaqələndirir (data->att_chan = chan). Buferin son istinadı silindikdə, onun net-buf məhv etmə geri çağırışı tamamlanma prosesinin idarə olunmasını sistem iş növbəsinə (att_tx_destroy -> att_tx_destroy_work_handler -> att_on_sent_cb -> bt_att_sent) ötürür və burada bt_att_sent kanalın və onun ATT kontekstinin istinadını həyata keçirir (sys_slist_get(&att->reqs)). Kontroller TX yolunda hələ də ATT PDU (server bildirişi/göstərişi və ya hər hansı cavab) göndərilərkən qarşı tərəf bağlantını kəsdikdə, L2CAP l2cap_chan_del() funksiyasında kanalı ləğv edir: o, əvvəlcə bağlantının kəsilməsi geri çağırışını, sonra isə azad edilmə geri çağırışını (bt_att_released) icra edir ki, bu da kanal slab slotunu azad edir. Göndərilməkdə olan bufer kanalın öz növbəsi yox, bağlantının TX yolu tərəfindən saxlandığı üçün, onun təxirə salınmış məhv etmə işi kanal azad edildikdən sonra icra oluna bilər. Köhnəlmiş geri çağırışı ləğv etmək üçün nəzərdə tutulmuş att_on_sent_cb mühafizəsi meta->att_chan istinadını həyata keçirir, lakin bu artıq azad edilmiş (və bəlkə də yenidən istifadə edilmiş) slab slotuna yönəlmiş asılı göstəricidir (dangling pointer). ATT bağlantısı olan uzaq tərəf bunu adi ATT trafikinin ötürülməsi zamanı bağlantını kəsərək tetikləyə bilər; ATT daşıyıcısına çatmaq üçün heç bir empereqment (pairing) və ya istifadəçi qarşılıqlı əlaqəsi tələb olunmur. Nəticədə, azad edilmiş kanal yaddaşının "use-after-free" oxunması/yazılması baş verir ki, bu da Bluetooth host-unun etibarlı şəkildə çökməsinə (xidmətdən imtina) səbəb olur və kanal slab slotu yenidən istifadə edilə bildiyi üçün potensial olaraq aktiv yaddaşın korlanmasına gətirib çıxarır. Düzəliş, bt_att_released() funksiyasının kanalı azad etməzdən əvvəl hələ də kanala istinad edən hər bir tx_meta_data_storage[] elementinin att_chan sahəsini NULL etməsini təmin edir, beləliklə, təxirə salınmış mühafizə NULL göstəricisini görür və geri çağırışı ləğv edir. Həm ləğv etmə, həm də məhv etmə işi kooperativ sistem iş növbəsində icra olunduğu üçün massivin yenilənməsi ardıcıl baş verir və kilidləməyə (lock) ehtiyac qalmır.
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.