CVE-2026-52925
ŚrednieCVSS 5.5Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 6 — wyżej niż 6% wszystkich znanych CVE
Streszczenie
W jądrze Linux wykryto podatność w mechanizmie VRF (Virtual Routing and Forwarding). Brak synchronizacji RCU podczas usuwania portu z VRF może prowadzić do wyścigu, w którym czytelnik RCU widzi nowe urządzenie nadrzędne (np. most) bez operacji l3mdev, co skutkuje dereferencją wskaźnika NULL (NPD).
Ocena ryzyka
Atakujący może wykorzystać tę lukę do wywołania błędu jądra (NULL pointer dereference), co prowadzi do odmowy usługi (DoS) poprzez awarię systemu. Podatność dotyczy systemów używających VRF z mostowaniem.
Rekomendacja
Należy niezwłocznie zaktualizować jądro Linux do wersji zawierającej poprawkę dodającą synchronizację RCU po usunięciu flagi IFF_L3MDEV_SLAVE. Sprawdź dostępność łatki dla swojej dystrybucji.
Oryginalny opis (angielski, źródło NVD)
In the Linux kernel, the following vulnerability has been resolved: vrf: Fix a potential NPD when removing a port from a VRF RCU readers that identified a net device as a VRF port using netif_is_l3_slave() assume that a subsequent call to netdev_master_upper_dev_get_rcu() will return a VRF device. They then continue to dereference its l3mdev operations. This assumption is not always correct and can result in a NPD [1]. There is no RCU synchronization when removing a port from a VRF, so it is possible for an RCU reader to see a new master device (e.g., a bridge) that does not have l3mdev operations. Fix by adding RCU synchronization after clearing the IFF_L3MDEV_SLAVE flag. Skip this synchronization when a net device is removed from a VRF as part of its deletion and when the VRF device itself is deleted. In the latter case an RCU grace period will pass by the time RTNL is released. [1] BUG: kernel NULL pointer dereference, address: 0000000000000000 [...] RIP: 0010:l3mdev_fib_table_rcu (net/l3mdev/l3mdev.c:181) [...] Call Trace: <TASK> l3mdev_fib_table_by_index (net/l3mdev/l3mdev.c:201 net/l3mdev/l3mdev.c:189) __inet_bind (net/ipv4/af_inet.c:499 (discriminator 3)) inet_bind_sk (net/ipv4/af_inet.c:469) __sys_bind (./include/linux/file.h:62 (discriminator 1) ./include/linux/file.h:83 (discriminator 1) net/socket.c:1951 (discriminator 1)) __x64_sys_bind (net/socket.c:1969 (discriminator 1) net/socket.c:1967 (discriminator 1) net/socket.c:1967 (discriminator 1)) do_syscall_64 (arch/x86/entry/syscall_64.c:63 (discriminator 1) arch/x86/entry/syscall_64.c:94 (discriminator 1)) entry_SYSCALL_64_after_hwframe (arch/x86/entry/entry_64.S:130)

