Odebrany

CVE-2026-97974

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ę:

ipv6: sprawdzanie wartości null fib6_node przed uzyskaniem dostępu do __ip6_del_rt_siblings()

syzbot zgłosił deref null-ptr w __ip6_del_rt_siblings() [0].

Ślad stosu wskazywał na zerową dereferencję rt->fib6_node kiedy
Dostęp do fn->leaf można uzyskać za pomocą __ip6_del_rt_siblings(). Z
Ustawiono RTNL_FLAG_DOIT_UNLOCKED, uruchamiane są operacje inet6_rtm_delroute()
jednocześnie bez uzyskiwania blokady RTNL. W ip6_route_del()
wyszukiwanie trasy odbywa się pod funkcją rcu_read_lock() bez pobierania
tabela->tb6_lock.

Pomiędzy ip6_route_del() szukaniem trasy a __ip6_del_rt_siblings()
nabywanie tabeli->tb6_lock, inny wątek może modyfikować tablicę routingu.
Na przykład, gdy trasa ECMP zostanie zastąpiona przez RTM_NEWROUTE przez
NLM_F_REPLACE, fib6_add_rt2node() odłącza wszystkie stare rodzeństwa i zestawy
iter->fib6_node = NULL. Znaleziono reproduktor, który to wyzwala [1].

Dodaj kontrolę, aby upewnić się, że rt->fib6_node nie ma wartości null przed uzyskaniem do niego dostępu.

[0]
KASAN: null-ptr-deref w zakresie [0x0000000000000020-0x0000000000000027]
RIP: 0010:__ip6_del_rt_siblings+0x31e/0x7c0 net/ipv6/route.c:4056
Zadzwoń do śledzenia:
<ZADANIE>
ip6_route_del+0x1054/0x1110 net/ipv6/route.c:4232
inet6_rtm_delroute+0x5d7/0x6d0 net/ipv6/route.c:5669
rtnetlink_rcv_msg+0x802/0xc00 net/core/rtnetlink.c:7132
netlink_rcv_skb+0x226/0x4a0 net/netlink/af_netlink.c:2556
jądro_netlink_unicast_net/netlink/af_netlink.c:1319 [wbudowane]
netlink_unicast+0x7f5/0x990 net/netlink/af_netlink.c:1345
netlink_sendmsg+0x813/0xb40 net/netlink/af_netlink.c:1900
sock_sendmsg_nosec+0x13a/0x180 net/socket.c:800
__sock_sendmsg net/socket.c:815 [w wierszu]
____sys_sendmsg+0x565/0x870 net/socket.c:2713
___sys_sendmsg+0x2a5/0x360 net/socket.c:2767
__sys_sendmsg net/socket.c:2799 [wbudowany]
__do_sys_sendmsg net/socket.c:2804 [w wierszu]
__se_sys_sendmsg net/socket.c:2802 [wbudowane]
__x64_sys_sendmsg+0x1b7/0x290 net/socket.c:2802
do_syscall_x64 arch/x86/entry/syscall_64.c:61 [w linii]
do_syscall_64+0x166/0x520 arch/x86/entry/syscall_64.c:84
wpis_SYSCALL_64_after_hwframe+0x77/0x7f
</ZADANIE>

[1] https://Gist.github.com/NamanGulati/0766a1159b6ca61928faaf87425ff899

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