CVE-2026-82388
>_ Opis
Tłumaczenie automatyczne – może zawierać nieścisłości.
Funkcja bt_hfp_hf_connect() w subsys/bluetooth/host/classic/hfp_hf.c przydziela obiekt HFP Hands-Free dla każdego połączenia za pomocą funkcji hfp_hf_create(), która rozpoczyna wykrywanie SDP poprzez przekazanie osadzonego obiektu hf->sdp_param do funkcji bt_sdp_discover(). To wywołanie łączy blok parametrów należący do wywołującego z listą żądań klienta SDP (sesja->reqs w subsys/bluetooth/host/classic/sdp.c). Jeśli późniejsza metoda bt_rfcomm_dlc_connect() nie powiedzie się, kod, którego to dotyczy, wyczyścił cały obiekt za pomocą (void)memset(new_hf, 0, sizeof(*new_hf)), podczas gdy wykrywanie było nadal nierozstrzygnięte, zerując węzeł sys_snode_t _node, który jest nadal połączony na liście klienta SDP wraz ze wskaźnikami func, uuid i puli żądania, oraz zerując element roboczy hf->slc_work, który może już znajdować się w kolejce systemowej kolejki roboczej. Zamiast tego nie można było wycofać odkrycia: funkcja bt_sdp_discover_cancel() jest zadeklarowana w pliku include/zephyr/bluetooth/classic/sdp.h, ale nie ma implementacji.
Uszkodzona gałąź jest osiągalna za pomocą danych wejściowych dostarczanych przez urządzenia równorzędne. Udokumentowane użycie bt_hfp_hf_connect() polega na przekazywaniu kanału RFCOMM odczytanego z rekordu SDP zdalnej bramki audio; ani funkcja bt_sdp_get_proto_param(), ani bt_hfp_hf_connect() nie sprawdzają tej wartości, więc zdalne urządzenie ogłaszające rekord HFP AG z kanałem RFCOMM poza 1-30 powoduje, że bt_rfcomm_dlc_connect() zwraca -EINVAL i uruchamia czyszczenie lokalnego urządzenia. Ta sama gałąź jest osiągana bez niewłaściwego użycia aplikacji, gdy zdalny element równorzędny kontroluje czas połączenia, na przykład gdy sesja RFCOMM jest w stanie BT_RFCOMM_STATE_DISCONNECTING lub lista ACL zostaje zrzucona pomiędzy utworzeniem obiektu a wywołaniem RFCOMM.
Po wyczyszczeniu obiektu host Bluetooth nadal go używa: sdp_client_alloc_buf() usuwa referencje session->param->pool, która ma teraz wartość NULL, a SDP odbiera ścieżki wywołując session->param->func() poprzez wskaźnik funkcji zerowej, przy czym żadna z nich nie jest sprawdzana z wartością NULL. Ponieważ czyszczenie powoduje również wyczyszczenie hf->acl, miejsce w puli jest uznawane za wolne, a ponowna próba lub przychodzące połączenie HFP powoduje ponowne dołączenie tego samego, wciąż połączonego węzła listy, zamieniając sesję->reqs w listę samoodwołującą się, której osoby przechadzające się po listach hosta nigdy nie opuszczają. Rezultatem jest błąd lub nieodwracalne zawieszenie wątku hosta Bluetooth; bezpańskie połączenie pośrednie odbywa się za pośrednictwem wskaźnika zerowego, którego celu atakujący nie kontroluje, więc praktycznym skutkiem jest odmowa usługi.
Poprawka utrzymuje przydzielony obiekt i oznacza go nową flagą BT_HFP_HF_FLAG_RELEASING, pozwalając bt_hfp_hf_discover_cb() zwolnić go po zakończeniu wykrywania, zamiast niszczyć go w kliencie SDP. Dotyczy to tylko kompilacji z włączonymi CONFIG_BT_CLASSIC i CONFIG_BT_HFP_HF.
>_ Słabości (CWE)
>_ Referencje
Dane podatności pochodzą z oficjalnych źródeł (CVE® List / NVD). Opisy po polsku są tłumaczone automatycznie i mogą zawierać nieścisłości – na stronie rekordu można wyświetlić wersję angielską.
This product uses the NVD API but is not endorsed or certified by the NVD.
Copyright © 1999–2026, The MITRE Corporation. CVE is a registered trademark and the CVE logo is a registered trademark of The MITRE Corporation.
CVE Usage: MITRE hereby grants you a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare derivative works of, publicly display, publicly perform, sublicense, and distribute Common Vulnerabilities and Exposures (CVE®). Any copy you make for such purposes is authorized provided that you reproduce MITRE's copyright designation and this license in any such copy. ALL DOCUMENTS AND THE INFORMATION CONTAINED THEREIN PROVIDED BY MITRE ARE PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND.
NVD Terms of Use / CVE® Terms of Use / nvd.nist.gov / cve.org