GPU VulnDB

Database/NVIDIA / GPU stack

Linux kernel drm_exec: empty object array leaves contention unresolved and spins forever

UnscoredCVE-2026-97900NVIDIA / GPU stackcurated

Impact

drm_exec_prepare_array() returned success without calling drm_exec_lock_contended() when handed an empty array, breaking the invariant that every entry into the locking sequence first retries the previously contended buffer object. Drivers that chain two prepare_array() calls per locking iteration - amdgpu's user-queue signal and wait ioctls, which prepare separate read and write BO arrays - can pass one empty array, so on contention the retry loop never reaches the call that would clear it and spins indefinitely. The practical effect on an AMD GPU node is a kernel thread burning a core in an unbreakable loop, triggered by an ordinary ioctl from a tenant workload. No CVSS score or CWE is attached.

Who can reach it

Local user with access to an AMD GPU render node (any tenant with a GPU pod holding /dev/dri/render*) submitting user-queue signal/wait ioctls with one empty BO array under lock contention. No authentication beyond device access; not remotely reachable.

What to do

Update to a stable kernel where drm_exec_prepare_array() calls drm_exec_lock_contended() directly for the zero-object case, and reboot the affected AMD GPU nodes. The record lists stable commits only, with no fixed release numbers. A node already stuck in the loop will need a reboot regardless.

References

Related entries

All NVIDIA / GPU stack entries

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.