Średni Odebrany

CVE-2026-19937

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

>_ Opis

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

Mechanizm opóźniania wiadomości w warstwie Bluetooth Mesh Access w subsys/bluetooth/mesh/delayable_msg.c zarządza statyczną pulą kontekstów wiadomości CONFIG_BT_MESH_ACCESS_DELAYABLE_MSG_COUNT (domyślnie 4) wątkowanych na listę free_ctx lub busy_ctx. release_delayable_msg_ctx() zwróciła kontekst do free_ctx tylko wtedy, gdy sys_slist_find_and_remove() znalazła go na busy_ctx. Ścieżka błędu wyczerpania porcji w bt_mesh_delayable_msg_manage() zwalnia kontekst, który został już wyrzucony z free_ctx, ale jeszcze nie wstawiony do busy_ctx, więc kontekst nie został dołączony do żadnej listy i został trwale usunięty z puli. Ponieważ funkcja bt_mesh_delayable_msg_init() jest uruchamiana tylko raz z funkcji bt_mesh_init(), a resetowanie/zawieszanie węzła powoduje jedynie drenaż busy_ctx, strata pozostaje po usunięciu, ponownym udostępnieniu i zawieszeniu/wznowieniu — jest usuwana jedynie przez ponowne uruchomienie.

Ścieżka błędu została osiągnięta, gdy w puli porcji (CONFIG_BT_MESH_ACCESS_DELAYABLE_MSG_CHUNK_COUNT, domyślnie 40 porcji) brakuje porcji potrzebnych nowej opóźnionej wiadomości, a najstarsza oczekująca wiadomość nie może zostać opróżniona, ponieważ funkcja bt_mesh_access_send() zwraca -EBUSY lub -ENOBUFS (wszystkie konteksty segmentowanego TX są zajęte lub wyczerpane są bufory reklamowe/segmentowe). Element równorzędny udostępniony w sieci mesh — posiadający prawidłowy klucz NetKey oraz klucz AppKey lub DevKey powiązany z modelem serwera — może spełnić oba warunki, zalewając ofiarę żądaniami, które wywołują odpowiedzi podzielone na segmenty, jednocześnie wstrzymując potwierdzenie segmentu, które utrzymuje konteksty transmisji zajęte, podczas gdy odpowiedzi w kolejce przechowują pulę porcji. Każde kolejne żądanie pojawiające się w tym oknie powoduje wyciek jednego kontekstu.

Po opróżnieniu puli funkcja bt_mesh_delayable_msg_manage() zwraca -ENOMEM przy każdej kolejnej wysyłce, a funkcja bt_mesh_model_send() propaguje ten błąd bez powrotu do natychmiastowej transmisji. Ponieważ CONFIG_BT_MESH_ACCESS_DELAYABLE_MSG i CONFIG_BT_MESH_ACCESS_DELAYABLE_MSG_CTX_ENABLED są domyślnie włączone, ctx->rnd_delay jest ustawione dla każdego otrzymanego komunikatu dostępowego, więc wszystkie odpowiedzi z serwerów konfiguracyjnych, serwera Health i modeli serwerów aplikacji są dyskretnie odrzucane. Węzeł w dalszym ciągu odbiera i przetwarza ruch, ale nigdy nie odpowiada, co oznacza trwałą odmowę usługi do czasu ponownego uruchomienia urządzenia. Nie ma uszkodzeń pamięci, ujawnienia informacji ani wpływu na integralność; wydania przed poprawką obliczają liczbę porcji na podstawie pojemności bufora nadawczego, a nie długości ładunku, dzięki czemu głodzenie puli porcji — a co za tym idzie wyciek — jest znacznie łatwiejsze do sprowokowania.

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