CVE-2026-81038
>_ Opis
Tłumaczenie automatyczne – może zawierać nieścisłości.
Serwer usługi transferu obiektów tworzy wskazanie odpowiedzi punktu kontroli akcji obiektu (OACP) w funkcji oacp_ind_send() (subsys/bluetooth/services/ots/ots_oacp.c). Przed tą poprawką czterobajtowe pole wartości sumy kontrolnej było dodawane za każdym razem, gdy żądany kod operacji brzmiał BT_GATT_OTS_OACP_PROC_CHECKSUM_CALC, niezależnie od kodu wyniku. Ładunek odpowiedzi to czysty, niezainicjowany czterobajtowy bufor stosu zadeklarowany za pomocą NET_BUF_SIMPLE_DEFINE(resp_param, sizeof(uint32_t)) w bt_gatt_ots_oacp_write() i jest on wypełniany tylko na ścieżce powodzenia oacp_checksum_proc_validate(). Na każdej ścieżce błędu bufor jest nadal pusty, dlatego wywołano funkcję net_buf_simple_pull_le32() na buforze o zerowej długości.
Charakterystyka OACP i deskryptor konfiguracji charakterystyki klienta są deklarowane za pomocą BT_GATT_PERM_WRITE i BT_GATT_PERM_READ | BT_GATT_PERM_WRITE, więc nie jest wymagane parowanie, szyfrowanie ani uwierzytelnianie. Każdy element równorzędny w zasięgu radiowym, który może połączyć się z urządzeniem, na którym działa serwer OTS, może włączyć wskazania OACP i napisać dziewięciobajtowe polecenie obliczenia sumy kontrolnej, które nie przejdzie weryfikacji — na przykład wydając je bez zaznaczenia żadnego obiektu, co zwróci BT_GATT_OTS_OACP_RES_INV_OBJ. Ponieważ oacp_command_decode() bezwarunkowo akceptuje kod operacji Oblicz sumę kontrolną (nie jest on chroniony przez CONFIG_BT_OTS_OACP_CHECKSUM_SUPPORT), kompilacje bez obsługi sum kontrolnych są również osiągalne: odpowiadają BT_GATT_OTS_OACP_RES_OPCODE_NOT_SUP i wybierają tę samą złą ścieżkę.
W kompilacjach z włączoną opcją CONFIG_ASSERT ściągnięcie o zerowej długości wyzwala asercję wewnątrz funkcji net_buf_simple_pull_mem() i wywołuje panikę na urządzeniu, powodując zdalnie wyzwalaną odmowę usługi. W kompilacjach z wyłączonymi asercjami nie ma żadnej kontroli: ściąganie zwraca nietkniętą tablicę stosu, a cztery bajty niezainicjowanej pamięci stosu są kopiowane do wskazania i przesyłane do partnera, co jest powtarzalne przy każdym żądaniu. Ujawnienie jest ograniczone do czterech bajtów na żądanie, a zapis pozostaje w siedmibajtowym buforze wskazania res, więc nie dochodzi do uszkodzenia pamięci; skutkiem jest ujawnienie niezainicjowanej pamięci oraz utrata dostępności w konfiguracjach z włączoną asercją.
>_ 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