Średni Odebrany

CVE-2026-19936

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

>_ Opis

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

Opóźniona kolejka komunikatów warstwy Bluetooth Mesh Access w subsys/bluetooth/mesh/delayable_msg.c dzieli trzy natrętne listy (busy_ctx, free_ctx, free_chunks) i jedną k_work_delayable między dwoma współpracującymi wątkami bez synchronizacji: bt_mesh_delayable_msg_manage() działa w wątku RX hosta Bluetooth, podczas gdy opóźnienia_msg_handler() działa w systemowej kolejce roboczej. Obydwa blokują, gdy listy są w stanie pośrednim — kolejka w bt_rand(), obie w bt_mesh_access_send() — co pozwala drugiemu kontekstowi obserwować stan rozdarty. opóźnieniaable_msg_handler() użyła wyniku sys_slist_get() na busy_ctx bez sprawdzenia NULL, a allocate_delayable_msg_ctx() przetestowała sys_slist_is_empty() i następnie założyła, że ​​oddzielna sys_slist_get() zakończy się sukcesem.

Ponieważ CONFIG_BT_MESH_ACCESS_DELAYABLE_MSG i CONFIG_BT_MESH_ACCESS_DELAYABLE_MSG_CTX_ENABLED mają wartość domyślną y, każda odpowiedź modelu na odebraną wiadomość mesh jest parkowana w tej kolejce, więc kolejkowanie działa jako bezpośrednia konsekwencja ruchu przychodzącego. Element równorzędny, który może uzyskać komunikaty warstwy dostępu akceptowane przez model (musi posiadać klucz NetKey i powiązany klucz AppKey, a więc uprawniony lub zagrożony członek sieci), kontroluje częstotliwość nadejścia, rozmiar uzyskanych odpowiedzi i adres docelowy, a tym samym kontroluje zajętość 4-wejściowej puli kontekstów i 40-wejściowej puli fragmentów. Wyczerpanie puli fragmentów wymusza działanie funkcji bt_mesh_delayable_msg_manage() na ścieżce czyszczenia, co powoduje wysłanie i zwolnienie jedynego komunikatu w kolejce oraz pozostawienie busy_ctx puste, podczas gdy element roboczy z możliwością opóźnienia jest nadal uzbrojony; jeśli kolejka następnie ustąpi, procedura obsługi działa na pustej liście.

Rezultatem jest odczyt-modyfikacja-zapis poprzez wskaźnik oparty na wartości NULL (pending_msg->fired_time += 10) pod stałym niskim adresem w systemowym wątku kolejki roboczej. W przypadku typowych obiektów docelowych, w których występuje błąd, przerywanie wątku kolejki roboczej systemu — co zatrzymuje całą funkcjonalność sterowaną kolejką roboczą, w tym mechanizm taktowania siatki — lub resetowanie węzła, co skutkuje utratą dostępności węzła, którego dotyczy problem. Wartość zapisu i adres są stałe i nie ma mowy o długości ani indeksie kontrolowanym przez osobę atakującą, więc nie można ich wykorzystać do uszkodzenia pamięci lub wykonania kodu. To samo niezsynchronizowane okno umożliwiało również wybranie i zwolnienie jednego kontekstu wiadomości przez dwa konteksty jednocześnie, tworząc zduplikowane transmisje, zduplikowane wywołania zwrotne zakończenia wysyłania i skrzyżowaną własność fragmentów.

Poprawka serializuje każdą mutację listy za pomocą blokady k_spinlock, która nigdy nie jest wstrzymywana w wywołaniu blokującym, powoduje, że funkcja push_msg_from_delayable_msgs() odłącza nagłówek kolejki atomowo, tak aby wysyłana wiadomość nie znajdowała się na liście, usuwa niezaznaczoną funkcję sys_slist_get() z funkcji Delayable_msg_handler() i usuwa każdą wiadomość, która dotrze na początek kolejki, gdy stos jest zawieszony lub resetowany.

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