CVE-2026-81039
ŚrednieCVSS 4.3Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 11 - wyżej niż 11% wszystkich znanych CVE
Streszczenie
Podatność w stosie Bluetooth hosta Zephyr dotyczy błędnego przypisania rezerwacji obiektu bt_conn do zestawu reklamowego przy połączeniach przychodzących. Gdy aplikacja uruchamia wiele rozszerzonych zestawów reklamowych (CONFIG_BT_EXT_ADV_MAX_ADV_SET > 1), funkcja find_pending_connect() może zwrócić rezerwację należącą do innego, wciąż aktywnego zestawu, co prowadzi do trwałego wycieku slotu połączenia. Atakujący w zasięgu radiowym może to wykorzystać bez uwierzytelnienia, doprowadzając do wyczerpania puli połączeń i odmowy usługi.
Ocena ryzyka
Podatność wpływa wyłącznie na dostępność — atakujący w zasięgu Bluetooth może wielokrotnie wyczerpywać sloty CONFIG_BT_MAX_CONN, aż urządzenie przestanie akceptować połączenia (-ENOMEM) do czasu restartu lub bt_disable(). Nie występuje uszkodzenie pamięci ani wyciek informacji, a konfiguracje z jednym zestawem reklamowym są odporne.
Rekomendacja
Zaktualizuj stos Bluetooth w Zephyr do wersji zawierającej poprawkę lub ogranicz liczbę równoczesnych połączeniowych zestawów reklamowych do jednego, jeśli to możliwe. Monitoruj logi pod kątem błędów -ENOMEM przy reklamowaniu i rozważ okresowy restart urządzeń narażonych na sąsiedztwo niezaufanych urządzeń.
Inne podatności w Zephyr Bluetooth host
Zobacz wszystkie- CVE-2026-82388Średnie
Podatność w stosie Bluetooth Zephyr dotyczy funkcji bt_hfp_hf_connect(), która przy niepowodzeniu bt_rfcomm_dlc_connect() zeruje cały obiekt HFP Hands-Free, mimo że powiązane zapytanie SDP jest nadal aktywne. Prowadzi to do użycia zwolnionego obiektu, w tym wywołań przez wskaźnik NULL i zapętlenia listy żądań SDP, co skutkuje awarią lub zawieszeniem wątku hosta Bluetooth. Podatność można wywołać zdalnie, np. przez urządzenie reklamujące kanał RFCOMM spoza zakresu 1-30 lub kontrolujące timing połączenia.
- CVE-2026-19938Średnie
Podatność w stosie Bluetooth Zephyr powoduje podwójne zwolnienie bufora net_buf w ścieżce transmisji ATT podczas nieudanego podpisywania. Ponadto, w przypadku niepowodzenia bt_l2cap_send_pdu(), bufor może zostać ponownie użyty z zachowanym podpisem, co prowadzi do zapisu poza zakresem. Skutkuje to uszkodzeniem pamięci, awariami lub potencjalnym wykonaniem kodu.
- CVE-2026-12236Średnie
Podatność w funkcji parse_read_std_char_desc() w podsystemie Bluetooth hosta (subsys/bluetooth/host/gatt.c) pozwala zdalnemu, nieuwierzytelnionemu urządzeniu na zawieszenie wątku obsługi Bluetooth przez wysłanie odpowiedzi ATT z zerową długością wpisu (rsp->len = 0). Pętla parsowania nie sprawdza minimalnej wartości rsp->len, co prowadzi do nieskończonej pętli (CWE-835) i braku możliwości zakończenia odkrywania deskryptorów.
- CVE-2026-5068Wysokie
W stosie Bluetooth hosta, podczas składania SDU L2CAP LE CoC, zdalny, nieuwierzytelniony peer BLE może wywołać zapis poza zakresem o długości 2 bajtów. Dzieje się tak, gdy aplikacja włącza segmentację, a wybrany pul RX ma user_data_size mniejszy niż 2 bajty, co powoduje zapis licznika segmentacji poza dozwolony obszar w l2cap_chan_le_recv_seg.
Oryginalny opis (angielski, źródło NVD)
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.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

