Skip to content
Heist/ feed
Back to feed
HighFix available

RDMA/core: Fix potential use after free in ib_dealloc_pd_user()

Type: advisorySources: OSV

In the Linux kernel, the following vulnerability has been resolved: RDMA/core: Fix potential use after free in ib_dealloc_pd_user() When accessing a PD via the netlink path the only synchronization mechanism for the said PD is rdma_restrack_get(). Currently, rdma_restrack_del() is invoked at the end of ib_dealloc_pd_user(), which is too late, since by that point vendor-specific resources associated with the PD might already be freed. This can leave a short window where the PD 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 ib_dealloc_pd_user(), ensuring that the PD is removed from restrack before its internal resources are released. This guarantees that no new users hold references to a PD 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.

Products
Kernel
Affected versions
Not specified
Fixed versions
6.1.188, 6.12.110, 6.18.52, 6.6.157, 7.2.6
CVEs
CVE-2026-92507
Confirmed fixed CVEs
Not specified
Updated in this feed
5 Nov 2026, 00:02 UTC · Revision 1

Source evidence

RDMA/core: Fix potential use after free in ib_dealloc_pd_user()

core-osv · Original source

Published 17 Sept 2026, 16:10 UTC

In the Linux kernel, the following vulnerability has been resolved: RDMA/core: Fix potential use after free in ib_dealloc_pd_user() When accessing a PD via the netlink path the only synchronization mechanism for the said PD is rdma_restrack_get(). Currently, rdma_restrack_del() is invoked at the end of ib_dealloc_pd_user(), which is too late, since by that point vendor-specific resources associated with the PD might already be freed. This can leave a short window where the PD 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 ib_dealloc_pd_user(), ensuring that the PD is removed from restrack before its internal resources are released. This guarantees that no new users hold references to a PD 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.

osv:CVE-2026-92507

Kernel

Fixed versions: 6.1.188, 6.6.157, 6.12.110, 6.18.52, 7.2.6

Complete source record
{
  "id": "4718f1fd17b0130e43519c6fe21576141803bea65469a18eb701c009dfdd872e",
  "url": "https://osv.dev/vulnerability/CVE-2026-92507",
  "method": "structured",
  "payload": {
    "kind": "advisory",
    "title": "RDMA/core: Fix potential use after free in ib_dealloc_pd_user()",
    "summary": "In the Linux kernel, the following vulnerability has been resolved: RDMA/core: Fix potential use after free in ib_dealloc_pd_user() When accessing a PD via the netlink path the only synchronization mechanism for the said PD is rdma_restrack_get(). Currently, rdma_restrack_del() is invoked at the end of ib_dealloc_pd_user(), which is too late, since by that point vendor-specific resources associated with the PD might already be freed. This can leave a short window where the PD 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 ib_dealloc_pd_user(), ensuring that the PD is removed from restrack before its internal resources are released. This guarantees that no new users hold references to a PD 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.",
    "evidence": "osv:CVE-2026-92507",
    "products": [
      {
        "name": {
          "value": "Kernel",
          "evidence": "/affected/1/package/name"
        },
        "prerequisites": [],
        "fixed_versions": [
          {
            "value": "6.1.188",
            "evidence": "/affected/1/ranges"
          },
          {
            "value": "6.6.157",
            "evidence": "/affected/1/ranges"
          },
          {
            "value": "6.12.110",
            "evidence": "/affected/1/ranges"
          },
          {
            "value": "6.18.52",
            "evidence": "/affected/1/ranges"
          },
          {
            "value": "7.2.6",
            "evidence": "/affected/1/ranges"
          }
        ],
        "affected_versions": []
      }
    ],
    "severity": "high",
    "structured": {
      "id": "CVE-2026-92507",
      "aliases": [
        "CVE-2026-92507"
      ],
      "metrics": [
        {
          "type": "CVSS_V3",
          "score": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H"
        }
      ],
      "affected": [
        {
          "ranges": [
            {
              "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
              "type": "GIT",
              "events": [
                {
                  "introduced": "91a7c58fce065506fd98954d27694e5d83c96638"
                },
                {
                  "fixed": "df0e9efe61ca706a07b1c9bf93fcb9032455efc4"
                },
                {
                  "fixed": "7647363fa02046da681acc3c827d9f301c06e0e7"
                },
                {
                  "fixed": "d9c0daf9362aad2aeed1d9c5536d108772a8d31c"
                },
                {
                  "fixed": "66d65f36d39759e9f62dc746dc71d862f20f827f"
                },
                {
                  "fixed": "c06f2856a1d7e75a5ff247fc05224aa2452e7265"
                },
                {
                  "fixed": "8b90e701342275f414e36e7421c502237df241ad"
                }
              ]
            }
          ],
          "database_specific": {
            "source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-92507.json"
          }
        },
        {
          "ranges": [
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "5.10.0"
                },
                {
                  "fixed": "6.1.188"
                }
              ]
            },
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "6.2.0"
                },
                {
                  "fixed": "6.6.157"
                }
              ]
            },
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "6.7.0"
                },
                {
                  "fixed": "6.12.110"
                }
              ]
            },
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "6.13.0"
                },
                {
                  "fixed": "6.18.52"
                }
              ]
            },
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "6.19.0"
                },
                {
                  "fixed": "7.2.6"
                }
              ]
            }
          ],
          "package": {
            "name": "Kernel",
            "ecosystem": "Linux"
          },
          "database_specific": {
            "source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-92507.json"
          }
        }
      ],
      "modified": "2026-10-28T02:30:40.501590653Z",
      "provider": "osv",
      "references": [
        "https://git.kernel.org/stable/c/66d65f36d39759e9f62dc746dc71d862f20f827f",
        "https://git.kernel.org/stable/c/7647363fa02046da681acc3c827d9f301c06e0e7",
        "https://git.kernel.org/stable/c/8b90e701342275f414e36e7421c502237df241ad",
        "https://git.kernel.org/stable/c/c06f2856a1d7e75a5ff247fc05224aa2452e7265",
        "https://git.kernel.org/stable/c/d9c0daf9362aad2aeed1d9c5536d108772a8d31c",
        "https://git.kernel.org/stable/c/df0e9efe61ca706a07b1c9bf93fcb9032455efc4",
        "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/92xxx/CVE-2026-92507.json",
        "https://nvd.nist.gov/vuln/detail/CVE-2026-92507",
        "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git"
      ],
      "provider_metadata": {
        "cna_assigner": "Linux",
        "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/92xxx/CVE-2026-92507.json"
      }
    },
    "related_cves": [
      {
        "value": "CVE-2026-92507",
        "evidence": "/id"
      }
    ],
    "security_relevant": true,
    "severity_evidence": "/severity/0/score"
  },
  "source_id": "core-osv",
  "document_id": 508219,
  "published_at": "2026-09-17T16:10:18.748+00:00"
}