CVE-2026-74562
WysokieCVSS 8.8Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 2 - wyżej niż 2% wszystkich znanych CVE
Streszczenie
W jądrze Linuxa w module nexthop występuje podatność polegająca na wyścigu (race condition) podczas operacji zastępowania nexthopa. Funkcje fib6_check_nh_list() i __nexthop_replace_notify() przeglądają listę f6i_list bez trzymania zamka nh->lock, podczas gdy operacje IPv6 RTM_NEWROUTE/RTM_DELROUTE modyfikują tę listę pod tym zamkiem. Prowadzi to do użycia po zwolnieniu (use-after-free) i może zostać wykorzystane do wykonania kodu lub wywołania awarii systemu.
Ocena ryzyka
Podatność może umożliwić lokalnemu atakującemu eskalację uprawnień lub wywołanie awarii systemu (DoS) poprzez wykorzystanie wyścigu w operacjach routingu IPv6. Wymaga to jednak dostępu do interfejsu rtnetlink, co zwykle mają uprzywilejowani użytkownicy.
Rekomendacja
Zaleca się natychmiastowe zaktualizowanie jądra Linux do wersji zawierającej poprawkę, która dodaje ochronę zamkiem nh->lock podczas przeglądania listy f6i_list. Należy również monitorować dostęp do interfejsu rtnetlink i ograniczyć go do zaufanych procesów.
Oryginalny opis (angielski, źródło NVD)
In the Linux kernel, the following vulnerability has been resolved: nexthop: take nh->lock for f6i_list walks in replace check and notify fib6_check_nh_list() and __nexthop_replace_notify() walk nh->f6i_list during an RTNL-serialized nexthop replace without holding nh->lock. IPv6 RTM_NEWROUTE/RTM_DELROUTE run without RTNL and mutate that list under nh->lock (fib6_add_rt2node_nh(), fib6_purge_rt()), so both walks race a concurrent route delete that unlinks and frees a fib6_info: BUG: KASAN: slab-use-after-free in rt6_fill_node.isra.0 (net/ipv6/route.c:5799) Read of size 4 at addr ffff888014607e64 by task exploit/143 rt6_fill_node.isra.0 (net/ipv6/route.c:5799) fib6_rt_update (net/ipv6/route.c:6412) __nexthop_replace_notify (net/ipv4/nexthop.c:2542) rtm_new_nexthop (net/ipv4/nexthop.c:2554) rtnetlink_rcv_msg (net/core/rtnetlink.c:7076) BUG: KASAN: slab-use-after-free in fib6_check_nh_list (net/ipv4/nexthop.c:1605) Read of size 8 at addr ffff888014a7d068 by task exploit/142 fib6_check_nh_list (net/ipv4/nexthop.c:1605) rtm_new_nexthop (net/ipv4/nexthop.c:2575) rtnetlink_rcv_msg (net/core/rtnetlink.c:7076) Both walks only read the entries and take no tb6_lock, so protect them with nh->lock; fib6_rt_update() uses gfp_any(), which returns GFP_ATOMIC under the lock.

