Odebrany

CVE-2026-98103

opublikowano:
modyfikacja:
Ocena CVSS
n/a
Brak oceny

>_ Opis

Tłumaczenie automatyczne – może zawierać nieścisłości.

W jądrze Linuksa usunięto następującą lukę:

igmp: przekonwertuj strukturę ip_sf_list na RCU

Zatwierdź 23d2b94043ca („igmp: Dodaj blokadę ip_mc_list w ip_check_mc_rcu”)
dodano spin_lock_bh(&im->lock) do ip_check_mc_rcu(), aby zapobiec
użyj po zwolnieniu podczas iteracji źródeł im-> podczas jednoczesnego usuwania.

Jednak ip_check_mc_rcu() jest wywoływana z poziomu krytycznego strony odczytu RCU
sekcje szybkich ścieżek odbierania pakietów i wyszukiwania tras (np.
__mkroute_output(), ip_route_input_rcu() i __udp4_lib_rcv()).

Kiedy igmpv3_send_cr() lub igmpv3_send_report() wstrzymuje &pmc->lock i
wywołuje add_grec() -> igmpv3_newpack() -> ip_route_output_ports(),
polityka XFRM pasująca do wyzwalaczy miejsca docelowego multiemisji
xfrm_tmpl_resolve_one() -> xfrm4_get_saddr() -> __mkroute_output() ->
ip_check_mc_rcu(). Próbuje to uzyskać dostęp do &im->lock podczas &pmc->lock
jest już przechowywany na tym samym procesorze, wyzwalając blokowanie rekurencyjne lockdep
ostrzeżenie/zakleszczenie.

Napraw ten problem, konwertując strukturę IPv4 ip_sf_list na RCU, odzwierciedlając plik
Implementacja IPv6 w net/ipv6/mcast.c:

1. Dodaj struct rcu_head do struct ip_sf_list i dodaj adnotację sf_next,
źródła i grób jako wskaźniki __rcu.
2. Do aktualizacji list użyj funkcji rcu_sign_pointer() i kfree_rcu().
usunięcia.
3. Usuń spin_lock_bh(&im->lock) z ip_check_mc_rcu() i przejdź
im->źródła bez blokady za pomocą for_each_psf_rcu(), czytając i pisząc
pola licznika z READ_ONCE() i WRITE_ONCE().

Uwaga: Konwersja RCU /proc/net/mcfilter zostanie wykonana w pliku a
osobna łatka.

>_ 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