Linux kernel DRM GEM: handle-change race frees a GEM object still referenced by a live handle
Impact
drm_gem_change_handle_ioctl() left the old handle live in the object's IDR between dropping and retaking table_lock. A concurrent GEM_CLOSE on that old handle succeeds in the window, drops handle_count to zero and frees the GEM object while the new handle's IDR entry still points at it - a use-after-free on a GPU buffer object reachable from a process that merely holds a DRM render node. This is DRM core, not one vendor's driver, so it applies to amdgpu, nouveau and the other accelerator drivers that sit on GEM. On a GPU node where tenants get /dev/dri/renderD* into their containers, the floor is a kernel crash that kills every job on the node and the ceiling is kernel memory corruption from a local tenant. The fix NULLs the old IDR entry before releasing table_lock so a racing close sees NULL and returns -EINVAL.
Who can reach it
Local: any process with an open DRM device - in practice any tenant whose pod is handed a render node - racing GEM_HANDLE_CHANGE against GEM_CLOSE. No elevated privilege needed.
What to do
Update to a stable kernel carrying the linked fix and reboot the node; a DRM core fix cannot be applied without replacing the running kernel, and the GPU drivers cannot be unloaded under live workloads. No configuration mitigation short of not exposing DRM render nodes to untrusted workloads. Drain the node before the reboot.
References
Related entries
- Linux kernel amdgpu firmware, ACPI and IP-block initialisation (drm/amdgpu/vce1): An out-of-bounds access in the amdgpuCVE-2026-64516 · Linux kernel amdgpu firmware, ACPI and IP-block initialisation (drm/amdgpu/vce1)High
- Linux kernel amdgpu firmware, ACPI and IP-block initialisation (drm/amdgpu/vcn4): A correctness defect in the amdgpuCVE-2026-68107 · Linux kernel amdgpu firmware, ACPI and IP-block initialisation (drm/amdgpu/vcn4)High
- Linux kernel amdgpu firmware, ACPI and IP-block initialisation (drm/amdgpu/vce): An out-of-bounds access in the amdgpuCVE-2026-68108 · Linux kernel amdgpu firmware, ACPI and IP-block initialisation (drm/amdgpu/vce)High
- Linux kernel drm_gpusvm: device mapping leak on the error path of drm_gpusvm_get_pages()CVE-2026-68240 · Linux kernel drm_gpusvm (shared virtual memory page mapping)High
- Linux kernel drm/vmwgfx: undersized DMA command lets one command rewrite another's verified fieldsCVE-2026-74443 · Linux kernel drm/vmwgfx (DMA command suffix bounds check in vmw_cmd_dma)High
- Linux kernel amdxdna: use-after-free on the IOMMU domain when the accelerator device is removedCVE-2026-80608 · Linux kernel accel/amdxdna (AMD XDNA NPU driver, IOMMU domain lifetime)High
This entry is curated: imported from vendor advisories with machine assistance, not yet individually verified. Confirm against your vendor's advisory before acting, and report anything wrong.