- Yama var
- Son 7 gün
- CWE-772
CVE-2026-81039
Zephyr Bluetooth Host'ta çoklu reklam setlerinde bağlantı rezervasyonu sızıntısı nedeniyle hizmet dışı kalma
- Yayımlandı
- Güncellendi
- 26 Eki 2026
- Açık yaşı
- 1 gün
- Kaydı açan
- zephyr
ÖzetTürkçe
Bluetooth Host, başlattığı her bağlanabilir reklam seti için sabit acl_conns[] havuzundan bir bt_conn nesnesi ("rezervasyon") önceden ayırır. Gelen bir çevresel bağlantı tamamlandığında, find_pending_connect fonksiyonu bu rezervasyonu yalnızca kimlik ve eş adresi kullanarak arar; hangi reklam setinin sonlandığını bilmez. CONFIG_BT_EXT_ADV_MAX_ADV_SET değeri 1'den büyük olduğunda bu arama, sonlanan setin değil, farklı ve hâlâ çalışan bir reklam setinin rezervasyonunu döndürebilir. Aynı kimlik üzerinde biri yönlendirilmemiş, biri bir P eşine yönlendirilmiş iki bağlanabilir genişletilmiş reklam seti çalıştıran uygulamalarda, P adresine eşleşen uzak bir başlatıcı yönlendirilmemiş setten bağlandığında, yönlendirilmiş setin rezervasyonu tüketilebilir. Bu durumda yönlendirilmiş setin rezervasyonu sahipsiz kalır ve bt_le_ext_adv_stop bu nesneyi serbest bırakmadan döner. Her olay, bt_disable çağrılana veya cihaz yeniden başlatılana kadar bir CONFIG_BT_MAX_CONN yuvasını kalıcı olarak tüketir. Saldırgan bu diziyi tekrarlayarak havuzu tüketebilir; bundan sonra bağlanabilir reklam -ENOMEM hatasıyla başarısız olur ve cihaz yeni bağlantı kabul edemez. Ayrıca, yönlendirilmiş set rezervasyonsuz reklam yapmaya devam eder ve meşru bir bağlantı bt_hci_disconnect tarafından düşürülebilir. Etki yalnızca erişilebilirlik üzerinedir; bellek bozulması veya bilgi ifşası yoktur. Tek reklam seti yapılandırmaları etkilenmez. Saldırı vektörü AV:A (bitişik ağ), karmaşıklık AC:L, ayrıcalık gerektirmez PR:N ve kullanıcı etkileşimi gerektirmez UI:N. CVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L vektörüyle 4.3 (ORTA) puan alır. Sorun, sürüm 2.3.0 ile 4.5.0 öncesi sürümleri etkiler ve 4.5.0 sürümünde giderilmiştir. Zayıflık türü: CWE-772 (Kaynak serbest bırakılmadan kaynak sızıntısı).
Kaynaktaki açıklama (İngilizce)
The Bluetooth host pre-allocates a bt_conn object (a "reservation") from the fixed acl_conns[] pool for every connectable advertising set it starts, in le_adv_start_add_conn() in subsys/bluetooth/host/adv.c. When an incoming peripheral connection completes, find_pending_connect() in subsys/bluetooth/host/hci_core.c looked that reservation up using only the identity and the peer address, with a directed-then-undirected fallback, and had no knowledge of which advertising set actually terminated. With CONFIG_BT_EXT_ADV_MAX_ADV_SET > 1, where the LE Enhanced Connection Complete event is cached until the LE Advertising Set Terminated event identifies the set, this lookup can return the reservation belonging to a different, still-running advertising set.
The defect is reachable over the air by any adjacent device. If an application runs two connectable extended advertising sets on the same identity — one undirected and one directed at a peer P (the common "directed reconnect to a bonded central while still accepting new centrals" pattern) — a remote initiator whose address maps to P connecting on the undirected set causes the directed set's reservation to be consumed instead. The initiator address is chosen freely by the remote device and is not authenticated at link establishment, so no bonding, pairing or prior relationship is required to trigger the mis-attribution.
The undirected set's own reservation is then stranded: its BT_ADV_ENABLED flag has already been cleared, and le_adv_stop_free_conn() — the only path that returns a reservation to the pool — is reached only for sets that are still enabled, so bt_le_ext_adv_stop() returns early and the object is never released. Each occurrence permanently consumes one CONFIG_BT_MAX_CONN slot until bt_disable() or reboot. In application patterns that restart the directed advertising set after each disconnect, an attacker can repeat the sequence until the pool is exhausted, after which connectable advertising fails with -ENOMEM and the device can no longer accept connections. As a side effect the directed set keeps advertising without a reservation, so a genuine connection on it is dropped by bt_hci_disconnect(). The impact is availability only; no memory corruption or information disclosure results, and configurations with a single advertising set are unaffected.
Bu açığın açıklamasını Türkçeye çevirdik. Adım adım çözüm önerilerini kritik ve yeni açıklar için hazırlıyoruz; düzeltilmiş sürüm aşağıdaki tabloda, ayrıntılar üreticinin duyurusunda.
Etkilenen sürümler1 yazılım
| Yazılım | Etkilenen | Düzeltildiği sürüm |
|---|---|---|
| zephyrproject zephyr | ≥ 2.3.0, < 4.5.0 | 4.5.0 |
Kaynaklar4 kaynak
Kayıt geçmişi
- Yayımlandı
İlgili açıklar
Türkçe metin, resmi kayıtlardaki bilgilerle yapay zekâ yardımıyla yazıldı ve yayından önce otomatik kontrollerden geçti. Bir değişikliği uygulamadan önce üreticinin duyurusuna mutlaka bakın.