CVE-2025-71097

Summary

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

ipv4: Fix reference count leak when using error routes with nexthop objects

When a nexthop object is deleted, it is marked as dead and then fib_table_flush() is called to flush all the routes that are using the dead nexthop.

The current logic in fib_table_flush() is to only flush error routes (e.g., blackhole) when it is called as part of network namespace dismantle (i.e., with flush_all=true). Therefore, error routes are not flushed when their nexthop object is deleted:

ip link add name dummy1 up type dummy

ip nexthop add id 1 dev dummy1

ip route add 198.51.100.1/32 nhid 1

ip route add blackhole 198.51.100.2/32 nhid 1

ip nexthop del id 1

ip route show

blackhole 198.51.100.2 nhid 1 dev dummy1

As such, they keep holding a reference on the nexthop object which in turn holds a reference on the nexthop device, resulting in a reference count leak:

ip link del dev dummy1

[ 70.516258] unregister_netdevice: waiting for dummy1 to become free. Usage count = 2

Fix by flushing error routes when their nexthop is marked as dead.

IPv6 does not suffer from this problem.

Affected Software

VendorProductVersion RangeStatus
LinuxLinux493ced1ac47c48bb86d9d4e8e87df8592be85a0e < 5de7ad7e18356e39e8fbf7edd185a5faaf4f385aaffected
LinuxLinux493ced1ac47c48bb86d9d4e8e87df8592be85a0e < 33ff5c207c873215e54e6176624ed57423cb7deaaffected
LinuxLinux493ced1ac47c48bb86d9d4e8e87df8592be85a0e < 30386e090c49e803c0616a7147e43409c32a2b0eaffected
LinuxLinux493ced1ac47c48bb86d9d4e8e87df8592be85a0e < 5979338c83012110ccd45cae6517591770bfe536affected
LinuxLinux493ced1ac47c48bb86d9d4e8e87df8592be85a0e < ee4183501ea556dca31f5ffd8690aa9fd25b609faffected
LinuxLinux493ced1ac47c48bb86d9d4e8e87df8592be85a0e < e3fc381320d04e4a74311e576a86cac49a16fc43affected
LinuxLinux493ced1ac47c48bb86d9d4e8e87df8592be85a0e < ac782f4e3bfcde145b8a7f8af31d9422d94d172aaffected
LinuxLinux5.3affected
LinuxLinux0 < 5.3unaffected
LinuxLinux5.10.248 <= 5.10.*unaffected
LinuxLinux5.15.198 <= 5.15.*unaffected
LinuxLinux6.1.160 <= 6.1.*unaffected
LinuxLinux6.6.120 <= 6.6.*unaffected
LinuxLinux6.12.64 <= 6.12.*unaffected
LinuxLinux6.18.4 <= 6.18.*unaffected
LinuxLinux6.19 <= *unaffected

Weaknesses

ADP Enrichment

CISA ADP Vulnrichment

  • SSVC:
  • Exploitation: none
    • Automatable: no
    • Technical Impact: partial

References