CVE-2026-19742
>_ Opis
Tłumaczenie automatyczne – może zawierać nieścisłości.
Stos IPv6 wyprowadził długotrwały tajny klucz używany do obliczania stabilnych identyfikatorów interfejsu RFC 7217 (gen_stable_iid() w subsys/net/ip/ipv6.c) i tymczasowych identyfikatorów interfejsu RFC 8981 (gen_temporary_iid() w subsys/net/ip/ipv6_pe.c) za pomocą sys_rand_get(). Udokumentowano, że ten interfejs API nie jest bezpieczny kryptograficznie, podczas gdy oba dokumenty RFC wymagają, aby klucz ten miał nieprzewidywalną losową wartość wynoszącą co najmniej 128 bitów — od tego zależy całkowicie nieprzewidywalność każdego wygenerowanego identyfikatora IID.
W zależności od platformy, sys_rand_get() jest rozpoznawane jako sprzętowe urządzenie entropijne lub, na płytach, których sterownik entropii ustawia CONFIG_ENTROPY_NEEDS_PRNG, na niekryptograficzny generator xoshiro128++ w subsys/random/random_xoshiro128.c, który utrzymuje pojedynczy globalny 128-bitowy stan współdzielony z każdym innym konsumentem sys_rand_get(). Wielu z tych konsumentów umieszcza swoje dane wyjściowe bezpośrednio w okablowaniu (efemeryczne porty źródłowe, identyfikatory zapytań DNS, identyfikatory i tokeny komunikatów CoAP, identyfikatory transakcji DHCPv6, klucze maskujące WebSocket), a przejście stanu xoshiro jest odwracalne, więc obserwator ruchu urządzenia może odzyskać stan generatora i zrekonstruować tajny klucz IID. Dodatkowo, w przypadku backendu urządzenia entropijnego, sys_rand_get() po cichu wraca do próbek k_cycle_get_32() w przypadku awarii sterownika entropii i nie zwraca żadnego błędu, więc klucz można uzyskać z licznika cykli bez zauważenia osoby wywołującej.
Znając klucz, stabilne IID można bezpośrednio obliczyć dla dowolnego prefiksu (pozostałe dane wejściowe HMAC — prefiks, indeks interfejsu, nazwa interfejsu, licznik DAD — można odgadnąć), a tymczasowe IID można połączyć po tanim przeszukaniu mieszanej wartości k_uptime_get_32(). To podważa właściwości, które zapewniają obie funkcje: osoba atakująca może śledzić urządzenie w sieciach i prefiksach oraz może przewidzieć jego adres w obrębie /64 bez skanowania, usuwając zwykłą barierę w bezpośrednim atakowaniu hosta. Nie ma to wpływu na bezpieczeństwo, integralność ani dostępność pamięci.
Poprawka generuje klucz za pomocą sys_csrand_get() i przerywa generowanie IID za pomocą opcji -EIO, gdy nie jest dostępna losowość kryptograficzna, zamiast cichego wyprowadzania adresów z przewidywalnego klucza. Zarówno CONFIG_NET_IPV6_IID_STABLE, jak i CONFIG_NET_IPV6_PE są eksperymentalne i domyślnie wyłączone; kompilacje przy użyciu CONFIG_TEST_RANDOM_GENERATOR pozostają przewidywalne z założenia, ponieważ funkcja sys_csrand_get() jest celowo kierowana z powrotem do znajdującego się tam generatora testów.
>_ 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