UBUNTU-CVE-2026-99148: Medium severity ubuntu/linux-hwe-edge vulnerability
In the Linux kernel, the following vulnerability has been resolved: drm/amdgpu: keep the eviction fence until the last handle is closed amdgpugemobjectclose() detaches the user queue eviction fence from the BO before it checks bova->refcount, so closing any handle of a BO removes the fence, even when the file still has another handle to the BO and the bova with its GPU mappings stays. The BO can then be evicted without suspending the user queues of the file, which keep accessing it through mappings that are only marked for update. Seen on navi31 with a SDMA user queue: a BO opened twice in the same file (GEMFLINK + GEMOPEN) loses its eviction fence when the second handle is closed (traced attach/detach of the fence): attach bo=ffff8c78a6c84c00 GEMCLOSE handle=7 detach bo=ffff8c78a6c84c00 while handle 6 and the mapping are still in use. Only detach the fence when the last reference to the bova goes away, matching amdgpugemobjectopen(), which attaches it only when the bova is created. With this the fence stays until the file is closed. (cherry picked from commit 8387982f03d4026b7dc11b0b5e3118298eee4d6a)
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
Linux kernelto a version that resolves this vulnerability.Patch 8387982f03d4026b7dc11b0b5e3118298eee4d6a
Event History
Frequently Asked Questions
Which systems are realistically exposed to this issue?
The issue affects systems using the AMDGPU DRM driver, specifically a scenario involving a GPU buffer object with multiple handles in the same file and an active GPU mapping. The reported observation was on Navi31 with an SDMA user queue.
What conditions are required to trigger the faulty fence removal?
A buffer object must be opened more than once in the same file, such as through GEM_FLINK and GEM_OPEN. Closing one handle while another handle and its bo_va GPU mapping remain in use can detach the eviction fence prematurely.
What is the operational impact of the premature fence detachment?
The buffer object can be evicted without suspending the file's user queues. Those queues may continue accessing the object through GPU mappings that are only marked for update.
What change resolves the issue?
The fix defers detaching the user-queue eviction fence until the last bo_va reference is gone. This preserves the fence while any handle and associated mapping remain in use, and keeps it until the file is closed.