Linux kernel amdgpu: duplicate FENCE chunks in one submission leak a buffer-object reference per submit
Impact
amdgpu_cs_pass1() dispatches on chunk_id without rejecting repeated ids, and p->uf_bo is a single slot. A submission carrying two AMDGPU_CHUNK_ID_FENCE chunks runs amdgpu_cs_p1_user_fence() twice, overwriting p->uf_bo with a newly referenced BO while the first reference is never dropped; amdgpu_cs_parser_fini() only unrefs the final one. The commit notes the leaked BO outlives handle close and process exit, so the memory is not reclaimed when the job ends. On a shared GPU node any tenant holding a render node can repeat this in a loop and pin VRAM or GTT until allocations for other tenants fail, and the only reliable recovery is a node reboot.
Who can reach it
Local user with access to an amdgpu render node (/dev/dri/renderD*) - which is exactly what a GPU container is given. No authentication beyond device access; submissions are ordinary ioctl calls, not privileged ones.
What to do
Apply the stable fix, which rejects duplicate FENCE chunks the same way commit fec5f8e8c6bc did for BO_HANDLES. Five stable commits are listed and the record names no fixed release version. Rollout is a patched kernel plus a per-node reboot; drain the node first. Leaked memory from prior exploitation is only recovered by rebooting.
References
Related entries
- Linux kernel amdgpu UVD: decode image size computed from width instead of pitchCVE-2026-80540 · Linux kernel amdgpu UVD (decode image minimum size validation, unbounded pitch)Unscored
- Linux kernel amdgpu: unvalidated GEM_CREATE domain combinations hit a BUG_ON and panic the nodeCVE-2026-80541 · Linux kernel amdgpu (amdgpu_gem_create_ioctl, GEM_CREATE domain combination validation)Unscored
- Linux kernel amdgpu display: NULL dereference when vblank is requested on a CRTC with no streamCVE-2026-80542 · Linux kernel amdgpu display core (amdgpu_dm_crtc_set_vblank, CRTC with no stream attached)Unscored
- Linux kernel amdgpu: user-supplied indirect buffer size is unbounded, corrupting ring packet fieldsCVE-2026-80576 · Linux kernel drm/amdgpu (command submission, amdgpu_cs_p2_ib IB size)Unscored
- GPU / accelerator firmware (VBIOS, GSP, NVSwitch): GPU-resident firmware sits below the host OS and is not coveredNCVD-0000-012-gpu-accelerator-firmware-vbios-g · GPU / accelerator firmware (VBIOS, GSP, NVSwitch)Unscored
- NVIDIA Multi-Instance GPU (MIG) partitioning: MIG gives each instance its own SM slice, L2 slice, memory slice andNCVD-2020-001-nvidia-multi-instance-gpu-mig-pa · NVIDIA Multi-Instance GPU (MIG) partitioningUnscored
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.