CVE-2026-97940

Summary

In the Linux kernel, the following vulnerability has been resolved:

ipv6: fix fib6 walker UAF on seq stop

ipv6_route_iter_active() treats a walker in FWS_U at the table root as already unlinked. fib6_del_route() can move a still-linked walker into that same state when the current leaf is the last route at the root, so ipv6_route_native_seq_stop() skips fib6_walker_unlink(). The seq private object can then be freed while it remains on net->ipv6.fib6_walkers. A later route deletion walks the dangling list and uses the freed walker.

Use the list head as membership state and reinitialize it when unlinking. Keep the existing w->node check so a never-started iterator with a zeroed private object is not treated as linked.

The same stop helper is used by /proc/net/ipv6_route and by the BPF ipv6_route iterator. The BPF show path only widens the race.

Affected Software

VendorProductVersion RangeStatus
LinuxLinux8d2ca1d7b5c3e63b3a8a81ae99015b615c5f2bf7 < 0eede1689610e9eeaf729ba86fd1321799eb91a0affected
LinuxLinux8d2ca1d7b5c3e63b3a8a81ae99015b615c5f2bf7 < b89b691dd00bf39b9ba39ab9446f8c62f419fa7baffected
LinuxLinux8d2ca1d7b5c3e63b3a8a81ae99015b615c5f2bf7 < 4553cfafa8d05c4ce20b1d18f79d9bb3b303fc02affected
LinuxLinux8d2ca1d7b5c3e63b3a8a81ae99015b615c5f2bf7 < 19b4ed644d68098cc62ab612727f40d30f43476caffected
LinuxLinux3.13affected
LinuxLinux0 < 3.13unaffected
LinuxLinux6.12.111 <= 6.12.*unaffected
LinuxLinux6.18.53 <= 6.18.*unaffected
LinuxLinux7.2.7 <= 7.2.*unaffected
LinuxLinux7.3-rc3 <= *unaffected

Weaknesses

References