Skip to main content
← All vulnerabilities
CVE-2026-74561

nexthop: avoid unlocked f6i_list walk in nh_rt_cache_flush

Published
Last modified
published
Not listed in CISA KEV
Fix
Fixed in 6.18.57, 7.1.8
None on Exploit-DB, Metasploit or GitHub

Summary

In the Linux kernel, the following vulnerability has been resolved: nexthop: avoid unlocked f6i_list walk in nh_rt_cache_flush nh_rt_cache_flush() walks nh->f6i_list during an RTNL-serialized nexthop replace without holding nh->lock, racing the unlocked IPv6 route add/delete that mutate the list under nh->lock and free fib6_info entries (nh_rt_cache_flush() is inlined into rtm_new_nexthop()): BUG: KASAN: slab-use-after-free in nh_rt_cache_flush (net/ipv4/nexthop.c:2243) Read of size 8 at addr ffff888012953e18 by task exploit/146 nh_rt_cache_flush (net/ipv4/nexthop.c:2243) replace_nexthop (net/ipv4/nexthop.c:2610) rtm_new_nexthop (net/ipv4/nexthop.c:3323) rtnetlink_rcv_msg (net/core/rtnetlink.c:7076) Unlike the other f6i_list walks, this one bumps each route's sernum via fib6_update_sernum_upto_root(), which needs tb6_lock; taking nh->lock around it would invert the established tb6_lock -> nh->lock order and deadlock. As the only purpose is to invalidate cached dsts, bump the IPv6 sernum for the whole netns with rt_genid_bump_ipv6() instead, mirroring the rt_cache_flush() already done for IPv4 just above.

Timeline

  1. CVE published
  2. Record last updated

Affected versions

  • Linux Linux

    From 081efd18326e353c6fbfdeff903a83edde953f72 · fixed in f97fae992155b11da516a509c855ff9d0868b107; From 081efd18326e353c6fbfdeff903a83edde953f72 · fixed in 44f53e4331a30fabc38a411fae7524341b618db3; From 081efd18326e353c6fbfdeff903a83edde953f72 · fixed in 4787a6d2629b4e8c0b6bacab1f75c1660eca44d9

  • Linux Linux

    6.16

  • KernelLinux

    From 6.16.0 · fixed in 6.18.57; From 6.19.0 · fixed in 7.1.8

References 3

git.kernel.org