CVE-2025-39872 (GCVE-0-2025-39872)

Vulnerability from cvelistv5 – Published: 2025-09-23 06:00 – Updated: 2026-08-05 12:05
VLAI
Title
hsr: hold rcu and dev lock for hsr_get_port_ndev
Summary
In the Linux kernel, the following vulnerability has been resolved: hsr: hold rcu and dev lock for hsr_get_port_ndev hsr_get_port_ndev calls hsr_for_each_port, which need to hold rcu lock. On the other hand, before return the port device, we need to hold the device reference to avoid UaF in the caller function.
Assigner
Impacted products
Vendor Product Version
Linux Linux Affected: ef964411c8ca775967355d855abc56aeaca3c867 , < 9433ba79c2ec3ec7c9a711748701549339c3438c (git)
Affected: 9c10dd8eed74de9e8adeb820939f8745cd566d4a , < 68a6729afd3e8e9a2a32538642ce92b96ccf9b1d (git)
Affected: 9c10dd8eed74de9e8adeb820939f8745cd566d4a , < 847748fc66d08a89135a74e29362a66ba4e3ab15 (git)
Affected: 6.12.63 , < 6.12.64 (semver)
Create a notification for this product.
Linux Linux Affected: 6.14
Unaffected: 0 , < 6.14 (semver)
Unaffected: 6.12.64 , ≤ 6.12.* (semver)
Unaffected: 6.16.8 , ≤ 6.16.* (semver)
Unaffected: 6.17 , ≤ * (original_commit_for_fix)
Create a notification for this product.
Show details on NVD website

