CVE-2026-19735
>_ Opis
Tłumaczenie automatyczne – może zawierać nieścisłości.
Implementacja początkowego numeru sekwencyjnego RFC 6528 w subsys/net/ip/tcp.c wyprowadza każdy numer ISN protokołu TCP z SHA-256 (unikalny_klucz || czterokrotka) plus przesunięcie wyprowadzane na podstawie czasu działania, gdzie unikalny_klucz to 128-bitowy sekret wypełniony jednorazowo przez sys_csrand_get(). Wartość zwracana przez to wywołanie została odrzucona, a jednorazowa osłona została zablokowana na wartość true, nawet jeśli wywołanie nie powiodło się. Ponieważ sys_csrand_get() pozostawia bufor docelowy nietknięty w przypadku awarii (celowo propaguje błąd sterownika entropii, zamiast wypełniać bufor), pojedyncze nieudane wywołanie pozostawia wartość Unique_key jako całkowicie zerową zawartość BSS na pozostałą część rozruchu, bez ponownych prób, bez komunikatu w dzienniku i bez powrotu.
Aby osiągnąć słaby stan, wymagana jest awaria kryptograficznego źródła losowego — na przykład -ENODEV/-EIO ze sterownika entropii w subsys/random/random_entropy_device.c (komentarz w drzewie wskazuje, że sprzętowy RNG „może nadal gromadzić entropię podczas wczesnych rozruchów”) lub błąd psa_generate_random() w subsys/random/random_psa.c, gdy kryptografia PSA jest aktywna nie został zainicjowany lub jest obsługiwany przez urządzenie entropijne Bluetooth-HCI, które jeszcze nie działa. Pierwsze połączenie TCP wyzwala generację klucza, więc zdalny element równorzędny, który dociera do portu nasłuchiwania natychmiast po uruchomieniu lub który może spowodować ponowne uruchomienie, ma pośredni wpływ na to, czy generowanie pokrywa się z tym oknem. Funkcja tcp_init_isn() jest wywoływana dla każdego pasywnego otwarcia w tcp_conn_new() i każdego aktywnego otwarcia w net_tcp_connect(), więc zatruty klucz zarządza wszystkimi połączeniami TCP podczas tego rozruchu.
Dzięki kluczowi zerowemu numer ISN staje się publiczną funkcją czterokrotkowego połączenia plus przesunięcie czasowe obejmujące całe urządzenie. Osoba atakująca spoza ścieżki może obliczyć termin skrótu w trybie offline dla dowolnej czterokrotki i odzyskać współdzielone przesunięcie czasowe z pojedynczego zaobserwowanego numeru ISN, po czym numer ISN, który urządzenie wybierze dla pozostałych czterech krotek, będzie przewidywalny. To dokładnie łamie ochronę, którą zapewnia RFC 6528: ślepe fałszowanie połączeń TCP w stosunku do peerów ufających adresowi źródłowemu oraz ślepe wstrzykiwanie danych do lub resetowanie połączeń, których cztery krotki można odgadnąć. Urządzenia, których źródło entropii nigdy nie zawiera błędów, nigdy nie znajdowały się w stanie słabym.
Poprawka przenosi generowanie klucza do pojedynczego strzeżonego pomocnika, który zatrzaskuje się tylko w przypadku powodzenia, w przeciwnym razie rejestruje błąd i powoduje, że tcp_init_isn() powraca do sys_rand32_get() — zachowania już używanego, gdy CONFIG_NET_TCP_ISN_RFC6528 jest wyłączone — zamiast mieszania ze znanym stałym kluczem.
>_ 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