Executive brief
The Linux kernel's AMD GPU driver contains a flaw in user-queue creation that allows one queue to overwrite the doorbell mapping of another queue. This can cause interrupt routing errors and incorrect queue cleanup, potentially leading to GPU driver instability, data corruption in GPU workloads, or denial of service conditions on systems with AMD discrete GPUs.
Technical details
The vulnerability exists in the drm/amdgpu user-queue creation code (amdgpu_userq.c) where doorbell mappings are stored in an xarray using xa_store_irq(). This function allows overwriting existing entries, enabling a malicious or buggy user-space application to register a new queue with the same doorbell buffer object (BO) handle and offset, thereby overwriting an existing queue's doorbell mapping. The flaw can cause fence IRQ processing to be misrouted to the wrong queue and lead to one queue's cleanup erasing another queue's mapping. The fix replaces xa_store_irq() with xa_insert_irq(), which rejects mapping attempts to already-reserved doorbells. This requires user-space interaction (creating user-queues with GPU compute APIs) but no special privileges beyond GPU access.
Affected products
- Linux Linux kernel All versions with amdgpu user-queue support (approximately 6.5 and later)
Timeline
- 2026-08-10: disclosed
- 2026-06-24: patched: Original upstream fix committed