{
  "containers": {
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "drivers/net/ethernet/ti/icssg/icssg_prueth.c",
            "net/hsr/hsr_device.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "9433ba79c2ec3ec7c9a711748701549339c3438c",
              "status": "affected",
              "version": "ef964411c8ca775967355d855abc56aeaca3c867",
              "versionType": "git"
            },
            {
              "lessThan": "68a6729afd3e8e9a2a32538642ce92b96ccf9b1d",
              "status": "affected",
              "version": "9c10dd8eed74de9e8adeb820939f8745cd566d4a",
              "versionType": "git"
            },
            {
              "lessThan": "847748fc66d08a89135a74e29362a66ba4e3ab15",
              "status": "affected",
              "version": "9c10dd8eed74de9e8adeb820939f8745cd566d4a",
              "versionType": "git"
            },
            {
              "lessThan": "6.12.64",
              "status": "affected",
              "version": "6.12.63",
              "versionType": "semver"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "drivers/net/ethernet/ti/icssg/icssg_prueth.c",
            "net/hsr/hsr_device.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "6.14"
            },
            {
              "lessThan": "6.14",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.12.*",
              "status": "unaffected",
              "version": "6.12.64",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.16.*",
              "status": "unaffected",
              "version": "6.16.8",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "*",
              "status": "unaffected",
              "version": "6.17",
              "versionType": "original_commit_for_fix"
            }
          ]
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.12.64",
                  "versionStartIncluding": "6.12.63",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.16.8",
                  "versionStartIncluding": "6.14",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.17",
                  "versionStartIncluding": "6.14",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nhsr: hold rcu and dev lock for hsr_get_port_ndev\n\nhsr_get_port_ndev calls hsr_for_each_port, which need to hold rcu lock.\nOn the other hand, before return the port device, we need to hold the\ndevice reference to avoid UaF in the caller function."
        }
      ],
      "metrics": [
        {
          "cvssV3_1": {
            "baseScore": 7.8,
            "baseSeverity": "HIGH",
            "vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
            "version": "3.1"
          },
          "scenarios": [
            {
              "lang": "en",
              "value": "AV:L - The vulnerable path is entered from local socket/netlink operations \u2014 a multicast group join on the HSR master propagates via `hsr_set_rx_mode()` to the ICSSG slave\u0027s `ndo_set_rx_mode`, which queues the work that calls `hsr_get_port_ndev()`. A remote peer on the HSR ring cannot induce multicast address changes or HSR port reconfiguration, so this is not network-reachable.\nAC:L - The attacker fully controls the traversal side of the race by looping `IP_ADD_MEMBERSHIP`/`IP_DROP_MEMBERSHIP` to repeatedly queue `emac_ndo_set_rx_mode_work`, and the walk runs in preemptible process context with no RCU or RTNL held, so no tight timing window must be won \u2014 only overlap with a port-list mutation, which can be retried indefinitely.\nPR:L - Triggering the vulnerable `hsr_get_port_ndev()` traversal requires only an ordinary unprivileged UDP socket performing a multicast group join on the HSR interface; no capability check exists anywhere on that path. Widening the race window via HSR port reconfiguration needs only CAP_NET_ADMIN, which per kernel CNA guidance is scored as Low.\nUI:N - The entire sequence is driven by the attacker\u0027s own socket operations against an already-configured HSR-offload interface. No victim action is needed.\nS:U - The use-after-free corrupts kernel memory within the same kernel security authority; there is no VM, IOMMU, or sandbox boundary crossed.\nC:H - The unlocked RCU walk dereferences a freed `hsr_port` and the returned `net_device` is used without a reference, and `netdev_priv()` on that freed device is read as a `prueth_emac` \u2014 a use-after-free read whose contents the attacker can groom via heap spray, yielding kernel memory disclosure and pointer leakage.\nI:H - `icssg_fdb_setup()` performs `++(emac-\u003eprueth-\u003eicssg_hwcmdseq)` \u2014 a pointer loaded out of the freed object and then written through \u2014 plus further writes into PRU shared memory at addresses derived from freed data, giving a controllable write primitive suitable for control-flow hijacking after heap reuse.\nA:H - Following a `kfree_rcu()`-freed list node and dereferencing a freed `net_device` reliably produces an oops/panic (and slab corruption) even when not exploited further, and the attacker can retrigger it repeatedly on an industrial redundancy device."
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-08-05T12:05:48.806Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/9433ba79c2ec3ec7c9a711748701549339c3438c"
        },
        {
          "url": "https://git.kernel.org/stable/c/68a6729afd3e8e9a2a32538642ce92b96ccf9b1d"
        },
        {
          "url": "https://git.kernel.org/stable/c/847748fc66d08a89135a74e29362a66ba4e3ab15"
        }
      ],
      "title": "hsr: hold rcu and dev lock for hsr_get_port_ndev",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2025-39872",
    "datePublished": "2025-09-23T06:00:45.528Z",
    "dateReserved": "2025-04-16T07:20:57.144Z",
    "dateUpdated": "2026-08-05T12:05:48.806Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2",
  "vulnerability-lookup:meta": {
    "epss": {
      "cve": "CVE-2025-39872",
      "date": "2026-08-05",
      "epss": "0.00141",
      "percentile": "0.0392"
    },
    "nvd": "{\"cve\":{\"id\":\"CVE-2025-39872\",\"sourceIdentifier\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"published\":\"2025-09-23T06:15:46.533\",\"lastModified\":\"2026-07-30T06:23:53.157\",\"vulnStatus\":\"Modified\",\"cveTags\":[],\"descriptions\":[{\"lang\":\"en\",\"value\":\"In the Linux kernel, the following vulnerability has been resolved:\\n\\nhsr: hold rcu and dev lock for hsr_get_port_ndev\\n\\nhsr_get_port_ndev calls hsr_for_each_port, which need to hold rcu lock.\\nOn the other hand, before return the port device, we need to hold the\\ndevice reference to avoid UaF in the caller function.\"}],\"affected\":[{\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"affectedData\":[{\"vendor\":\"Linux\",\"product\":\"Linux\",\"defaultStatus\":\"unaffected\",\"programFiles\":[\"drivers/net/ethernet/ti/icssg/icssg_prueth.c\",\"net/hsr/hsr_device.c\"],\"repo\":\"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\"versions\":[{\"version\":\"ef964411c8ca775967355d855abc56aeaca3c867\",\"lessThan\":\"9433ba79c2ec3ec7c9a711748701549339c3438c\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"9c10dd8eed74de9e8adeb820939f8745cd566d4a\",\"lessThan\":\"68a6729afd3e8e9a2a32538642ce92b96ccf9b1d\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"9c10dd8eed74de9e8adeb820939f8745cd566d4a\",\"lessThan\":\"847748fc66d08a89135a74e29362a66ba4e3ab15\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"6.12.63\",\"lessThan\":\"6.12.64\",\"versionType\":\"semver\",\"status\":\"affected\"}]},{\"vendor\":\"Linux\",\"product\":\"Linux\",\"defaultStatus\":\"affected\",\"programFiles\":[\"drivers/net/ethernet/ti/icssg/icssg_prueth.c\",\"net/hsr/hsr_device.c\"],\"repo\":\"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\"versions\":[{\"version\":\"6.14\",\"status\":\"affected\"},{\"version\":\"0\",\"lessThan\":\"6.14\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.12.64\",\"lessThanOrEqual\":\"6.12.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.16.8\",\"lessThanOrEqual\":\"6.16.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.17\",\"lessThanOrEqual\":\"*\",\"versionType\":\"original_commit_for_fix\",\"status\":\"unaffected\"}]}]}],\"metrics\":{\"cvssMetricV31\":[{\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"type\":\"Secondary\",\"cvssData\":{\"version\":\"3.1\",\"vectorString\":\"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H\",\"baseScore\":7.8,\"baseSeverity\":\"HIGH\",\"attackVector\":\"LOCAL\",\"attackComplexity\":\"LOW\",\"privilegesRequired\":\"LOW\",\"userInteraction\":\"NONE\",\"scope\":\"UNCHANGED\",\"confidentialityImpact\":\"HIGH\",\"integrityImpact\":\"HIGH\",\"availabilityImpact\":\"HIGH\"},\"exploitabilityScore\":1.8,\"impactScore\":5.9},{\"source\":\"nvd@nist.gov\",\"type\":\"Primary\",\"cvssData\":{\"version\":\"3.1\",\"vectorString\":\"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H\",\"baseScore\":5.5,\"baseSeverity\":\"MEDIUM\",\"attackVector\":\"LOCAL\",\"attackComplexity\":\"LOW\",\"privilegesRequired\":\"LOW\",\"userInteraction\":\"NONE\",\"scope\":\"UNCHANGED\",\"confidentialityImpact\":\"NONE\",\"integrityImpact\":\"NONE\",\"availabilityImpact\":\"HIGH\"},\"exploitabilityScore\":1.8,\"impactScore\":3.6}]},\"weaknesses\":[{\"source\":\"nvd@nist.gov\",\"type\":\"Primary\",\"description\":[{\"lang\":\"en\",\"value\":\"NVD-CWE-noinfo\"}]}],\"configurations\":[{\"nodes\":[{\"operator\":\"OR\",\"negate\":false,\"cpeMatch\":[{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\",\"versionStartIncluding\":\"6.14\",\"versionEndExcluding\":\"6.16.8\",\"matchCriteriaId\":\"F6C3723D-6863-4401-AC08-FEB7AB987047\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:6.17:rc1:*:*:*:*:*:*\",\"matchCriteriaId\":\"327D22EF-390B-454C-BD31-2ED23C998A1C\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:6.17:rc2:*:*:*:*:*:*\",\"matchCriteriaId\":\"C730CD9A-D969-4A8E-9522-162AAF7C0EE9\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:6.17:rc3:*:*:*:*:*:*\",\"matchCriteriaId\":\"39982C4B-716E-4B2F-8196-FA301F47807D\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:6.17:rc4:*:*:*:*:*:*\",\"matchCriteriaId\":\"340BEEA9-D70D-4290-B502-FBB1032353B1\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:6.17:rc5:*:*:*:*:*:*\",\"matchCriteriaId\":\"47E4C5C0-079F-4838-971B-8C503D48FCC2\"}]}]}],\"references\":[{\"url\":\"https://git.kernel.org/stable/c/68a6729afd3e8e9a2a32538642ce92b96ccf9b1d\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/847748fc66d08a89135a74e29362a66ba4e3ab15\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/9433ba79c2ec3ec7c9a711748701549339c3438c\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"}]}}",
    "redhat_vex": {
      "aggregate_severity": "None",
      "current_release_date": "2026-06-30T10:30:46+00:00",
      "cve": "CVE-2025-39872",
      "id": "CVE-2025-39872",
      "initial_release_date": "2025-09-23T00:00:00+00:00",
      "product_status:known_not_affected": "274",
      "source": "Red Hat CSAF VEX",
      "status": "final",
      "title": "kernel: hsr: hold rcu and dev lock for hsr_get_port_ndev",
      "url": "https://security.access.redhat.com/data/csaf/v2/vex/2025/cve-2025-39872.json",
      "version": "3"
    },
    "suse_vex": {
      "aggregate_severity": "moderate",
      "current_release_date": "2026-07-31T01:05:34Z",
      "cve": "CVE-2025-39872",
      "id": "CVE-2025-39872",
      "initial_release_date": "2025-09-23T23:23:42Z",
      "product_status:known_not_affected": "416",
      "source": "SUSE CSAF VEX",
      "status": "interim",
      "title": "SUSE CVE CVE-2025-39872",
      "url": "https://ftp.suse.com/pub/projects/security/csaf-vex/cve-2025-39872.json",
      "version": "7"
    }
  }
}



Log in or create an account to share your comment.




Tags
Taxonomy of the tags.


Loading…

Loading…

Loading…

Forecast uses a logistic model when the trend is rising, or an exponential decay model when the trend is falling. Fitted via linearized least squares.

Sightings

Author Source Type Date Other

Nomenclature

  • Seen: The vulnerability was mentioned, discussed, or observed by the user.
  • Confirmed: The vulnerability has been validated from an analyst's perspective.
  • Published Proof of Concept: A public proof of concept is available for this vulnerability.
  • Exploited: The vulnerability was observed as exploited by the user who reported the sighting.
  • Patched: The vulnerability was observed as successfully patched by the user who reported the sighting.
  • Not exploited: The vulnerability was not observed as exploited by the user who reported the sighting.
  • Not confirmed: The user expressed doubt about the validity of the vulnerability.
  • Not patched: The vulnerability was not observed as successfully patched by the user who reported the sighting.

Loading…

Detection rules are retrieved from Rulezet.

Loading…

Loading…

Loading…