CVE-2026-93823: drm/amdkfd: Let driver decide buffer size at AMDKFD_IOC_GET_DMABUF_INFO ioctl
In the Linux kernel, the following vulnerability has been resolved:
drm/amdkfd: Let driver decide buffer size at AMDKFDIOCGETDMABUFINFO ioctl
amdkfd driver needs allocate buffer to return bo metadata to user space. The buffer size is controlled by user currently. It is a potential security issue that hostile value (e.g. 2 GiB) lets any render-group user trigger order-MAX allocation/OOM in kernel context.
This patch first finds bo metadata size. If the size is smaller than user provided value drive can safely allocate buffer in kernel space and copy to user space buffer. If not, driver will let user know, not allocate and copy. User will redo with new buffer in user space.
This patch lets driver decide buffer allocation size to avoid potential hostile size from user space.
(cherry picked from commit f54ce9e8cbd3abe0eda3a285f54dc4f572fe589a)
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade to a fixed release to a version that resolves this vulnerability.
Patch f54ce9e8cbd3abe0eda3a285f54dc4f572fe589a
Event History
Frequently Asked Questions
Who can trigger the affected allocation path?
Any user in the render group can supply a hostile buffer-size value through the AMDKFD_IOC_GET_DMABUF_INFO ioctl. The issue is therefore relevant on systems where untrusted or less-trusted users have render-group access.
What does exploitation require?
An attacker needs local access as a render-group user and must invoke the AMDKFD_IOC_GET_DMABUF_INFO ioctl with an oversized value, such as 2 GiB. No remote attack path is described.
What is the practical impact?
The user-controlled size can cause the driver to attempt an order-MAX allocation in kernel context, potentially resulting in out-of-memory conditions. The provided data describes a denial-of-service risk rather than data disclosure or privilege escalation.
How does the fix prevent the issue?
The driver determines the buffer-object metadata size before allocating memory. If the requested user buffer is too small, it reports the required size instead of allocating and copying in kernel space; the user must retry with an appropriately sized userspace buffer.