CVE-2026-93267: RDMA/core: Fix potential use after free in uverbs_free_dmah()

Published Sep 24, 2026
·
Updated

In the Linux kernel, the following vulnerability has been resolved:

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

When accessing a dmah via the netlink path the only synchronization mechanism for the said dmah is rdmarestrackget(). Currently, rdmarestrackdel() is invoked at the end of uverbsfreedmah(), 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 rdmarestrackbegindel() call to the start of uverbsfreedmah(), 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.

Affected Software

1 affected component
Linux Linux kernel

Event History

Sep 24, 2026
CVE Published
via MITRE·03:52 PM
Data Sourced
via MITRE·03:52 PM
Description
Data Sourced
via NVD·04:17 PM
Description

Frequently Asked Questions

1

Which systems are exposed to this race condition?

The affected path is in the Linux kernel RDMA core and involves DMA handles accessed through the RDMA netlink path. Systems not using this RDMA DMA-handle lifecycle are not described as reaching the vulnerable path.

2

What must occur for the use-after-free window to be reached?

A DMA handle must be accessed through restrack on the netlink path while uverbs_free_dmah() is destroying it. The race exists because vendor-specific resources can be freed before the handle is removed from restrack, allowing a new reference during that short interval.

3

What change resolves the issue?

The fix removes the DMA handle from restrack at the beginning of uverbs_free_dmah() by calling rdma_restrack_begin_del() before internal resources are released. This prevents new users from obtaining references to a handle being destroyed.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203