CVE-2026-18417
>_ Opis
Tłumaczenie automatyczne – może zawierać nieścisłości.
Natywna warstwa gniazda BSD zarejestrowała oczekujący błąd gniazda asynchronicznego, wpisując go w pustym polu user_data struktury net_context (ctx->user_data = INT_TO_POINTER(-status) w zsock_accepted_cb(), zsock_received_cb(), zsock_connected_cb() i zsock_close_ctx() w subsys/net/lib/sockets/sockets_inet.c), odczytując go za pomocą POINTER_TO_INT(). To samo pole jest własnością stosu sieciowego do nasłuchiwania kontekstów TCP: net_tcp_accept() przechowuje tam wskaźnik kontekstu nadrzędnego, a rdzeń TCP przekazuje go z powrotem do zarejestrowanego wywołania zwrotnego Accept. Dlatego też nieudana akceptacja pozostawiła małą liczbę całkowitą (wartość errno) w miejscu, w którym stos oczekiwał struktury net_context .
Gdy interfejs sieciowy przenoszący nasłuchujące gniazdo TCP ulegnie awarii, funkcja close_tcp_conn() w subsys/net/ip/tcp.c wywołuje wywołanie zwrotne akceptacji z opcją -ENETDOWN i danymi użytkownika kontekstu. W wersji 4.3.0 wywołanie zwrotne nie zostało później rozbrojone, więc drugie zdarzenie wyłączenia interfejsu przekazało poprzednio zapisane errno do zsock_accepted_cb(), która wyłuskała je jako kontekst nadrzędny i wykonała za jego pośrednictwem kilka zapisów (odczyt-modify-zapis przez sock_set_error() z Socket_data, k_fifo_cancel_wait(&parent->recv_q)) — awaria opisana w poprawce zatwierdzić wiadomość. v4.3.1 i v4.4.x zawierają późniejszą zmianę kasującą conn->accept_cb po wywołaniu zwrotnym błędu (269cb8823d3 w gałęzi v4.3, 913fae5169425550f2364655298fceb79b320066 na głównej), co zamyka tę powtarzalną ścieżkę; w tych wersjach zatruty plik cookie pozostaje osiągalny tylko dla węższej rasy, a uścisk dłoni kończy się wraz z interfejsem w dół, nadal przekazując nieaktualne ciasteczko do k_fifo_put(&parent->accept_q, ...) i przez getsockopt(SO_ERROR), który bezwarunkowo odczytuje pole z powrotem.
W wersji 4.3.0 do usunięcia usterki wystarczy aplikacja, która utrzymuje otwarte gniazdo nasłuchujące TCP w przypadku powtarzających się zdarzeń związanych z awarią łącza. warunkiem wyzwolenia jest zmiana stanu interfejsu sieciowego, a nie dane pakietowe dostarczone przez osobę atakującą, zatem praktycznym atakującym jest osoba, która jest w stanie wielokrotnie wymusić przerwanie łącza (na przykład sąsiedni atakujący zakłóca połączenie bezprzewodowe) lub osoba posiadająca dostęp lokalny/fizyczny. Ponieważ zarówno adres powodujący błąd, jak i przechowywane dane są stałymi małymi stałymi wyprowadzonymi z wartości errno, wynikiem jest dostęp do dzikiego wskaźnika prowadzący do błędu krytycznego jądra — raczej odmowa usługi (awaria urządzenia lub zresetowanie), a nie uszkodzenie pamięci kierowane przez osobę atakującą.
Poprawka przechowuje oczekujący błąd w dedykowanym polu net_context.sock_error i konwertuje każdego producenta i konsumenta na funkcję sock_set_error()/sock_get_error(), pozostawiając dane użytkownika nietknięte. Jako efekt uboczny powstrzymuje także funkcję getsockopt(SO_ERROR) — która jest oceniana bezwarunkowo — przed zwróceniem adresu jądra przechowywanego w user_data do aplikacji przestrzeni użytkownika.
>_ 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