CVE-2026-90110
>_ Opis
Tłumaczenie automatyczne – może zawierać nieścisłości.
W jądrze Linuksa usunięto następującą lukę:
inetpeer: losowe porównywanie węzłów drzewa RB przy użyciu SipHash
System ograniczający szybkość transmisji inetpeer przechowuje wpisy peerów w czerwono-czarnym drzewie
wpisany deterministycznie na zdalnym adresie IP. Ponieważ wyszukiwanie drzew chodzi
drzewo RB przy użyciu standardowych porównań leksykograficznych (inetpeer_addr_cmp),
przeciwnik spoza ścieżki może przewidzieć dokładną topologię drzewa i
sekwencja węzłów przechodzących podczas wyszukiwań (lista kandydatów gc_stack).
Łącząc deterministyczne przechodzenie przez drzewo z agresywnym zbieraniem elementów bezużytecznych
(wywoływane, gdy rozmiar drzewa przekracza inet_peer_threshold), osoba atakująca może
selektywnie wymuszaj eksmisję docelowych węzłów inet_peer. Kiedy eksmitowany
węzeł jest następnie ponownie tworzony po odebraniu nowego pakietu, co ogranicza jego szybkość
zasobnik tokenów (rate_tokens,rate_last) został zresetowany do pełnej pojemności. To tworzy
prymityw kanału bocznego umożliwiający atakującym zboczonej ścieżki ominięcie protokołu ICMP z kluczem IP
limity szybkości i wnioskować o otwartych portach UDP (podobnie do ataków w stylu SAD DNS).
Można to złagodzić, losując logikę porównywania węzłów drzewa RB za pomocą SipHash
z tajnym kluczem (inetpeer_hash_key) zainicjowanym przez net_get_random_once().
Węzły są uporządkowane w drzewie według SipHash (adres, klucz), a nie surowego adresu IP
adresy. Ponieważ tajny klucz nie jest znany podmiotom zewnętrznym, drzewo
układ i ścieżki przeszukiwania są nieprzewidywalne dla przeciwników znajdujących się poza ścieżką,
przełamanie deterministycznego gadżetu eksmisji.
Zapisz w pamięci podręcznej obliczony 64-bitowy SipHash (hash) w strukturze inet_peer i oblicz
docelowy hash (dhash) raz na początku inet_getpeer(), aby uniknąć ponownego obliczania
SipHash na każdym kroku spaceru po drzewie RB.
>_ Referencje
- https://git.kernel.org/stable/c/199fcf285e498111e029137d088949bc6c26d578
- https://git.kernel.org/stable/c/2ee66e9487172fcd189bc52a767c30dad7141c09
- https://git.kernel.org/stable/c/5f127e3cc9647a8a70db12c65dbd0de473545380
- https://git.kernel.org/stable/c/7109bb63667a53e4542ad845476f97d0c8b28a61
- https://git.kernel.org/stable/c/857681f6835d5b0a7bc4a34a026baeaaf5215623
- https://git.kernel.org/stable/c/b20e98f0bb668a59abaf7bcf85d75c073e90d352
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