Skip to content
Heist/ feed
Unrated

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

Type: advisorySource: Official CVE List1 source record

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.

Announced Source revision 1
Original source ↗

CVE-2025-71097

Primary source · Revision 1

Imported from structured advisory data. Source references identify upstream records or fields; verify affected versions and your deployed configuration.

Security context

Source reference: cve:CVE-2025-71097

Linux

Source reference: /containers/cna/affected/0/product

Affected versions
Not stated in this record
Fixed versions
Not stated in this record
Prerequisites
Not stated in this record

Linux

Source reference: /containers/cna/affected/1/product

Affected versions
Not stated in this record
Fixed versions
Not stated in this record
Prerequisites
Not stated in this record

Structured affected-version data

Original package identities and version rules from this source.

[
  {
    "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
    "vendor": "Linux",
    "product": "Linux",
    "versions": [
      {
        "status": "affected",
        "version": "493ced1ac47c48bb86d9d4e8e87df8592be85a0e",
        "lessThan": "5de7ad7e18356e39e8fbf7edd185a5faaf4f385a",
        "versionType": "git"
      },
      {
        "status": "affected",
        "version": "493ced1ac47c48bb86d9d4e8e87df8592be85a0e",
        "lessThan": "33ff5c207c873215e54e6176624ed57423cb7dea",
        "versionType": "git"
      },
      {
        "status": "affected",
        "version": "493ced1ac47c48bb86d9d4e8e87df8592be85a0e",
        "lessThan": "30386e090c49e803c0616a7147e43409c32a2b0e",
        "versionType": "git"
      },
      {
        "status": "affected",
        "version": "493ced1ac47c48bb86d9d4e8e87df8592be85a0e",
        "lessThan": "5979338c83012110ccd45cae6517591770bfe536",
        "versionType": "git"
      },
      {
        "status": "affected",
        "version": "493ced1ac47c48bb86d9d4e8e87df8592be85a0e",
        "lessThan": "ee4183501ea556dca31f5ffd8690aa9fd25b609f",
        "versionType": "git"
      },
      {
        "status": "affected",
        "version": "493ced1ac47c48bb86d9d4e8e87df8592be85a0e",
        "lessThan": "e3fc381320d04e4a74311e576a86cac49a16fc43",
        "versionType": "git"
      },
      {
        "status": "affected",
        "version": "493ced1ac47c48bb86d9d4e8e87df8592be85a0e",
        "lessThan": "ac782f4e3bfcde145b8a7f8af31d9422d94d172a",
        "versionType": "git"
      }
    ],
    "programFiles": [
      "net/ipv4/fib_trie.c"
    ],
    "defaultStatus": "unaffected"
  },
  {
    "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
    "vendor": "Linux",
    "product": "Linux",
    "versions": [
      {
        "status": "affected",
        "version": "5.3"
      },
      {
        "status": "unaffected",
        "version": "0",
        "lessThan": "5.3",
        "versionType": "semver"
      },
      {
        "status": "unaffected",
        "version": "5.10.248",
        "versionType": "semver",
        "lessThanOrEqual": "5.10.*"
      },
      {
        "status": "unaffected",
        "version": "5.15.198",
        "versionType": "semver",
        "lessThanOrEqual": "5.15.*"
      },
      {
        "status": "unaffected",
        "version": "6.1.160",
        "versionType": "semver",
        "lessThanOrEqual": "6.1.*"
      },
      {
        "status": "unaffected",
        "version": "6.6.120",
        "versionType": "semver",
        "lessThanOrEqual": "6.6.*"
      },
      {
        "status": "unaffected",
        "version": "6.12.64",
        "versionType": "semver",
        "lessThanOrEqual": "6.12.*"
      },
      {
        "status": "unaffected",
        "version": "6.18.4",
        "versionType": "semver",
        "lessThanOrEqual": "6.18.*"
      },
      {
        "status": "unaffected",
        "version": "6.19",
        "versionType": "original_commit_for_fix",
        "lessThanOrEqual": "*"
      }
    ],
    "programFiles": [
      "net/ipv4/fib_trie.c"
    ],
    "defaultStatus": "affected"
  }
]
Related CVEs
CVE-2025-71097

Source reference: /cveMetadata/cveId

Publisher severity

No explicit severity was provided.

Event
#39150 · Revision 1
Added to Heist Feed
Publisher date
Read the original announcement