← Back to CVE List
CVE-2026-92507NVD
Vulnerability 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.
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.
CVSS v3.1 Base Metrics — Score 7.8 (HIGH)
Attack VectorLocal
Attack ComplexityLow
Privileges RequiredLow
User InteractionNone
ScopeUnchanged
ConfidentialityHigh
IntegrityHigh
AvailabilityHigh
Affected & Patched Versions
- Linux Linux >= 91a7c58fce065506fd98954d27694e5d83c96638 and < df0e9efe61ca706a07b1c9bf93fcb9032455efc4
- Linux Linux >= 91a7c58fce065506fd98954d27694e5d83c96638 and < 7647363fa02046da681acc3c827d9f301c06e0e7
- Linux Linux >= 91a7c58fce065506fd98954d27694e5d83c96638 and < d9c0daf9362aad2aeed1d9c5536d108772a8d31c
- Linux Linux >= 91a7c58fce065506fd98954d27694e5d83c96638 and < 66d65f36d39759e9f62dc746dc71d862f20f827f
- Linux Linux >= 91a7c58fce065506fd98954d27694e5d83c96638 and < c06f2856a1d7e75a5ff247fc05224aa2452e7265
- Linux Linux >= 91a7c58fce065506fd98954d27694e5d83c96638 and < 8b90e701342275f414e36e7421c502237df241ad
- Linux Linux >= 5.10
- Linux Linux df0e9efe61ca706a07b1c9bf93fcb9032455efc4
- Linux Linux 7647363fa02046da681acc3c827d9f301c06e0e7
- Linux Linux d9c0daf9362aad2aeed1d9c5536d108772a8d31c
- Linux Linux 66d65f36d39759e9f62dc746dc71d862f20f827f
- Linux Linux c06f2856a1d7e75a5ff247fc05224aa2452e7265
- Linux Linux 8b90e701342275f414e36e7421c502237df241ad
External References
- https://git.kernel.org/stable/c/df0e9efe61ca706a07b1c9bf93fcb9032455efc4
- https://git.kernel.org/stable/c/7647363fa02046da681acc3c827d9f301c06e0e7
- https://git.kernel.org/stable/c/d9c0daf9362aad2aeed1d9c5536d108772a8d31c
- https://git.kernel.org/stable/c/66d65f36d39759e9f62dc746dc71d862f20f827f
- https://git.kernel.org/stable/c/c06f2856a1d7e75a5ff247fc05224aa2452e7265
- https://git.kernel.org/stable/c/8b90e701342275f414e36e7421c502237df241ad