Średni Odebrany

CVE-2026-79981

opublikowano:
modyfikacja:
Ocena CVSS
6.5
Średni · v3.1
wektor: CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:H/A:N

>_ Opis

Tłumaczenie automatyczne – może zawierać nieścisłości.

Mechanizm rozpoznawania kodu pośredniczącego DNS w subsys/net/lib/dns/resolve.c wiąże jedno gniazdo UDP na skonfigurowany serwer, gdy kontekst mechanizmu rozpoznawania nazw jest inicjowany (dns_resolve_init_locked() -> Register_dispatcher() -> dns_dispatcher_register()), z portem lokalnym pozostawionym na poziomie 0, więc stos wybiera port efemeryczny dokładnie raz. dns_write() następnie wysyła każde kolejne zapytanie z tego samego gniazda bez ponownego wiązania, więc port źródłowy jest stały przez cały okres istnienia kontekstu funkcji rozpoznawania nazw, podczas gdy tylko 16-bitowy identyfikator transakcji (ctx->queries[i].id, narysowany za pomocą sys_rand16_get()) różni się w zależności od zapytania. RFC 5452 sekcja 9.2 wymaga, aby oba były różne; przy stałym porcie atakujący spoza ścieżki musi odgadnąć tylko identyfikator.

Stabilny port jest tani w nauce. Każde pojedyncze zaobserwowane zapytanie ujawnia to na stałe i można je również znaleźć, sondując efemeryczny zakres UDP: subsys/net/ip/connection.c odpowiada na niedopasowany unicast UDP z nieosiągalnym portem ICMP, więc gniazdo modułu tłumaczącego jest jedynym portem w tym zakresie, który pozostaje cichy. O przyjęciu odpowiedzi decyduje wyłącznie funkcja get_slot_by_id() pasująca do identyfikatora transakcji i CRC-16 żądanej nazwy — adres źródłowy odpowiedzi nigdy nie jest sprawdzany (dispatcher_cb() wykonuje ARG_UNUSED(addr)), więc sfałszowane odpowiedzi nie muszą nawet być sfałszowane, aby sprawiały wrażenie, że pochodzą ze skonfigurowanego serwera; muszą jedynie dotrzeć do portu resolwera.

Osoba atakująca mająca dostęp do urządzenia za pomocą protokołu UDP (ten sam segment sieci LAN, Wi-Fi lub mesh albo adres urządzenia z możliwością routingu globalnego) może zatem zalać odpowiedzi na przewidywalną nazwę zapytania w 16-bitowej przestrzeni identyfikatora podczas okna zapytania i ścigać się z legalnym serwerem. Wygrana powoduje, że aplikacja rozpoznaje adres wybrany przez atakującego, a przy włączonej opcji CONFIG_DNS_RESOLVER_CACHE sfałszowany rekord zostaje zachowany dla wybranego przez atakującego TTL. Atak nadal wymaga wygrania tego wyścigu, a aplikacje sprawdzające certyfikaty TLS dla rozpoznanego punktu końcowego są w dużym stopniu chronione.

Poprawka rysuje nowy port lokalny przed każdym zapytaniem do serwera, na którym nie ma żadnych zaległości: dns_randomize_source_port() wyrejestrowuje moduł rozsyłający, zamyka i ponownie otwiera gniazdo, a następnie ponownie rejestruje je powiązane z portem 0, dzięki czemu system wybiera nowy port, zwiększając przestrzeń zgadywania na zapytanie z około 16 do około 31 bitów. Multicast DNS i LLMNR są wykluczone, ponieważ ich porty są ustawione na stały protokół. Zachowanie jest kontrolowane przez CONFIG_DNS_RESOLVER_RANDOMIZE_SOURCE_PORT (domyślnie y).

>_ Słabości (CWE)

>_ Referencje

Dane podatności pochodzą z oficjalnych źródeł (CVE® List / NVD). Opisy po polsku są tłumaczone automatycznie i mogą zawierać nieścisłości – na stronie rekordu można wyświetlić wersję angielską.

This product uses the NVD API but is not endorsed or certified by the NVD.

Copyright © 1999–2026, The MITRE Corporation. CVE is a registered trademark and the CVE logo is a registered trademark of The MITRE Corporation.

CVE Usage: MITRE hereby grants you a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare derivative works of, publicly display, publicly perform, sublicense, and distribute Common Vulnerabilities and Exposures (CVE®). Any copy you make for such purposes is authorized provided that you reproduce MITRE's copyright designation and this license in any such copy. ALL DOCUMENTS AND THE INFORMATION CONTAINED THEREIN PROVIDED BY MITRE ARE PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND.

NVD Terms of Use / CVE® Terms of Use / nvd.nist.gov / cve.org