CVE-2026-53921
KrytyczneCVSS 9.8Streszczenie
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.
Ocena ryzyka
Nieuwierzytelniony atakujący w sieci może zdalnie wywołać przepełnienie stosu i potencjalnie wykonać dowolny kod z uprawnieniami roota na urządzeniu OpenWrt, przejmując kontrolę nad routerem.
Rekomendacja
Zaktualizuj odhcpd do wersji 25.12 lub nowszej. Do czasu aktualizacji ogranicz dostęp do usług DHCPv6 z niezaufanych sieci.
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-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.
- CVE-2026-53922Średnie
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.
Oryginalny opis (angielski, źródło NVD)
odhcpd is the DHCPv6, DHCPv4, and router-advertisement server used by OpenWrt. Prior to version 25.12, odhcpd's DHCPv6 IA response handler writes past the end of a fixed 512-byte stack buffer (pdbuf) when a single DHCPv6 REQUEST carries enough IA options to nearly exhaust the reply space. Two independent overflow sites exist in the same call chain, both reachable from the network via a single unauthenticated UDP packet. odhcpd runs as root on OpenWrt; embedded targets often lack stack canaries and ASLR, making code execution realistic. This issue has been patched in version 25.12.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

