Executive brief
AMD's KFD (Kernel Fusion Driver) CRIU functionality, used for checkpointing and restoring GPU processes, did not validate user-supplied IDs before passing them to internal kernel ID allocation functions. An attacker could supply artificially large ID values that exceed system limits, triggering kernel warnings and potentially causing system instability or panic, particularly on systems configured to panic on warnings.
Technical details
The vulnerability exists in the KFD CRIU restore flow (kfd_criu_restore_event and criu_restore_memory_of_gpu functions), which accepts previously saved object IDs from userspace CRIU checkpoint data. These functions pass restored IDs directly to idr_alloc(), which expects values to fit within signed int limits (INT_MAX). If a restored ID exceeds INT_MAX, idr_alloc() triggers a WARN condition in the IDR layer. On systems with panic_on_warn enabled, this warning causes a kernel panic. The fix adds INT_MAX validation before calling idr_alloc(), rejecting invalid restore data with -EINVAL rather than allowing it to propagate to the IDR layer.
Affected products
- Linux Linux kernel Versions with KFD CRIU checkpoint/restore support (introduced in kernel 5.5+)
Timeline
- 2026-09-04: disclosed
- 2026-04-23: patched: Patch authored; upstream commit 85043dd49c2f51a37b22618168e3ae59ab92f0d6