CVE-2026-10672
WysokieCVSS 8.2Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 28 - wyżej niż 28% wszystkich znanych CVE
Streszczenie
W bibliotece LwM2M w Zephyr RTOS wykryto podatność polegającą na kopiowaniu URI aktualizacji oprogramowania do stałego bufora bez walidacji długości. Atakujący może zapisać URI o długości 128-254 znaków, co prowadzi do odczytu poza zakresem pamięci statycznej, ujawnienia danych i potencjalnego zatrzymania urządzenia.
Ocena ryzyka
Organizacja narażona jest na wyciek poufnych danych z pamięci urządzenia oraz na atak typu odmowa usługi (DoS), co może zakłócić działanie systemów IoT i narazić na straty operacyjne.
Rekomendacja
Należy natychmiast zaktualizować Zephyr RTOS do wersji zawierającej poprawkę (v4.4.1 lub nowszej) oraz włączyć silne szyfrowanie DTLS dla sesji LwM2M, aby ograniczyć ryzyko ataku typu man-in-the-middle.
Inne podatności w Zephyr RTOS
Zobacz wszystkie- CVE-2026-13480Niskie
Podatność w obsłudze fragmentów danych LoRaWAN TS004 w Zephyr RTOS (subsys/lorawan/services/frag_transport.c) polega na braku walidacji długości pozostałych bajtów przed odczytem w handlerze frag_transport_package_callback(). Atakujący, znający klucze sesyjne, może spowodować odczyt poza buforem RxPayload (do ~232 bajtów), kopiując dane z pamięci statycznej do buforów dekodera i obrazu FUOTA.
- CVE-2026-13213Średnie
Podatność w usłudze Hearing Access Service (HAS) w Zephyr RTOS pozwala zdalnie (przez Bluetooth) wywołać awarię (crash) urządzenia peryferyjnego HAS. Problem występuje, gdy wcześniej sparowany klient łączy się ponownie w oknie czasowym przed rejestracją usługi przez aplikację, co prowadzi do asercji lub dereferencji pustego wskaźnika.
- CVE-2026-12633Wysokie
Podatność w kodzie obsługi sąsiedztwa IPv6 (subsys/net/ip/ipv6_nbr.c) w Zephyr RTOS. Funkcja handle_ra_6co() nie ogranicza pola context_len z opcji 6CO w komunikatach Router Advertisement, co prowadzi do przepełnienia bufora i zapisu poza pamięcią (memset). Atakujący z tej samej sieci może wysłać spreparowany pakiet, powodując awarię systemu.
- CVE-2026-9771Wysokie
Podatność w wywołaniu systemowym flash_copy() w Zephyr RTOS (z włączonym CONFIG_USERSPACE) pozwala nieuprzywilejowanemu wątkowi na przekazanie sfałszowanych wskaźników do struktur urządzeń flash. Brak walidacji obiektów urządzeń (src_dev, dst_dev) przed dereferencją umożliwia wywołanie dowolnego kodu w trybie nadzorcy, co prowadzi do eskalacji uprawnień poza piaskownicę użytkownika.
- CVE-2026-12364Wysokie
Podatność w Zephyr RTOS dotyczy weryfikatora wywołań systemowych z_vrfy_z_log_msg_static_create(), który nie sprawdzał argumentów przekazywanych do funkcji jądra. Umożliwia to nieuprzywilejowanemu wątkowi użytkownika przekazanie dowolnych wskaźników i długości, co prowadzi do odczytu pamięci jądra i awarii systemu.
- CVE-2026-12363Średnie
Podatność w usłudze transportu bloków danych LoRaWAN (frag_transport.c) nie sprawdza licznika fragmentów w odebranej komendzie DATA_FRAGMENT przed przekazaniem jej do dekodera. Wartość frag_counter równa 0 powoduje niedomiar arytmetyki (frag_counter - 1), co prowadzi do zapisu poza zakresem (CWE-787) w domyślnym dekoderze Semtech/LoRaMAC-node, uszkadzając stan dekodera i przerywając sesję aktualizacji oprogramowania (FUOTA).
- CVE-2026-12233Średnie
Podatność w backendzie PSA Protected Storage dla poświadczeń TLS (subsys/net/lib/tls_credentials/tls_credentials_trusted.c) polega na niezainicjalizowanym mutexie (k_mutex) — zadeklarowanym jako statyczna struktura wypełniona zerami, bez wywołania k_mutex_init(). Przy braku rywalizacji o blokadę działa to poprawnie, ale przy jednoczesnym dostępie z dwóch wątków dochodzi do wyłuskania pustego wskaźnika (NULL) w kolejce oczekujących, co powoduje panikę jądra i reset urządzenia.
- CVE-2026-11812Niskie
Podatność w podsystemie UpdateHub (subsys/mgmt/updatehub/updatehub.c) polega na braku synchronizacji dostępu do współdzielonej struktury ctx. Jednoczesne operacje (tło autohandlera i wywołania użytkownika) mogą zapisać poza tablicą fds[1], nadpisując sąsiednie pola struktury, co prowadzi do uszkodzenia stanu wewnętrznego i odmowy usługi w ścieżce aktualizacji oprogramowania.
- CVE-2026-10849Wysokie
W kliencie zarządzania urządzeniami hawkBit w Zephyr RTOS występuje podatność na zapis poza dozwolonym obszarem sterty (heap-based out-of-bounds write). Bufor przechowujący odpowiedź HTTP nie rezerwuje miejsca na znak null, co przy odpowiedniej długości odpowiedzi prowadzi do zapisu jednego bajtu zerowego poza przydzieloną pamięcią.
- CVE-2026-10848Wysokie
W kliencie OCPP 1.6 w Zephyr RTOS wykryto podatność polegającą na odczycie poza zakresem bufora podczas parsowania ramek WAMP RPC. Funkcja extract_string_field() używa strncpy bez gwarancji null-terminacji, co prowadzi do odczytu poza 128-bajtowym buforem i potencjalnego zapisu null poza zakresem. Podatność może być zdalnie wykorzystana przez złośliwy serwer centralny lub atakującego w sieci.
Oryginalny opis (angielski, źródło NVD)
subsys/net/lib/lwm2m/lwm2m_pull_context.c copied the firmware-update Package URI into a fixed static buffer (context.uri, size CONFIG_LWM2M_SWMGMT_PACKAGE_URI_LEN, default 128) with memcpy(context.uri, uri, LWM2M_PACKAGE_URI_LEN), copying exactly the destination size with no length validation. The Firmware-Update object stores the server-supplied Package URI (/5/0/1) in a 255-byte buffer, so a LwM2M management server (or an on-path attacker on a session lacking strong DTLS) can WRITE a URI of 128-254 characters; only the first 128 bytes are then copied into context.uri with no NUL terminator. That buffer is subsequently consumed as a C string by http_parser_parse_url(context.uri, strlen(context.uri), ...), strlen-based CoAP URI-path/PROXY-URI option appends, and lwm2m_parse_peerinfo(), causing an out-of-bounds read of adjacent static memory. The over-read bytes are appended to outbound CoAP requests (information disclosure of adjacent device memory to the server/proxy) and can crash the device (denial of service). The vulnerable copy was introduced by the pull-context refactor (first released in v3.0.0) and is present through v4.4.0; the default-on CONFIG_LWM2M_FIRMWARE_UPDATE_PULL_SUPPORT path is affected. The fix adds a strlen(uri) >= sizeof(context.uri) check returning -ENOMEM and switches to strcpy(), guaranteeing a bounded, NUL-terminated buffer.

