Linux kernel amdkfd: unvalidated CRIU-restored IDs reach idr_alloc and can trigger a kernel WARN
Impact
The KFD checkpoint/restore path takes object IDs straight from userspace-supplied CRIU data and passes them to idr_alloc() without bounding them to INT_MAX. A restored ID above INT_MAX trips a WARN in the IDR layer; on a host booted with panic_on_warn that turns into a panic and a reboot. This is the AMD compute driver behind /dev/kfd, so the caller is anyone allowed to run ROCm workloads, and on a shared AMD GPU node one tenant's crafted restore image can take the whole node down with every other tenant's jobs on it. The record describes no memory corruption - Smatch flagged the unchecked userspace value and the fix returns -EINVAL - so treat this as availability, not escalation.
Who can reach it
Local user holding /dev/kfd who can invoke the KFD CRIU restore ioctl with attacker-chosen event and BO IDs. No authentication beyond access to the device node, which any GPU pod on a ROCm node has.
What to do
Pick up the stable commits listed in the record, which add INT_MAX validation before idr_alloc() in both restore paths. The record names no fixed release, only the commit ids. Deployment is a kernel update: drain the node and reboot. Where CRIU-based checkpointing of GPU jobs is not used, denying the restore ioctl or not exposing /dev/kfd to untrusted tenants removes the reachable path in the meantime.
References
Related entries
- Linux kernel drm/xe: OA config ioctl leaks sync entries and fence references when the config emit failsCVE-2026-80903 · Linux kernel drm/xe OA (observation architecture stream config ioctl)Unscored
- Linux drm/amdgpu: UVD H.264 minimum dpb size derived from level rather than the decode messageCVE-2026-80907 · Linux kernel drm/amdgpu (UVD H.264 decode picture buffer size check)Unscored
- Linux kernel amdgpu: unvalidated UVD decode message fields overflow the DPB size calculationCVE-2026-80908 · Linux kernel amdgpu UVD (decode message field validation)Unscored
- Linux kernel amdgpu: recursive reservation lock in devcoredump can self-deadlock the coredump workerCVE-2026-80919 · Linux kernel amdgpu (devcoredump IB capture)Unscored
- Linux kernel nouveau: use-after-free racing the GEM info ioctl against GEM closeCVE-2026-89553 · Linux kernel nouveau GEM (info ioctl VMA lookup)Unscored
- Linux amdgpu: resume force-completes an uninitialized UVD ring on SR-IOV virtual functionsCVE-2026-89827 · Linux kernel amdgpu (UVD ring fence restore under SR-IOV)Unscored
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.