CVE-2026-18746
>_ Opis
Tłumaczenie automatyczne – może zawierać nieścisłości.
parse_write_op() w subsys/net/lib/lwm2m/lwm2m_message_handling.c obsługuje przychodzące żądania CoAP WRITE/CREATE, które zawierają opcję Block1. Dla pierwszego bloku transferu wywoływał init_block_ctx(), a następnie natychmiast zapisywał rozmiar bloku wybranego przez peera za pomocą block_ctx->ctx.block_size = block_size przed sprawdzeniem kodu powrotu. init_block_ctx() ustawia wskaźnik wywołującego na NULL i zwraca -ENOMEM, gdy żaden wpis w statycznej puli block1_contexts[] nie jest wolny lub upłynął limit czasu, więc store dereferuje wskaźnik NULL.
Pula zawiera wpisy CONFIG_LWM2M_NUM_BLOCK1_CONTEXT (domyślnie 3), a wpis jest odzyskiwany dopiero po zakończeniu transferu, niepowodzeniu lub przekroczeniu 30 sekund. Element równorzędny, który dotrze do gniazda LwM2M klienta, może zatem rozpocząć trzy blokowe zapisy na trzech różnych ścieżkach obiektu z ustawionym bitem CoAP More i pozostawić je niekompletne, a następnie wysłać pierwszy blok czwartego zapisu na nowej ścieżce, aby dotrzeć do niestrzeżonego dereferencji. Osiągalność jest bramkowana tylko przez filtr adresu źródłowego podłączonego gniazda UDP, chyba że włączona jest opcja CONFIG_LWM2M_DTLS_SUPPORT — która nie ma wartości domyślnej — zatem w przypadku wdrożenia NoSec osoba atakująca znajdująca się na ścieżce lub fałszująca adres nie potrzebuje żadnych poświadczeń; ta sama sekwencja jest również osiągalna z serwera startowego lub serwera o niższym zaufaniu i może zostać przypadkowo trafiona przez legalny serwer obsługujący cztery równoczesne transfery bloków.
Celem zapisu jest stały niski adres o wartości od 0 do 7, więc konsekwencją jest krytyczny błąd pamięci (BusFault lub uszkodzony niski poziom pamięci prowadzący do błędu), a nie prymitywny element powodujący uszkodzenie pamięci użytkowej: urządzenie ulega awarii lub resetuje się. Nie ma to wpływu na poufność i integralność. Poprawka przenosi sklep poniżej osłony i sprawdza sam wskaźnik kontekstu zamiast kodu powrotu, więc kontekst jest dotykany tylko wtedy, gdy wiadomo, że jest prawidłowy.
>_ 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