CVE-2026-10675
ŚrednieCVSS 4.3Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 14 - wyżej niż 14% wszystkich znanych CVE
Streszczenie
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.
Ocena ryzyka
Organizacja narażona jest na trwałe zablokowanie możliwości provisionowania lub reprovisionowania urządzeń Zephyr przez sieć Bluetooth Mesh, co może uniemożliwić dodawanie nowych urządzeń do sieci lub aktualizację istniejących. Atak nie wymaga uwierzytelnienia ani wcześniejszego parowania, a jedynie dostępu do kanału reklamowego BLE.
Rekomendacja
Należy niezwłocznie zaktualizować Zephyr do wersji zawierającej poprawkę (powyżej v4.4.1), która przenosi reset timera protokołu po sprawdzenie ADV_LINK_INVALID i FCS. Jeśli aktualizacja nie jest możliwa, należy rozważyć tymczasowe wyłączenie PB-ADV provisioning bearera lub ograniczenie dostępu do sieci BLE.
Inne podatności w Zephyr
Zobacz wszystkie- 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.
Oryginalny opis (angielski, źródło NVD)
In Zephyr's Bluetooth Mesh PB-ADV provisioning bearer (subsys/bluetooth/mesh/pb_adv.c), prov_msg_recv() rescheduled the provisioning protocol watchdog timer unconditionally at the top of the function, before the FCS check and before the ADV_LINK_INVALID check. Once a provisioning attempt fails, prov_failed() sets ADV_LINK_INVALID and the only recovery path is the protocol timer firing (protocol_timeout -> prov_link_close -> close_link -> reset_adv_link and re-enabling of scanning and the unprovisioned device beacon). A remote, unauthenticated attacker on the BLE advertising channel can first induce a provisioning failure (e.g. with a malformed generic-provisioning PDU) and then transmit any FCS-valid PB-ADV transaction PDU on the same link ID more often than once per protocol timeout (60 s, or 120 s for OOB input/output). Because each such packet reset the timer even on an invalidated link, protocol_timeout never fired, the dead link was never torn down, and the device remained pinned in an un-provisionable state with its unprovisioned beacon disabled and new Link Open requests rejected. PB-ADV PDUs are processed without authentication and the FCS is a keyless CRC, so no pairing or prior trust is required and the attacker chooses the link ID itself. The impact is a persistent denial of provisioning/re-provisioning service; there is no memory-safety, confidentiality, or integrity impact. The vulnerable code shipped in releases through v4.4.1. The fix moves the timer reschedule to after the ADV_LINK_INVALID check (and the FCS check before the reset) so an invalidated link can no longer be kept alive by incoming packets.

