CVE-2025-71097
CVE.org · Published
- Record status
- Published
- Identifier year (not publication year)
- 2025
- Source publication
- Source updated
- Imported by cveboard
- Source snapshot
- cve_2026-10-24_midnight_baseline ·
CNA source text (English)
ipv4: Fix reference count leak when using error routes with nexthop objects
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.
Scoped product and version facts
Fix information unknown; no fixed version is derived here. Missing information does not prove that no fix exists.
Exploitation unknown; this catalogue does not assess exploitation.
Linux
- Vendor
- Linux
- Product
- Linux
- Platforms
- Unknown
- Default status
unaffected
| Version (version) | Status (status) | Version scheme (versionType) | Exclusive end (lessThan) | Inclusive end (lessThanOrEqual) | Status changes (at → status) |
|---|---|---|---|---|---|
| 493ced1ac47c48bb86d9d4e8e87df8592be85a0e | affected | git | 5de7ad7e18356e39e8fbf7edd185a5faaf4f385a | Unavailable | None listed |
| 493ced1ac47c48bb86d9d4e8e87df8592be85a0e | affected | git | 33ff5c207c873215e54e6176624ed57423cb7dea | Unavailable | None listed |
| 493ced1ac47c48bb86d9d4e8e87df8592be85a0e | affected | git | 30386e090c49e803c0616a7147e43409c32a2b0e | Unavailable | None listed |
| 493ced1ac47c48bb86d9d4e8e87df8592be85a0e | affected | git | 5979338c83012110ccd45cae6517591770bfe536 | Unavailable | None listed |
| 493ced1ac47c48bb86d9d4e8e87df8592be85a0e | affected | git | ee4183501ea556dca31f5ffd8690aa9fd25b609f | Unavailable | None listed |
| 493ced1ac47c48bb86d9d4e8e87df8592be85a0e | affected | git | e3fc381320d04e4a74311e576a86cac49a16fc43 | Unavailable | None listed |
| 493ced1ac47c48bb86d9d4e8e87df8592be85a0e | affected | git | ac782f4e3bfcde145b8a7f8af31d9422d94d172a | Unavailable | None listed |
Linux
- Vendor
- Linux
- Product
- Linux
- Platforms
- Unknown
- Default status
affected
| Version (version) | Status (status) | Version scheme (versionType) | Exclusive end (lessThan) | Inclusive end (lessThanOrEqual) | Status changes (at → status) |
|---|---|---|---|---|---|
| 5.3 | affected | Unavailable | Unavailable | Unavailable | None listed |
| 0 | unaffected | semver | 5.3 | Unavailable | None listed |
| 5.10.248 | unaffected | semver | Unavailable | 5.10.* | None listed |
| 5.15.198 | unaffected | semver | Unavailable | 5.15.* | None listed |
| 6.1.160 | unaffected | semver | Unavailable | 6.1.* | None listed |
| 6.6.120 | unaffected | semver | Unavailable | 6.6.* | None listed |
| 6.12.64 | unaffected | semver | Unavailable | 6.12.* | None listed |
| 6.18.4 | unaffected | semver | Unavailable | 6.18.* | None listed |
| 6.19 | unaffected | original_commit_for_fix | Unavailable | * | None listed |