Podatności Zephyr
53 znanych podatności CVE w Zephyr, przetłumaczonych i ocenionych.
- CVE-2026-10772Nieznane
To CVE zostało odrzucone jako duplikat. Opisana podatność dotyczyła błędnego sprawdzania uprawnień w ścieżkach GATT notify/indicate w stosie Bluetooth Zephyr, ale została już wcześniej zgłoszona jako CVE-2026-2411.
- CVE-2026-10676Nieznane
Identyfikator CVE-2026-10676 został wycofany, ponieważ analiza wykazała, że zgłoszona wada nie jest dostępna w żadnej wydanej wersji Zephyr. W każdej wspieranej wersji poprawna wartość jest korygowana przed jej użyciem.
- CVE-2026-5067Krytyczne
System operacyjny Zephyr zawiera lukę w ścieżce uaktualnienia WebSocket serwera HTTP. Nieuwierzytelniony atakujący zdalny może wywołać uszkodzenie pamięci, wysyłając spreparowany nagłówek Sec-WebSocket-Key. Kopiowanie nagłówka do bufora o stałym rozmiarze nie gwarantuje zakończenia NUL, co prowadzi do odczytu i zapisu poza zakresem na stosie.
- CVE-2026-13735Niskie
Implementacja WireGuard w Zephyrze błędnie obsługiwała pakiety keepalive. Wiadomość typu 4 z 16-bajtowym ładunkiem (pusty tekst jawny i tag Poly1305) była akceptowana bez weryfikacji tagu uwierzytelniającego, ponieważ funkcja wg_process_data_message() zwracała wynik przed wywołaniem wg_decrypt_packet(). Atakujący mógł wysłać fałszywy keepalive, nie znając klucza sesji.
- CVE-2026-13734Średnie
Podatność w Zephyr's WireGuard VPN: funkcja wg_process_data_message() sprawdzała licznik anty-replay zbyt późno, po zatwierdzeniu zmian stanu peer'a (aktualizacja adresu, timery, rotacja kluczy). Atakujący może wstrzyknąć przechwycony pakiet, co prowadzi do przejęcia endpointu i zakłócenia sesji.
- CVE-2026-13212Wysokie
Sterownik virtio w systemie Zephyr nie sprawdza poprawności identyfikatora łańcucha deskryptorów zapisywanego przez urządzenie virtio do pierścienia używanego. Atakujący backend virtio może podać identyfikator wykraczający poza zakres, co prowadzi do odczytu poza pamięcią i wywołania wskaźnika funkcji w kontekście przerwania gościa. Umożliwia to przejęcie kontroli nad przepływem wykonania lub spowodowanie awarii systemu.
- CVE-2026-12634Średnie
Podatność w backendzie NVS podsystemu ustawień Zephyr (settings_nvs.c) powoduje zapis poza granicami stosu. Funkcja nvs_read() zwraca pełną długość wpisu, która może przekraczać rozmiar bufora, a kod używa tej wartości jako indeksu do zapisu znaku NUL, co prowadzi do zapisu poza bufor (CWE-787).
- CVE-2026-12632Średnie
Podatność w Zephyr RTOS w module PTP (Precision Time Protocol) pozwala zdalnemu atakującemu na wywołanie odczytu poza zakresem pamięci przez wysłanie specjalnie spreparowanego pakietu PTP z nieprawidłowym typem wiadomości (0xE lub 0xF). Brak walidacji górnego zakresu indeksu tablicy msg_size[] prowadzi do odczytu poza tablicą, a następnie do dalszych operacji na pamięci, co może skutkować awarią systemu lub ograniczonym uszkodzeniem pamięci.
- CVE-2026-12630Średnie
W Zephyr OS w kodzie dekompresji 6LoWPAN IPHC (subsys/net/ip/6lo.c) występuje odczyt poza zakresem w funkcji get_ihpc_inlined_size(). Indeks do tablicy da_inline_size_table (13 wpisów) jest budowany z 4-bitowego pola M, DAC i DAM nagłówka IPHC, a zarezerwowane kombinacje 13, 14 i 15 nie są sprawdzane pod kątem granic, co prowadzi do odczytu poza tablicą.
- CVE-2026-12366Wysokie
W Zephyr OS wykryto podatność use-after-free w ścieżce usuwania dynamicznych obiektów jądra. Funkcja unref_check() zwalnia pamięć obiektu po wyzerowaniu licznika referencji, ale dla timerów (K_OBJ_TIMER) nie anuluje aktywnego timeoutu, pozostawiając wiszący węzeł w globalnej kolejce timeoutów. Po wygaśnięciu timera jądro wywołuje handler na zwolnionej pamięci, co prowadzi do zapisu do zwolnionego obszaru.
- CVE-2026-12365Średnie
W jądrze Zephyr (drugiej generacji kolejki pracy, kernel/work.c) występuje podatność use-after-free w obsłudze timeoutów opóźnialnych elementów pracy. Gdy timeout elementu został usunięty z kolejki, a jego handler work_timeout() jest w trakcie wykonywania (zablokowany na spinlocku kolejki), równoczesna anulacja nie czeka na zakończenie tego handlera. W efekcie funkcje k_work_cancel_delayable_sync() i k_work_flush_delayable() mogą zwrócić sukces, mimo że handler wciąż działa, a zwolnienie obiektu prowadzi do odwołania do zwolnionej pamięci (odczyt i zapis).
- CVE-2026-12234Wysokie
Weryfikatory wywołań systemowych w przestrzeni użytkownika z_vrfy_zsock_sendmsg() i z_vrfy_zsock_recvmsg() w subsys/net/lib/sockets/sockets.c kopiują strukturę net_msghdr do kopii po stronie jądra, ale następnie ponownie odczytują oryginalną strukturę użytkownika. Podwójny odczyt (double-fetch) umożliwia atakującemu wątek w tym samym obszarze pamięci zwiększenie msg->msg_iovlen w oknie czasowym, co prowadzi do zapisu poza przydzielony bufor w jądrze. Może to prowadzić do eskalacji uprawnień lub awarii jądra.
- CVE-2026-12232Średnie
W sterowniku Intel ALH (dai_alh_get_properties) brak walidacji zakresu dla parametru stream_id, co prowadzi do odczytu poza zakresem z tablicy alh_handshake_map i wycieku informacji z jądra. Podatność można wykorzystać z poziomu przestrzeni użytkownika, jeśli dostęp do urządzenia ALH jest przyznany.
- CVE-2026-12052Średnie
Podatność w sterowniku USB CDC NCM w Zephyrze powoduje przepełnienie bufora podczas obsługi żądań GET_NTB_PARAMETERS i GET_NTB_INPUT_SIZE. Host może wysłać żądanie z mniejszym polem wLength niż rozmiar struktury odpowiedzi, co prowadzi do zapisu poza przydzielony bufor (do 27 bajtów).
- CVE-2026-12051Średnie
Implementacja klasy USB DFU w nowym (eksperymentalnym) stosie USB device_next w Zephyrze zawiera dereferencję wskaźnika NULL w funkcji handle_download(). Atakujący kontrolujący host USB może wywołać awarię urządzenia (odmowa usługi) poprzez wysłanie żądania DFU_DNLOAD z zerową długością.
- CVE-2026-11985Niskie
W porcie Zephyr dla ARM, włączenie sprzętowego FPU (CONFIG_FPU) wymusza wybór ABI zmiennoprzecinkowego, który domyślnie ustawia CONFIG_FP_HARDABI. Zarówno FP_HARDABI, jak i FP_SOFTABI pozwalają kompilatorowi generować instrukcje FP w dowolnej funkcji, nawet w kodzie nieużywającym typów zmiennoprzecinkowych. Jednak rejestry FP zapisywane przez wywoływany (callee-saved) (s16-s31 / d8-d15) są zapisywane i przywracane podczas przełączania kontekstu tylko wtedy, gdy włączono CONFIG_FPU_SHARING, a przed poprawką wybór ABI nie włączał współdzielenia rejestrów FPU.
- CVE-2026-8718Wysokie
Podatność w funkcji tls_opt_dtls_peer_connection_id_value_get() w Zephyr (subsys/net/lib/sockets/sockets_tls.c) powoduje zapis poza zakresem w jądrze systemu. Funkcja przekazuje optval od wywołującego bezpośrednio do mbedtls_ssl_get_peer_cid() bez sprawdzenia, czy bufor ma co najmniej MBEDTLS_SSL_CID_OUT_LEN_MAX (domyślnie 32) bajty. W buildach z CONFIG_USERSPACE nieuprzywilejowany wątek może wywołać przepełnienie bufora w jądrze, jeśli przekaże mały optlen na połączonym gnieździe DTLS z włączonym Connection ID.
- CVE-2026-10774Niskie
W Zephyr's Bluetooth Mesh zarządzanie kluczami podsieci wycieka jeden slot klucza PSA Crypto przy każdym usunięciu klucza podsieci. Funkcja net_keys_create() importuje klucz Private Beacon do slotu PSA, ale funkcja subnet_keys_destroy() warunkuje wywołanie psa_destroy_key() na CONFIG_BT_MESH_V1d1, który został usunięty, więc slot nigdy nie jest zwalniany. Przy domyślnej liczbie 16 slotów, po około 12 cyklach dodawania/usuwania lub odświeżania kluczy pula slotów się wyczerpuje, uniemożliwiając dodawanie nowych podsieci i powodując błędy w innych konsumentach PSA Crypto.
- CVE-2026-2411Średnie
W stosie Bluetooth Zephyra wykryto podatność polegającą na błędnym sprawdzaniu uprawnień podczas wysyłania powiadomień i wskazań GATT. Gdy aplikacja przekazuje atrybut deklaracji cechy (Characteristic Declaration), system sprawdza uprawnienia deklaracji (tylko odczyt) zamiast uprawnień wartości cechy, co pozwala na ominięcie wymaganego szyfrowania lub uwierzytelnienia.
- CVE-2026-10773Średnie
Funkcja net_dhcpv4_msg_type_name() w Zephyr DHCPv4 indeksuje statyczną tablicę nazw po wadliwym sprawdzeniu granic. Użyto sizeof zamiast ARRAY_SIZE, co pozwala na odczyt poza tablicą dla wartości typu wiadomości od 9 do 32 (lub 64). Wartość msg_type pochodzi z niezweryfikowanego bajtu z odebranego pakietu DHCP.
- CVE-2026-10686Średnie
W Zephyr OS stwierdzono podatność w ścieżce przekazywania pakietów IPv6, gdzie nie jest dekrementowane pole hop limit. Powoduje to, że router IPv6 może przekazywać pakiety w nieskończoność, co prowadzi do przeciążenia sieci i wyczerpania zasobów.
- CVE-2026-10685Wysokie
W Zephyr Bluetooth GATT kliencie, w funkcji gatt_write_ccc_rsp(), występuje podatność use-after-free. Po otrzymaniu błędu ATT Error Response od serwera GATT, funkcja wywołuje callback notify(NULL) sygnalizujący zakończenie subskrypcji, a następnie wywołuje callback subscribe() na już zwolnionej strukturze, co prowadzi do użycia po zwolnieniu.
- CVE-2026-10684Niskie
W systemie Zephyr, w pliku coredump_shell.c, funkcja print_coredump_hdr() używa 16-bitowego pola tgt_code z nagłówka coredump jako indeksu do tablicy coredump_target_code2str[] bez sprawdzania zakresu. Wartość tgt_code >= 7 powoduje odczyt poza zakresem, co może ujawnić pamięć urządzenia lub spowodować awarię.
- CVE-2026-10681Średnie
W systemie Zephyr w podsystemie obiektów dynamicznych przestrzeni użytkownika funkcja thread_idx_alloc() alokuje indeks uprawnień wątku z globalnej bitmapy _thread_idx_map[] bez trzymania blokady lists_lock. Na systemach SMP dwa wątki użytkownika wywołujące jednocześnie k_object_alloc(K_OBJ_THREAD) mogą zobaczyć ten sam wolny bit, wykonać tę samą nieatomową operację RMW i otrzymać identyczny tidx.
- CVE-2026-7007Średnie
Podatność w systemie plików ext2 Zephyra pozwala na atak DoS przez spreparowany obraz ext2. Walidator superbloku nie sprawdza, czy pola s_blocks_per_group i s_inodes_per_group są niezerowe, co prowadzi do dzielenia przez zero podczas montowania. Na platformach ARMv7-M/ARMv8-M powoduje to błąd krytyczny i odmowę usługi.
- CVE-2026-10679Niskie
W sterowniku DesignWare SPI (drivers/spi/spi_dw.c) w Zephyr do wersji v4.4.0 brak walidacji częstotliwości config->frequency, co pozwala nieuprzywilejowanemu wątkowi z dostępem do urządzenia SPI na wywołanie dzielenia przez zero (unsigned integer divide-by-zero). Powoduje to wyjątek CPU i lokalną odmowę usługi. Wymaga CONFIG_USERSPACE=y i przyznanych uprawnień.
- CVE-2026-10678Wysokie
Podatność w Zephyr (MCTP-over-I2C+GPIO) pozwala atakującemu na zapis dowolnego bajtu przez niezainicjalizowany wskaźnik oraz na jednobajtowy przepełnienie sterty. Brak walidacji kolejności zapisów i bufora odbiorczego umożliwia zdalne uszkodzenie pamięci lub awarię systemu.
- CVE-2026-10675Średnie
W Zephyr Bluetooth Mesh PB-ADV provisioning bearer istnieje podatność polegająca na bezwarunkowym resetowaniu timera protokołu przed sprawdzeniem poprawności ramki (FCS) i stanu łącza (ADV_LINK_INVALID). Zdalny, nieuwierzytelniony atakujący może wysłać poprawny FCS PDU PB-ADV na tym samym ID łącza, powodując ciągłe resetowanie timera i uniemożliwiając zamknięcie martwego łącza. Prowadzi to do trwałej odmowy usługi provisioning/re-provisioning, bez wpływu na poufność, integralność czy bezpieczeństwo pamięci.
- CVE-2026-10673Wysokie
Sterownik Ethernet Zephyr ADIN2111/ADIN1110 w trybie OA SPI nie sprawdza, czy sumaryczny rozmiar składanej ramki nie przekracza bufora. Atakujący z segmentu Ethernet może wysłać spreparowaną ramkę, powodując zapis poza buforem i potencjalne przejęcie kontroli.
- CVE-2026-10671Wysokie
W implementacji potoku (pipe) jądra Zephyr, weryfikator wywołania systemowego z_vrfy_k_pipe_init() używa makra K_SYSCALL_OBJ() zamiast K_SYSCALL_OBJ_NEVER_INIT(), co pozwala nieuprzywilejowanemu wątkowi na ponowną inicjalizację już używanego potoku. Ponowna inicjalizacja resetuje bufory i kolejki oczekiwania bez budzenia zablokowanych wątków, prowadząc do osierocenia oczekujących i uszkodzenia struktur jądra.
- CVE-2026-10669Wysokie
W systemach Xtensa z włączoną obsługą MPU i przestrzeni użytkownika, funkcja arch_buffer_validate() domyślnie zwracała 0 (dostęp dozwolony), co pozwalało na pominięcie walidacji, gdy zaokrąglony zakres bufora zawijał 32-bitową przestrzeń adresową. Nieuprzywilejowany wątek użytkownika mógł przekazać spreparowane (addr, size) do dowolnego wywołania systemowego walidującego bufory, uzyskując dostęp do pamięci jądra lub innych partycji.
- CVE-2026-10667Wysokie
W systemie Zephyr wykryto podatność polegającą na użyciu po zwolnieniu (use-after-free) w mechanizmie śledzenia dynamicznych obiektów jądra. Problem występuje w konfiguracjach SMP z włączoną przestrzenią użytkownika i dynamicznymi obiektami, gdzie niezsynchronizowane operacje na liście dwukierunkowej mogą prowadzić do naruszenia pamięci jądra.
- CVE-2026-10663Średnie
W stosie USB hosta Zephyr (CONFIG_USB_HOST_STACK) występuje podatność use-after-free i double-free. Funkcja usbh_device_disconnect() zwalnia obiekt root bez czyszczenia wskaźnika ctx->root, a sterowniki UHC generują zdarzenia usunięcia bez zabezpieczeń, co umożliwia atakującemu z fizycznym dostępem USB wywołanie podwójnego zwolnienia pamięci.
- CVE-2026-10659Średnie
W sterowniku warstwy translacji flash Dhara (drivers/disk/ftl_dhara.c) w Zephyr v4.4.0 występuje podatność polegająca na dereferencji wskaźnika NULL. Podczas inicjalizacji dysku FTL, w przypadku błędu odczytu flash (np. niepoprawialny ECC), kod błędu jest zapisywany przez wskaźnik err, który może być NULL, co prowadzi do paniki jądra i odmowy usługi.
- CVE-2026-9263Średnie
Podatność w warstwie adaptacyjnej ISO stosu Bluetooth Zephyra (isoal.c) pozwala zdalnemu atakującemu na odczyt poza zakresem przez nieprawidłową walidację długości segmentu startowego ramki ISO PDU. Brak sprawdzenia, czy długość segmentu wynosi co najmniej 3 bajty, prowadzi do niedomiaru przy odejmowaniu i kopiowania do 255 bajtów pamięci kontrolera poza odebranym PDU do pakietu HCI ISO.
- CVE-2026-10655Średnie
W Zephyr OS wykryto podatność polegającą na wyścigu w asynchronicznym kliencie SNTP. Zamknięcie gniazda UDP z wątku wywołującego bez synchronizacji z wątkiem pollującym może prowadzić do użycia po zwolnieniu (use-after-free) struktury net_context.
- CVE-2026-10654Niskie
W stosie Bluetooth Classic RFCOMM hosta Zephyr (subsys/bluetooth/host/classic/rfcomm.c) występuje wyścig (race condition) podczas jednoczesnego zrywania sesji dwukierunkowej. Gdy lokalne urządzenie inicjuje zakończenie sesji (stan BT_RFCOMM_STATE_DISCONNECTING, wysłany DISC, włączony timer RTX), a zdalny peer jednocześnie wysyła własną ramkę DISC dla dlci 0, funkcja rfcomm_handle_disc() wywołuje rfcomm_session_disconnected(), która bezwarunkowo przełącza sesję w stan BT_RFCOMM_STATE_DISCONNECTED bez wywołania bt_l2cap_chan_disconnect(). Powoduje to trwałe zablokowanie sesji: kanał L2CAP nie jest zwalniany, a slot w tablicy bt_rfcomm_pool[] nie jest odzyskiwany.
- CVE-2026-10646Wysokie
W implementacji getaddrinfo() dla gniazd BSD w Zephyrze występuje podatność use-after-return. Gdy oczekiwanie na semaforze przekroczy limit czasu, kod ponawia zapytanie DNS bez anulowania poprzedniego, pozostawiając wskaźnik do stosu jako user_data. Opóźniona odpowiedź DNS lub timeout resolwera może nadpisać pamięć stosu, prowadząc do awarii lub uszkodzenia pamięci.
- CVE-2026-10593Średnie
W Zephyr Bluetooth LE Audio Basic Audio Profile (BAP) unicast klienta występuje podatność na zapis przez wskaźnik NULL. Funkcja unicast_client_ep_qos_state() zapisuje kontrolowane przez atakującego pola QoS przez wskaźnik stream->qos, który może być NULL, gdy strumień jest skonfigurowany kodekiem, ale nie dodany do grupy unicast. Zdalny serwer ASCS może wysłać powiadomienie GATT o stanie QoS Configured, gdy lokalny punkt końcowy jest w stanie Codec Configured, co prowadzi do zapisu przez NULL i awarii systemu.
- CVE-2026-10643Wysokie
W implementacji recvmsg() dla gniazd IP w Zephyr (subsys/net/lib/sockets/sockets_inet.c) występuje podatność na zapis poza dozwolonym obszarem bufora kontrolnego (msg_control). Walidacja sprawdza tylko długość ładunku (msg_controllen < pktinfo_len), pomijając rozmiar nagłówka cmsg, co pozwala na zapis do 12 bajtów poza buforem.
- CVE-2026-13351Wysokie
Stos IPv6 w systemie Zephyr może zostać zablokowany przed odbieraniem lub przetwarzaniem przyszłych pakietów przez wysłanie niewielkiej liczby złośliwie pofragmentowanych pakietów IPv6. Podczas obsługi takiego pakietu w ścieżce przetwarzania nagłówka fragmentów, powiązany bufor pakietów sieciowych RX (przydzielony z płyty pamięci) nie jest zwracany do puli. Powtarzanie złośliwego pakietu wyczerpuje wszystkie sloty buforów RX, po czym urządzenie nie może już uzyskać buforów RX i przestaje odbierać ruch, co prowadzi do odmowy usługi.
- CVE-2026-10658Wysokie
Podatność w stosie Bluetooth Zephyra (subsys/bluetooth/host/iso.c) pozwala złośliwemu kontrolerowi lub sąsiedniemu urządzeniu BLE na wysłanie krótkiego pakietu ISO, co prowadzi do odczytu poza zakresem bufora, a w przypadku fragmentacji do zapisu poza zakresem. Problem istnieje od wersji v2.6.0 do v4.4.0 i dotyczy konfiguracji z włączonym odbiorem ISO (CONFIG_BT_ISO_RX).
- CVE-2026-10651Wysokie
W stosie Bluetooth BR/EDR systemu Zephyr wykryto podatność polegającą na odczycie poza zakresem bufora w funkcji bt_sdp_parse_attribute(). Atakujący może wysłać specjalnie spreparowany rekord SDP o długości dokładnie 3 bajtów, co powoduje odczyt jednego bajtu poza koniec bufora. Problem występuje w wersjach 4.3.0 i 4.4.0, a został naprawiony przez dodanie odpowiedniego sprawdzenia długości.
- CVE-2026-10641Wysokie
W sterowniku Bluetooth Classic Hands-Free Profile (HFP) w Zephyr OS wykryto podatność polegającą na zapisie poza dozwolonym zakresem pamięci. Funkcja cind_handle_values() nie sprawdza, czy indeks tablicy ind_table[] (20 elementów) nie przekracza jej rozmiaru, co pozwala zdalnemu atakującemu (złośliwemu urządzeniu AG) na zapisanie kontrolowanej wartości poza tablicą, powodując uszkodzenie pamięci i potencjalnie odmowę usługi stosu Bluetooth.
- CVE-2026-10640Średnie
W Zephyr'owym stosie IPv6 wykryto podatność use-after-free w funkcjach wysyłających komunikaty Neighbor Discovery (NA, NS, RS). Po udanym wysłaniu pakietu, kod odwołuje się do już zwolnionej struktury pakietu, co może prowadzić do awarii systemu lub potencjalnego uszkodzenia pamięci.
- CVE-2026-10639Średnie
W stosie IPv4 systemu Zephyr wykryto podatność use-after-free w funkcji icmpv4_handle_echo_request(). Po wysłaniu odpowiedzi ICMP Echo Reply, kod odczytuje wskaźnik interfejsu z już zwolnionego pakietu, co może prowadzić do odczytu pamięci lub zapisu przez nieprawidłowy wskaźnik. Problem występuje od wersji v1.14 (2019) do v4.4.0.
- CVE-2026-10638Średnie
W stosie sieciowym Zephyra (subsys/net/ip/icmpv6.c) występuje podatność use-after-free podczas obsługi pakietów ICMPv6. Po wysłaniu odpowiedzi na żądanie echa (ping) lub błędu ICMPv6, funkcje odczytują interfejs sieciowy z już zwolnionego pakietu, co prowadzi do dereferencji wskaźnika po zwolnieniu pamięci.
- CVE-2026-10637Średnie
W stosie sieciowym Zephyr w funkcji mld_send() odczytano interfejs sieciowy z pakietu po jego zwolnieniu przez sterownik L2. Może to prowadzić do odczytu zwolnionej pamięci, a w przypadku współbieżnej realokacji do wywołania pustego wskaźnika (NULL-pointer dereference) lub uszkodzenia pamięci.
- CVE-2026-10636Niskie
W implementacji IGMP dla IPv4 w systemie Zephyr występuje podatność use-after-free. Funkcja igmp_send() odczytuje wskaźnik interfejsu sieciowego z pakietu po jego wysłaniu, co może prowadzić do użycia zwolnionej pamięci. Problem dotyczy wersji od v2.6.0 do v4.4.0.
- CVE-2026-10635Średnie
W Zephyr OS na platformach Xtensa z włączonym CONFIG_USERSPACE i CONFIG_XTENSA_MMU, funkcja arch_mem_domain_deinit() nie usuwa węzła domeny z globalnej listy xtensa_domain_list, co prowadzi do wiszącego wskaźnika. Kolejne operacje mapowania/odmapowania pamięci mogą wywołać dereferencję NULL lub use-after-free, powodując awarię systemu lub naruszenie izolacji przestrzeni użytkownika.

