CVE-2026-53922
ŚrednieCVSS 6.5Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 27 - wyżej niż 27% wszystkich znanych CVE
Streszczenie
odhcpd w OpenWrt do commita cfddd56 włącznie pozwala nieuwierzytelnionemu hostowi w tej samej sieci uzyskać dwa przypisania przez normalne wymiany DHCPv6 SOLICIT i REQUEST, a następnie wysłać spreparowany RENEW z wieloma opcjami IA_NA. Wcześniej dopasowane IA zużywa większość bufora odpowiedzi, niedopasowane IA powoduje zapis i zwrócenie odpowiedzi NOBINDING większej niż pozostałe miejsce, a kolejne dopasowane IA jest przetwarzane po odjęciu nadmiaru od unsigned size_t. Wynikające niedomknięcie wyłącza kolejne sprawdzenia długości i pozwala na serializację IA_ADDR kontrolowaną przez atakującego poza 512-bajtowy bufor stosu pdbuf w handle_client_request(). Kanarek stosu kończy odhcpd, a ciągłe pakiety mogą wielokrotnie zakłócać usługę DHCPv6, podczas gdy procd wskrzesza proces. W obserwowanej konfiguracji nie stwierdzono wykonania kodu.
Ocena ryzyka
Atakujący może zdalnie wywołać awarię usługi DHCPv6 poprzez wysyłanie spreparowanych pakietów, powodując przerwy w działaniu sieci i ciągłe restarty procesu odhcpd.
Rekomendacja
Zaktualizuj OpenWrt do wersji zawierającej commit naprawczy po cfddd56, aby wyeliminować podatność.
Inne podatności w odhcpd
Zobacz wszystkie- CVE-2026-55606Średnie
W odhcpd w wersjach 25.12 i wcześniejszych wykrywanie pętli DHCPv6 używa wartości długości DUID w kolejności bajtów sieciowych jako rozmiaru memcmp(). Na hostach little-endian pojedynczy nieuwierzytelniony pakiet DHCPv6 powoduje odczyt 2560 bajtów z bufora 128 bajtów.
- CVE-2026-53920Wysokie
W odhcpd (OpenWrt) w wersjach 17.01.0–25.12.2 parser DHCPv6 IA akceptuje opcję IA_NA lub IA_PD o treści krótszej niż struct dhcpv6_ia_hdr, rzutuje nagłówek i odczytuje ia->iaid przed sprawdzeniem, czy pole IAID istnieje. Krótka opcja IA na końcu 8192-bajtowego bufora odbioru powoduje odczyt poza bufor, a ujawnione bajty są odzwierciedlane w odpowiedzi IAID; może to ujawnić canarkę stosu i zawartość stosu przydatną do obejścia ASLR.
- CVE-2026-53918Wysokie
W odhcpd (OpenWrt) przed wersją 25.12 handler DHCPv6 IA utrzymuje wskaźnik first do dzierżawy, aby wiele opcji IA w jednej wiadomości używało tego samego klucza Reconfigure. Pakiet DHCPv6 REQUEST może sprawić, że pierwsza IA ustawi first, a późniejsza IA o tym samym IAID nie przejdzie sprawdzenia on-link i zwolni tę dzierżawę, pozostawiając wiszący wskaźnik; kolejna IA kopiuje first->key, powodując 16-bajtowy odczyt use-after-free na stercie. Skutkiem jest nieuwierzytelniona odmowa usługi w sieci sąsiedniej i mylenie kluczy Reconfigure/ForceRenew.
- CVE-2026-53921Krytyczne
W odhcpd (serwer DHCPv6/DHCPv4/RA w OpenWrt) przed wersją 25.12 występuje przepełnienie bufora stosu (512-bajtowy pdbuf) podczas przetwarzania odpowiedzi IA na pojedynczy pakiet DHCPv6 REQUEST z dużą liczbą opcji IA. Dwa niezależne miejsca przepełnienia są osiągalne przez sieć jednym nieuwierzytelnionym pakietem UDP. odhcpd działa jako root, a urządzenia embedded często nie mają canarków stosu ani ASLR, co czyni wykonanie kodu realnym.
- CVE-2026-62948Krytyczne
Podatność w OpenWrt przed wersją 25.12.5 pozwala na wstrzyknięcie nowej linii do pliku /tmp/odhcpd.leases przez opcję FQDN hostname w DHCPv6. Brak odpowiedniego escapowania umożliwia fałszowanie wpisów dzierżaw, które są wyświetlane jako aktywny HTML na stronie administracyjnej Active DHCPv6 Leases w LuCI.
Oryginalny opis (angielski, źródło NVD)
odhcpd is the DHCPv6, DHCPv4, and router-advertisement server used by OpenWrt. In commit cfddd56 and earlier, an unauthenticated host on the same link can first obtain two bindings through normal DHCPv6 SOLICIT and REQUEST exchanges and then send a crafted RENEW containing multiple IA_NA options. An earlier matched IA consumes most of the response buffer, an unmatched IA causes the build_ia() status branch to write and return a NOBINDING response larger than the remaining space, and a subsequent matched IA is processed after dhcpv6_ia_handle_IAs() subtracts that over-return from an unsigned size_t. The resulting underflow disables subsequent length checks and permits attacker-controlled IA_ADDR serialization beyond the 512-byte stack buffer pdbuf in handle_client_request(). The stack canary terminates odhcpd, and sustained packets can repeatedly disrupt DHCPv6 service while procd respawns the process. The observed configuration does not establish code execution.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

