Średni Oczekuje na analizę

CVE-2026-85033

opublikowano:
modyfikacja:
Ocena CVSS
4.6
Średni · v3.1
wektor: CVSS:3.1/AV:A/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:L

>_ Opis

Tłumaczenie automatyczne – może zawierać nieścisłości.

Rola AVRCP Target w subsys/bluetooth/host/classic/avrcp.c utrzymuje zależny od dostawcy stan transmisji odpowiedzi w obiekcie połączenia wybranym przez indeks połączenia (get_avrcp_tg()), z kontekstem transferu (tid, send_len i flaga BT_AVRCP_TG_FLAG_TX_ONGOING) przechowywanymi w user_data odpowiedzi w kolejce net_buf. Funkcja obsługi rozłączania AVCTP avrcp_disconnected() nie anulowała tg->vd_rsp_tx_work i nie zwolniła buforów znajdujących się nadal w kolejce na tg->vd_rsp_tx_pending, więc spadek łącza w środku fragmentarycznej odpowiedzi pozostawił bufor na liście z wciąż ustawionym TX_ONGOING.

Zdalny kontroler AVRCP może to wywołać w sposób deterministyczny: wydaje polecenie zależne od dostawcy, którego odpowiedź przekracza jeden fragment AVRCP (na przykład GetElementAttributes lub GetCapabilities), pozwala funkcji bt_avrcp_tg_vendor_tx_work() wyemitować fragment START, a następnie usuwa łącze ACL zamiast wysyłać REQUEST_CONTINUING_RESPONSE. Kanał kontrolny AVCTP wymaga szyfrowanego łącza BR/EDR (BT_SECURITY_L2), zatem atakujący musi być sparowanym partnerem znajdującym się w zasięgu radiowym; nie jest wymagana żadna interakcja użytkownika.

Ponieważ obiekty docelowe są statyczne i ponownie wykorzystywane, następne połączenie lądujące w tym samym indeksie połączenia znajduje nieaktualny bufor na początku vd_rsp_tx_pending. Każde uruchomienie pracy TX powoduje wyświetlenie komunikatu TX_ONGOING i natychmiast jego powrót jest zwracany, więc wszystkie dalsze odpowiedzi zależne od dostawcy ustawiają się w kolejce za nieaktualną głowicą i nigdy nie są wysyłane — trwała utrata funkcji docelowej AVRCP, która nie jest usuwana po przekroczeniu limitu czasu i przywracany jest jedynie ponowny rozruch. Każdy cykl powoduje również wyciek jednego bufora odpowiedzi z płytkiej puli aplikacji, a nowy peer, który wysyła REQUEST_CONTINUING_RESPONSE, czyści nieaktualny TX_ONGOING poprzez bt_avrcp_tg_process_continuing_cmd(), powodując przesłanie do niego niewysłanej reszty odpowiedzi poprzedniego peera.

Poprawka anuluje tg->vd_rsp_tx_work i odrefuje każdy bufor na tg->vd_rsp_tx_pending w avrcp_disconnected(); ponieważ kontekst TX znajduje się w buforze user_data, zwolnienie buforów resetuje także maszynę stanu TX. Nie ma żadnego uszkodzenia pamięci: bufor przed poprawką wycieka wraz z aktywnym odniesieniem, więc nie pojawia się żadne użycie po zwolnieniu.

>_ 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