← Back to CVE Explorer

CVE-2026-93267

Full vulnerability record from the local CVENow database.

Description

In the Linux kernel, the following vulnerability has been resolved: RDMA/core: Fix potential use after free in uverbs_free_dmah() When accessing a dmah via the netlink path the only synchronization mechanism for the said dmah is rdma_restrack_get(). Currently, rdma_restrack_del() is invoked at the end of uverbs_free_dmah(), which is too late, since by that point vendor-specific resources associated with the dmah might already be freed. This can leave a short window where the dmah remains accessible through restrack, leading to a potential use-after-free. Fix this by moving the rdma_restrack_begin_del() call to the start of uverbs_free_dmah(), ensuring that the dmah is removed from restrack before its internal resources are released. This guarantees that no new users hold references to a dmah that is in the process of destruction. In addition, this change preserves the intended inverted order between create and destroy routines: resources are added to restrack at the end of successful creation, and hence shall be removed from the restrack first thing during the destruction flow, which keeps the lifecycle management consistent and predictable.

Severity
Not scored
CVSS score
Not available
Vulnerability status
Received
Source identifier
416baaa9-dc9f-4396-8d5f-8c081fb06d67
Published
2026-09-24 16:17:23.570000
Last modified
2026-10-19 10:17:18.093000
View original CVE JSON
{
  "id": "CVE-2026-93267",
  "sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
  "published": "2026-09-24T16:17:23.570",
  "lastModified": "2026-10-19T10:17:18.093",
  "vulnStatus": "Received",
  "cveTags": [],
  "descriptions": [
    {
      "lang": "en",
      "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nRDMA/core: Fix potential use after free in uverbs_free_dmah()\n\nWhen accessing a dmah via the netlink path the only synchronization\nmechanism for the said dmah is rdma_restrack_get().\nCurrently, rdma_restrack_del() is invoked at the end of\nuverbs_free_dmah(), which is too late, since by that point\nvendor-specific resources associated with the dmah might already be\nfreed. This can leave a short window where the dmah remains accessible\nthrough restrack, leading to a potential use-after-free.\n\nFix this by moving the rdma_restrack_begin_del() call to the start of\nuverbs_free_dmah(), ensuring that the dmah is removed from restrack\nbefore its internal resources are released. This guarantees that no new\nusers hold references to a dmah that is in the process of destruction.\n\nIn addition, this change preserves the intended inverted order\nbetween create and destroy routines: resources are added to\nrestrack at the end of successful creation, and hence shall be removed\nfrom the restrack first thing during the destruction flow, which keeps\nthe lifecycle management consistent and predictable."
    }
  ],
  "affected": [
    {
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
      "affectedData": [
        {
          "vendor": "Linux",
          "product": "Linux",
          "defaultStatus": "unaffected",
          "programFiles": [
            "drivers/infiniband/core/uverbs_std_types_dmah.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "versions": [
            {
              "version": "d83edab562a496a42720902a1d2effccd05c37c5",
              "lessThan": "8b22722f45a29a7c0900b1d4d0bc5da5492ece10",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "d83edab562a496a42720902a1d2effccd05c37c5",
              "lessThan": "bfc119a40c04bbe3daad826f2160ccbfae6c64ce",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "d83edab562a496a42720902a1d2effccd05c37c5",
              "lessThan": "2696626a0be5877f445fb647c25ef43930c777e6",
              "versionType": "git",
              "status": "affected"
            }
          ]
        },
        {
          "vendor": "Linux",
          "product": "Linux",
          "defaultStatus": "affected",
          "programFiles": [
            "drivers/infiniband/core/uverbs_std_types_dmah.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "versions": [
            {
              "version": "6.17",
              "status": "affected"
            },
            {
              "version": "0",
              "lessThan": "6.17",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "6.18.52",
              "lessThanOrEqual": "6.18.*",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "7.2.6",
              "lessThanOrEqual": "7.2.*",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "7.3",
              "lessThanOrEqual": "*",
              "versionType": "original_commit_for_fix",
              "status": "unaffected"
            }
          ]
        }
      ]
    }
  ],
  "metrics": {},
  "references": [
    {
      "url": "https://git.kernel.org/stable/c/2696626a0be5877f445fb647c25ef43930c777e6",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/8b22722f45a29a7c0900b1d4d0bc5da5492ece10",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/bfc119a40c04bbe3daad826f2160ccbfae6c64ce",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    }
  ]
}