Linux kernel dma-fence: zero-count dedup returns 1, letting amdgpu user-queue waits read an uninitialized fence
Impact
dma_fence_dedup_array() returned 1 for num_fences == 0 because the loop body never ran and the function returned ++j. The in-tree caller __dma_fence_unwrap_merge() has a zero/one fast path and is safe, but amdgpu_userq_wait_*() can reach the dedup call with a zero local count and then dereference an uninitialized slot in the fence array. On AMD Instinct nodes using user-mode queues, a tenant process issuing a user-queue wait with no fences can get the kernel to follow an uninitialized pointer - a crash that takes the whole node and every colocated GPU job with it, with the usual uninitialized-pointer escalation question open. The fix makes the function return 0 early, matching its documented contract.
Who can reach it
Local user with access to an AMD GPU render node (/dev/dri/renderD*, the amdgpu user-queue wait ioctls). Any tenant with a GPU pod on an amdgpu node qualifies; no privileged capability needed beyond the device file the runtime already injects.
What to do
Take the stable kernel fix and reboot each amdgpu node - the driver cannot be reloaded under live GPU workloads, so this is drain-and-reboot per node. Hosts whose amdgpu builds do not expose user queues are not reachable through the known caller and can follow the normal kernel cadence.
References
Related entries
- NVIDIA/Mellanox ConnectX driver (mlx5_ib user access region index release): The driver released the software-side UARCVE-2026-74296 · NVIDIA/Mellanox ConnectX driver (mlx5_ib user access region index release)High
- Linux kernel amdgpu RAS / GPU reset and recovery path (drm/amdgpu): An out-of-bounds access in the amdgpu RAS / GPUCVE-2026-74357 · Linux kernel amdgpu RAS / GPU reset and recovery path (drm/amdgpu)High
- Linux kernel vmwgfx: undersized DRAW_PRIMITIVES header wraps the bound into an out-of-bounds readCVE-2026-74444 · Linux kernel drm/vmwgfx (vmw_cmd_draw DRAW_PRIMITIVES header size)High
- Linux kernel amdgpu display core (DC/DM) (drm/amd/display): An out-of-bounds access in the amdgpu display core (DC/DM)CVE-2026-74449 · Linux kernel amdgpu display core (DC/DM) (drm/amd/display)High
- Linux kernel amdgpu power management (SMU/powerplay) (drm/amd/pm): A use-after-free in the amdgpu power managementCVE-2026-74450 · Linux kernel amdgpu power management (SMU/powerplay) (drm/amd/pm)High
- Linux kernel drm_gem_shmem: PMD huge-page fault can map past the VMA end and trip VM_BUG_ONCVE-2026-80582 · Linux kernel DRM GEM shmem helper (drm_gem_shmem ->huge_fault PMD path)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.