CVE-2026-10685
Açıklama
Zephyr Bluetooth GATT istemcisi CCC yazma yanıtı işleyicisi gatt_write_ccc_rsp() (subsys/bluetooth/host/gatt.c içinde), params->notify(conn, params, NULL, 0) çağrısını zaten yaptıktan sonra uygulamanın params->subscribe() geri çağrısını çağırıyordu. Genel GATT API'sine göre, NULL veriyle yapılan bir notify geri çağrısı, aboneliğin sona erdiğinin ve bt_gatt_subscribe_params yapısının uygulama tarafından serbest bırakılabileceğinin veya yeniden kullanılabileceğinin belgelenmiş işaretidir; yapı üzerinde bundan sonra subscribe() çağrılması, serbest bırakıldıktan sonra kullanım (use-after-free) anlamına gelir; buna serbest bırakılan params->subscribe fonksiyon işaretçisi üzerinden dolaylı çağrı da dahildir. Hata dalına uzaktan (komşu) erişilebilir: GATT istemcisi olarak hareket eden ve bt_gatt_subscribe() çağıran bir Zephyr cihazı, bağlı bir GATT sunucu eşi CCC yazmasına bir ATT Error Response ile yanıt verdiğinde bu sıralamaya sürüklenebilir (eş tarafından sağlanan hata kodu att_error_rsp -> att_handle_rsp üzerinden gatt_write_ccc_rsp içine akar). Abonelik parametrelerini bildirim-sonlandırma işleyicilerinde serbest bırakan veya geri dönüştüren uygulamalar için bu durum bellek bozulmasına, çökmeye (hizmet reddi) veya potansiyel olarak saldırgan etkisindeki denetim akışına yol açar. Düzeltme, işleyiciyi yeniden sıralayarak subscribe() geri çağrısının hem hata hem de abonelikten çıkma yollarında sonlandırıcı notify(NULL) çağrısından önce çalışmasını sağlar.
Nasıl düzeltilir
- zephyrproject zephyr4.5.0 ya da sonraki bir sürüm
Etkilenen ürünler
| Ürün | Etkilenen sürümler | Düzeltildiği sürüm |
|---|---|---|
| zephyrproject zephyr | 2.4.0 ≤ v < 4.5.0 | 4.5.0 |
Sürümünüzü kontrol edin
Ürünü seçin ve kullandığınız sürümü yazın; sürümün etkilenen aralıkta olup olmadığını görün.
Attack Surface Management
Alan adlarınıza bağlı varlıkları, bu varlıklarda çalışan teknolojileri ve bilinen zafiyetleri tek listede görün.