CVE-2026-79977
>_ Opis
Tłumaczenie automatyczne – może zawierać nieścisłości.
Usługa WireGuard VPN w subsys/net/lib/wireguard/wg.c zaktualizowała równorzędny punkt końcowy na podstawie wiadomości, której nie mogła uwierzytelnić. W funkcji handle_transport_data(), gdy 32-bitowy indeks odbiorcy przychodzącej wiadomości z danymi transportowymi nie pasował do żadnej sesji, kod zarówno zaplanował nowe uzgadnianie, jak i skopiował adres źródłowy datagramu do punktu równorzędnego->punktu końcowego za pomocą memcpy(&peer->endpoint, peer_addr, sizeof(peer->endpoint)). Ponieważ indeks odbiorcy jest nieznany, nie ma klucza, za pomocą którego można by zweryfikować taką wiadomość, więc adres zapisany w peer->endpoint jest w całości dostarczany przez atakującego. Każda inna aktualizacja punktu końcowego w implementacji ma miejsce dopiero po uwierzytelnieniu — po uzgadnianiu Noise w handle_handshake_init() lub po odszyfrowaniu AEAD plus sprawdzeniu anty-replay w wg_process_data_message().
Nasłuchiwanie WireGuard jest rejestrowane w funkcji net_udp_register() bez adresu zdalnego ani filtra portu i domyślnie jest to port UDP 51820 (CONFIG_WIREGUARD_PORT), a wg_ctrl_recv() rozpoznaje peera na podstawie interfejsu, a nie jakiejkolwiek tożsamości kryptograficznej. Każdy host, który jest w stanie wysłać datagram UDP do tego portu, może zatem dotrzeć do defektu poza ścieżką, bez konieczności obserwowania legalnego ruchu: wystarczający jest 16-bajtowy datagram niosący typ danych transportowych, zerowane zarezerwowane bajty i dowolny indeks odbiorcy. Podatna gałąź działa za każdym razem, gdy partner nie ma prawidłowego uzgadniania ani bieżącej pary kluczy – stanu podczas rozruchu i po wygaśnięciu sesji.
Pojedynczy sfałszowany datagram przekierowuje punkt końcowy na adres wybrany przez atakującego i tam wysyłane są wszystkie kolejne inicjacje uzgadniania, utrzymywanie aktywności i zaszyfrowane pakiety danych. Uprawniony uczestnik nigdy nie otrzymuje inicjacji, zatem nigdy nie dokonuje ponownego uwierzytelnienia i nic później nie resetuje punktu końcowego, pozostawiając tunel trwale bezużyteczny na urządzeniach, których partner sam nie inicjuje uzgadniania. Osoba atakująca może również przekazać przekierowane inicjacje prawdziwemu partnerowi, aby znalazł się na ścieżce tunelu, obserwując tekst zaszyfrowany i metadane ruchu oraz selektywnie upuszczając pakiety. Kompleksowa kryptografia WireGuard nadal zapobiega odszyfrowaniu lub fałszowaniu zawartości tunelu, więc skutkiem jest utrata dostępności i ograniczona poufność, a nie naruszenie klucza.
Poprawka całkowicie usuwa uczenie punktu końcowego z tej ścieżki: odzyskiwanie po nieaktualnej sesji jest zachowywane, ale uzgadnianie jest wysyłane tylko do punktu końcowego wyuczonego z uwierzytelnionej wiadomości, cofając się do skonfigurowanego punktu końcowego cfg_end, a komunikat jest odrzucany, gdy żaden z nich nie jest znany. CONFIG_WIREGUARD jest oznaczony jako eksperymentalny i nie jest domyślnie włączony.
>_ 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