CVE-2026-97476
>_ Opis
Tłumaczenie automatyczne – może zawierać nieścisłości.
W jądrze Linuksa usunięto następującą lukę:
rds: filtr RDS_INFO_* pobierany przez sieci dzwoniącego
Rodzina opcji getsockopt(2) RDS_INFO_* ma kilka opcji
globalne listy o zasięgu plików, które nie dotyczą sieci:
rds_sock_info / rds6_sock_info,
rds_sock_inc_info / rds6_sock_inc_info -> rds_sock_list
rds_tcp_tc_info / rds6_tcp_tc_info -> rds_tcp_tc_list
rds_conn_info / rds6_conn_info,
rds_conn_message_info_cmn (dla *_SEND_MESSAGES i
*_RETRANS_MESSAGES warianty),
rds_for_each_conn_info (dla RDS_INFO_IB_CONNECTIONS)
-> rds_conn_hash[]
Procedury obsługi nie filtrują według przestrzeni nazw sieciowych osoby wywołującej.
rds_info_getsockopt() nie ma funkcji sprawdzania netns aniable() i
Funkcja rds_create() nie ma możliwości sprawdzenia funkcji(), więc AF_RDS jest osiągalny z
nieuprzywilejowanej przestrzeni nazw użytkowników. W rezultacie nieuprzywilejowany
osoba dzwoniąca w nowym user_ns plus netns może odczytać powiązany adres
i i-węzeł skarpety każdego gniazda RDS na hoście, adres równorzędny
wiadomości przychodzących do każdego gniazda RDS na hoście, czyli peerze
adres i numery sekwencyjne protokołu TCP każdego włączonego połączenia rds-tcp
hosta oraz adres równorzędny i numery sekwencyjne RDS każdego
Połączenie RDS na hoście.
Transport rds-tcp jest osiągalny z sieci innych niż początkowe (patrz
rds_set_transport()), więc jednorazowa bramka init_net w
rds_info_getsockopt() odmówi legalnej widoczności na poziomie sieci
do osób wywołujących rds-tcp. Zamiast tego filtruj po każdym programie obsługi, porównując
netns gniazda osoby wywołującej do netns wpisu na liście,
lub do rds_conn_net(conn) w celu uzyskania ścieżek połączeń. Kopiuj tylko wpisy
którego netns pasuje do dzwoniącego. Liczniki (RDS_INFO_COUNTERS) są
zagregowane statystyki i zachować globalność.
Replikator (KASAN VM, załadowane rds i rds_tcp): gniazdo AF_RDS
wiąże 127.0.0.1:4242 w init_net jako root. Wchodzi proces potomny
świeży user_ns plus netns i otwiera tam AF_RDS, a następnie wywołuje
getsockopt(SOL_RDS, RDS_INFO_SOCKETS). Przed tą zmianą
dziecko widzi gniazdo init_net. Po tej zmianie dziecko
widzi zero wpisów.
Usuń rds_sock_count, rds_tcp_tc_count i rds6_tcp_tc_count
globaliści. wersja 2 użyła ich do wstępnego sprawdzenia rozmiaru i soczewki->nr; v3
zastąpiono kontrolę wstępną liczbą per-ns z pierwszego przejścia
listę, więc globale nie mają pozostałych czytelników. Dopasowanie
zwiększanie i zmniejszanie funkcji rds_create()/rds_destroy_sock() i
rds_tcp_set_callbacks()/rds_tcp_restore_callbacks() odejdź za pomocą
oni. Zgłoszone przez robota testującego jądro pod clang W=1.
>_ 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