CVE-2026-74334 (GCVE-0-2026-74334)
Vulnerability from cvelistv5
Published
2026-08-15 05:58
Modified
2026-08-17 05:46
Summary
In the Linux kernel, the following vulnerability has been resolved: RDMA/nldev: Fix locking when accessing mr->pd Sashiko points out that, due to rereg_mr, the PD is actually variable and all the touches in nldev are racy. Use mr->device instead of mr->pd->device. Getting the PD restrack ID is more tricky. To avoid disturbing all the happy paths, add an rdma_restrack_sync() operation which is sort of like flush_workqueue() or synchronize_irq(): after it returns, all the old nldev touches to the mr are gone and everything sees the new PD. This makes it safe to reach into the PD pointer.
Impacted products
Vendor Product Version
Linux Linux Version: da5c8507821573b8ed6e3f47e009f273493ffaf7
Version: da5c8507821573b8ed6e3f47e009f273493ffaf7
Create a notification for this product.
Show details on NVD website


{
  "containers": {
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "drivers/infiniband/core/nldev.c",
            "drivers/infiniband/core/restrack.c",
            "drivers/infiniband/core/restrack.h",
            "drivers/infiniband/core/uverbs_cmd.c",
            "include/rdma/ib_verbs.h"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "1a132ee4e655288d9a0937ea5109a0d038431ae9",
              "status": "affected",
              "version": "da5c8507821573b8ed6e3f47e009f273493ffaf7",
              "versionType": "git"
            },
            {
              "lessThan": "50d5c02ab8e62325548bd3a6e6b758a9dcd6e7c3",
              "status": "affected",
              "version": "da5c8507821573b8ed6e3f47e009f273493ffaf7",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "drivers/infiniband/core/nldev.c",
            "drivers/infiniband/core/restrack.c",
            "drivers/infiniband/core/restrack.h",
            "drivers/infiniband/core/uverbs_cmd.c",
            "include/rdma/ib_verbs.h"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "4.18"
            },
            {
              "lessThan": "4.18",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "7.1.*",
              "status": "unaffected",
              "version": "7.1.5",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "*",
              "status": "unaffected",
              "version": "7.2",
              "versionType": "original_commit_for_fix"
            }
          ]
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.1.5",
                  "versionStartIncluding": "4.18",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.2",
                  "versionStartIncluding": "4.18",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nRDMA/nldev: Fix locking when accessing mr-\u003epd\n\nSashiko points out that, due to rereg_mr, the PD is actually variable and\nall the touches in nldev are racy.\n\nUse mr-\u003edevice instead of mr-\u003epd-\u003edevice.\n\nGetting the PD restrack ID is more tricky. To avoid disturbing all the\nhappy paths, add an rdma_restrack_sync() operation which is sort of like\nflush_workqueue() or synchronize_irq(): after it returns, all the old\nnldev touches to the mr are gone and everything sees the new PD. This\nmakes it safe to reach into the PD pointer."
        }
      ],
      "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 bug is reached via local NETLINK_RDMA nldev MR resource dumps and concurrent IB_USER_VERBS_CMD_REREG_MR ioctl on /dev/infiniband/uverbs; it is not triggered by remote RDMA/InfiniBand/RoCE network traffic.\nAC:L - An attacker controls both race sides by spawning threads that hammer rereg_mr with IB_MR_REREG_PD and nldev RES_MR_GET dumps, optionally deallocating the old PD; no timing or layout conditions outside attacker control are required.\nPR:L - Exploitation needs only local uverbs access (device nodes default 0666) plus NETLINK_RDMA dumps; CAP_NET_ADMIN for netlink send is obtainable by unprivileged users via user namespaces, not real init-namespace root.\nUI:N - No victim interaction is required; the attacker triggers both the rereg_mr PD change and the concurrent nldev MR dump from their own process.\nS:U - Impact is kernel heap corruption and privilege escalation within the host kernel security boundary, not a VM escape, IOMMU bypass, or cross-authority sandbox breakout.\nC:H - Concurrent rereg_mr can free the old ib_pd while nldev still dereferences mr-\u003epd for device and res.id, creating a use-after-free that enables arbitrary kernel memory disclosure via controlled reuse of freed slab objects.\nI:H - The ib_pd UAF is exploitable for heap grooming and arbitrary kernel write or control-flow hijack, not merely a bounded data corruption or guaranteed crash.\nA:H - The race reliably causes kernel oops or panic from dereferencing a freed ib_pd during nldev dumps, and UAF exploitation can additionally crash or hang the system during heap manipulation."
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-08-17T05:46:03.176Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/1a132ee4e655288d9a0937ea5109a0d038431ae9"
        },
        {
          "url": "https://git.kernel.org/stable/c/50d5c02ab8e62325548bd3a6e6b758a9dcd6e7c3"
        }
      ],
      "title": "RDMA/nldev: Fix locking when accessing mr-\u003epd",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2026-74334",
    "datePublished": "2026-08-15T05:58:26.455Z",
    "dateReserved": "2026-08-15T05:44:03.885Z",
    "dateUpdated": "2026-08-17T05:46:03.176Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2"
}


Log in or create an account to share your comment.




Tags
Taxonomy of the tags.


Loading…

Loading…

Loading…

Sightings

Author Source Type Date

Nomenclature

  • Seen: The vulnerability was mentioned, discussed, or seen somewhere by the user.
  • Confirmed: The vulnerability is confirmed from an analyst perspective.
  • Published Proof of Concept: A public proof of concept is available for this vulnerability.
  • Exploited: This vulnerability was exploited and seen by the user reporting the sighting.
  • Patched: This vulnerability was successfully patched by the user reporting the sighting.
  • Not exploited: This vulnerability was not exploited or seen by the user reporting the sighting.
  • Not confirmed: The user expresses doubt about the veracity of the vulnerability.
  • Not patched: This vulnerability was not successfully patched by the user reporting the sighting.


Loading…

Loading…