Podatności Zephyr RTOS
32 znanych podatności CVE w Zephyr RTOS, przetłumaczonych i ocenionych.
- CVE-2026-82962Średnie
Podatność w funkcji ethernet_fill_header() w stosie sieciowym Zephyr RTOS polega na tym, że nagłówek Ethernet jest wstawiany w miejscu (poprzez net_buf_push) bez sprawdzenia, czy pakiet ma wystarczający zapas miejsca (headroom). Pakiety przydzielone przez inny stos L2 (np. 802.15.4/OpenThread, PPP) i przekazane do Ethernetu w wyniku routingu lub tunelowania mają zbyt mały headroom, co prowadzi do zapisu poza granicami bufora. W buildach bez CONFIG_ASSERT i CONFIG_NET_BUF_HARDENING powoduje to korupcję pamięci.
- CVE-2026-19595Średnie
Podatność w mechanizmie weryfikacji wywołań systemowych Zephyr RTOS: funkcja z_vrfy_rtio_cqe_get_mempool_buffer() sprawdzała parametry wyjściowe buff i buff_len za pomocą K_SYSCALL_MEMORY_READ() zamiast K_SYSCALL_MEMORY_WRITE(). Umożliwia to nieuprzywilejowanemu wątkowi w trybie użytkownika wywołanie wywołania systemowego ze wskaźnikami do pamięci tylko do odczytu, co prowadzi do zapisu w trybie nadzorcy poza dozwolonym obszarem lub do błędu jądra i zatrzymania/restartu urządzenia.
- CVE-2026-19940Średnie
Podatność w implementacji Bluetooth Classic Hands-Free Profile Audio Gateway (HFP AG) w Zephyr RTOS powoduje uszkodzenie listy timeoutów jądra. Poprzez wysłanie AT+CIND? i szybkie ponowne połączenie, zdalny atakujący może wywołać zawieszenie lub awarię całego systemu.
- CVE-2026-19736Wysokie
Sterownik entropii NXP MCUX TRNG w Zephyrze (drivers/entropy/entropy_mcux_trng.c) przekazuje liczbę bajtów żądania bezpośrednio do funkcji SDK TRNG_GetRandomData(), która w przypadku układów i.MX RT5xx/RT6xx zawsze kopiuje całe 32-bitowe słowa i zaokrągla pobieranie entropii do wielokrotności 128 bajtów. Przy długości niebędącej wielokrotnością czterech dochodzi do przepełnienia bufora o maksymalnie 127 bajtów, co może prowadzić do uszkodzenia pamięci jądra lub stosu.
- CVE-2026-19575Wysokie
Podatność w Zephyr RTOS dotyczy handlera trybu użytkownika z_vrfy_device_deinit() w kernel/device.c, który walidował argument dev za pomocą K_SYSCALL_OBJ_INIT(dev, K_OBJ_ANY). Ponieważ k_object_validate() pomija porównanie typu dla K_OBJ_ANY, sprawdzenie ograniczało się do tego, czy wskaźnik należy do dowolnego obiektu jądra, do którego wątek ma uprawnienia — bez weryfikacji rzeczywistego typu obiektu. Umożliwia to lokalnemu wątkowi w trybie użytkownika przekazanie obiektu stosu wątku (np. z k_thread_stack_alloc()) i wykonanie kodu jądra w trybie supervisora.
- CVE-2026-19574Wysokie
W podsystemie MMU dla architektury ARM64 w Zephyr RTOS identyfikatory ASID przydzielane są przez prosty licznik round-robin, który po przekroczeniu 255 możliwych wartości zaczyna przydzielać te same ASID aktywnym domenom pamięci. Ponieważ mapowania domen są instalowane jako nieglobalne (MT_NG), ASID jest jedynym znacznikiem odróżniającym tłumaczenia w TLB, a ścieżka przełączenia kontekstu nie opróżnia TLB w przypadku kolizji osiągniętej przez trzecią domenę. W efekcie wątki w trybie użytkownika mogą czytać i zapisywać pamięć należącą do innej domeny, naruszając izolację domen pamięci.
- CVE-2026-19569Wysokie
Podatność w jądrze Zephyr RTOS pozwala nieuprzywilejowanemu wątkowi użytkownika na zapis poza granicami w pamięci jądra. Wynika to z braku kontroli przepełnienia przy obliczaniu rozmiaru alokacji dla dynamicznych obiektów jądra, co prowadzi do alokacji zbyt małego bloku pamięci. Atakujący może wykorzystać to do eskalacji uprawnień i wykonania kodu na poziomie jądra.
- CVE-2026-19185Wysokie
W systemie Zephyr RTOS znaleziono podatność w weryfikatorze wywołań systemowych dla funkcji i3c_do_ccc(), która nie sprawdza wskaźników danych poszczególnych celów w strukturze i3c_ccc_payload. Ponadto weryfikacja działa na żywej strukturze, co pozwala innemu wątkowi na zmianę pól między sprawdzeniem a użyciem. Umożliwia to nieuprzywilejowanemu wątkowi zapis do dowolnego adresu jądra (przez odczyt CCC) lub ujawnienie pamięci jądra (przez zapis CCC), co prowadzi do eskalacji uprawnień.
- CVE-2026-18747Średnie
Podatność w transporcie SMP-over-console w Zephyr RTOS pozwala nieuwierzytelnionemu atakującemu na wywołanie niedomiaru długości bufora przez wysłanie pojedynczej 7-bajtowej ramki na konsolę zarządzania. Prowadzi to do odczytu poza zakresem, co może spowodować awarię wątku MCUmgr (denial of service) lub potencjalny wyciek pamięci.
- CVE-2026-18417Średnie
W Zephyr RTOS wykryto podatność w warstwie gniazd BSD, gdzie błąd asynchroniczny był przechowywany w polu user_data kontekstu sieciowego, które dla nasłuchujących gniazd TCP jest używane do przechowywania wskaźnika do kontekstu rodzica. W wersji v4.3.0, po zdarzeniu wyłączenia interfejsu, wywołanie zwrotne accept nie było dezaktywowane, co prowadziło do ponownego użycia skażonej wartości jako wskaźnika i zapisu pod nieprawidłowy adres, powodując krytyczny błąd jądra (awarię lub reset urządzenia).
- CVE-2026-16513Wysokie
Podatność w weryfikatorze syscall RTIO w Zephyr RTOS (przed v4.3.0) pozwala nieuprzywilejowanemu wątkowi użytkownika zapisać wskaźnik do kontrolowanych danych pod dowolnym adresem jądra. Brakuje sprawdzenia K_SYSCALL_MEMORY_WRITE dla parametru wyjściowego handle, co umożliwia eskalację uprawnień do trybu jądra.
- CVE-2026-16514Średnie
Funkcja gptp_mi_qualify_announce() w podsystemie gPTP systemu Zephyr przetwarza odebrane komunikaty Announce, porównując tożsamości zegarów. Pętla porównująca używa liczby kroków (steps_removed) sterowanej przez atakującego, zamiast rzeczywistej liczby wpisów w TLV, co prowadzi do odczytu poza buforem sieciowym. Atakujący w tej samej sieci L2 może wysłać jeden ramkę, powodując odczyt około 2 KB poza buforem i potencjalnie wywołując denial of service przez zablokowanie wątku RX.
- CVE-2026-16512Niskie
Funkcja gptp_handle_msg() w Zephyr RTOS nie sprawdza długości odebranej ramki przed dereferencją wskaźnika do nagłówka gPTP. Skrócona ramka może prowadzić do odczytu poza przydzielonym buforem, co ujawnia zawartość pamięci.
- CVE-2026-14696Średnie
Podatność w Zephyr RTOS powoduje wyciek buforów sieciowych (net_pkt) w przypadku włączenia mostkowania Ethernet (CONFIG_NET_ETHERNET_BRIDGE). Ramki z nierozpoznanym EtherType, dostarczane również do lokalnego stosu, są oznaczane jako NET_OK, co jest interpretowane jako ich zużycie, ale w rzeczywistości nie są zwalniane. Atakujący w segmencie L2 może wysłać zalew ramek broadcast/multicast z dowolnym EtherType, co prowadzi do wyczerpania puli buforów i trwałej odmowy usługi (DoS) do czasu restartu urządzenia.
- 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.
- CVE-2026-10682Średnie
W Zephyr RTOS w wersjach od v3.3.0 do v4.4.1, funkcja weryfikatora przestrzeni użytkownika z_vrfy_log_filter_set() wykonuje porównanie ze znakiem dla parametru src_id, co pozwala na przekazanie ujemnej wartości. Prowadzi to do odczytu i zapisu poza zakresem w tablicy log_dynamic, co może być wykorzystane do eskalacji uprawnień w trybie nadzorcy.
- CVE-2026-10680Wysokie
W stosie Bluetooth BR/EDR (Classic) w Zephyr RTOS wykryto podatność w handlerach L2CAP sygnalizacji konfiguracji (l2cap_br_conf_req i l2cap_br_conf_rsp). Walidacja minimalnego rozmiaru polecenia była przeprowadzana względem buf->len (pozostałe bajty w całym PDU) zamiast len (długość danych polecenia z nagłówka L2CAP). Atakujący może wysłać polecenie CONF_REQ z nagłówkiem mniejszym niż struktura żądania konfiguracji (np. 0), a następnie kolejne polecenie, tak aby buf->len nadal spełniał warunek. Prowadzi to do niedomiaru (underflow) zmiennej opt_len do wartości bliskiej 0xFFFF, co skutkuje odczytem poza zakresem bufora i potencjalnym zapisem poza zakresem, gdy dane opcji kodują MTU lub timeout.
- CVE-2026-10672Wysokie
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.
- CVE-2026-10670Średnie
W systemie Zephyr RTOS wykryto podatność w obsłudze wywołania systemowego k_thread_name_copy(). Funkcja weryfikująca (z_vrfy_k_thread_name_copy()) wywołuje k_object_find() na wskaźniku wątku dostarczonym przez użytkownika, a następnie dereferencuje zwróconą strukturę bez sprawdzenia, czy jest NULL. Jeśli wskaźnik nie jest zarejestrowanym obiektem jądra, dochodzi do dereferencji NULL w trybie nadzorcy, co powoduje awarię lub restart systemu.
- CVE-2026-10660Średnie
Podatność w stosie Bluetooth BAP Broadcast Assistant GIT w Zephyr RTOS powoduje przepełnienie bufora i uszkodzenie danych między połączeniami. Współdzielony bufor 512 bajtów dla wszystkich instancji połączeń, przy jednoczesnym przetwarzaniu powiadomień z wielu urządzeń Scan Delegator, może prowadzić do zapisu poza zakresem i mieszania danych między połączeniami.
- CVE-2026-7656Wysokie
Podatność w Zephyr RTOS dotyczy obsługi komunikatów Neighbor Discovery dla IPv6. Błędna logika warunkowa powoduje, że wszystkie walidacje RFC 4861 (w tym wymóg Hop Limit == 255) są pomijane, gdy pole ICMPv6 code ma wartość 0 (normalną dla ND). Umożliwia to atakującemu wstrzyknięcie sfałszowanych komunikatów RA/NS/NA.
- CVE-2026-10647Średnie
W sterowniku USB CDC-NCM dla Zephyr RTOS brakuje sprawdzenia wartości zwracanej przez usbd_ep_enqueue(). Gdy enqueue zawiedzie (np. podczas zawieszenia magistrali USB), funkcja blokuje się na semaforze, który nigdy nie zostaje zasygnalizowany, powodując trwałe zakleszczenie wątku TX i zatrzymanie transmisji sieciowej aż do restartu.
- CVE-2026-5066Średnie
W podsystemie gniazd sieciowych Zephyr RTOS (subsys/net/lib/sockets/sockets_tls.c) występuje potencjalny zapis/odczyt poza zakresem w ścieżce połączenia TLS. Gdy pamięć podręczna sesji TLS jest włączona, funkcje tls_session_store() i tls_session_restore() kopiują adres dostarczony przez wywołującego do bufora o stałym rozmiarze, używając wartości addrlen kontrolowanej przez wywołującego bez walidacji względem rozmiaru docelowego. Może to prowadzić do odczytu i zapisu poza pamięcią adresu, co może spowodować awarię i odmowę usługi, a potencjalnie także wykonanie dowolnego kodu.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

