CVE-2025-71097

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

State
Published
Severity
Not scored
Published
Jan 13, 2026
Updated
Oct 19, 2026
Reserved
Jan 13, 2026

Read the record on cve.org

Description

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.

Scores

The record has no CVSS score.

Weaknesses

  • CWE-401 Missing Release of Memory after Effective Lifetime

Affected Products

ProductVersions
LinuxLinux
  • 493ced1ac47c48bb86d9d4e8e87df8592be85a0e to before 5de7ad7e18356e39e8fbf7edd185a5faaf4f385aAffected
  • 493ced1ac47c48bb86d9d4e8e87df8592be85a0e to before 33ff5c207c873215e54e6176624ed57423cb7deaAffected
  • 493ced1ac47c48bb86d9d4e8e87df8592be85a0e to before 30386e090c49e803c0616a7147e43409c32a2b0eAffected
  • 493ced1ac47c48bb86d9d4e8e87df8592be85a0e to before 5979338c83012110ccd45cae6517591770bfe536Affected
  • 493ced1ac47c48bb86d9d4e8e87df8592be85a0e to before ee4183501ea556dca31f5ffd8690aa9fd25b609fAffected
  • 493ced1ac47c48bb86d9d4e8e87df8592be85a0e to before e3fc381320d04e4a74311e576a86cac49a16fc43Affected
  • 493ced1ac47c48bb86d9d4e8e87df8592be85a0e to before ac782f4e3bfcde145b8a7f8af31d9422d94d172aAffected
LinuxLinux
  • 5.3Affected
  • before 5.3Not affected
  • 5.10.248 through 5.10.*Not affected
  • 5.15.198 through 5.15.*Not affected
  • 6.1.160 through 6.1.*Not affected
  • 6.6.120 through 6.6.*Not affected
  • 6.12.64 through 6.12.*Not affected
  • 6.18.4 through 6.18.*Not affected
  • 6.19 and laterNot affected

References

Every record here comes from the CVE Program’s CVE List. © 1999–2026 The MITRE Corporation. CVE is a registered trademark of The MITRE Corporation. The records are reproduced under the CVE Program terms of use.