Description
In the Linux kernel, the following vulnerability has been resolved: drm/amdkfd: fix NULL dereference in get_queue_ids() When usr_queue_id_array is NULL and num_queues is non-zero, get_queue_ids() returns NULL. The callers check only IS_ERR() on the return value; since IS_ERR(NULL) == false the check passes, and suspend_queues() calls q_array_invalidate() which immediately dereferences NULL while iterating num_queues times. Userspace can trigger this via kfd_ioctl_set_debug_trap() by supplying num_queues > 0 with a zero queue_array_ptr, causing a kernel panic. A NULL usr_queue_id_array with num_queues == 0 is a legitimate no-op (q_array_invalidate never executes, and resume_queues already guards all queue_ids dereferences behind a NULL check). Return ERR_PTR(-EINVAL) only when num_queues is non-zero and the pointer is absent; both callers already propagate IS_ERR() returns correctly to userspace. (cherry picked from commit f165a82cdf503884bb1797771c61b2fcc72113d4)
Affected products
Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.
Linux Linux
Default version status: unaffected
a70a93fa568b4f05aba548dadb673703eccf5480 to < 62bd09e23a23da70f9aae02748eba3e6bd93095daffecteda70a93fa568b4f05aba548dadb673703eccf5480 to < daeceb0fe2a19651c58bbfa3d9d515ecb6ca8996affecteda70a93fa568b4f05aba548dadb673703eccf5480 to < 72e259a32084c42816152c346096d2edd4213e23affecteda70a93fa568b4f05aba548dadb673703eccf5480 to < e1965e8913cfbf17622ca12638e7a07f68ba0848affecteda70a93fa568b4f05aba548dadb673703eccf5480 to < 2bd550b547deabef98bd3b017ff743b7c34d3a6daffected
Linux Linux
Default version status: affected
6.5affected0 to < 6.5unaffected6.6.143 to ≤ 6.6.*unaffected6.12.94 to ≤ 6.12.*unaffected6.18.36 to ≤ 6.18.*unaffected7.0.13 to ≤ 7.0.*unaffected7.1 to ≤ *unaffected
References
- https://git.kernel.org/stable/c/62bd09e23a23da70f9aae02748eba3e6bd93095d ↗
- https://git.kernel.org/stable/c/daeceb0fe2a19651c58bbfa3d9d515ecb6ca8996 ↗
- https://git.kernel.org/stable/c/72e259a32084c42816152c346096d2edd4213e23 ↗
- https://git.kernel.org/stable/c/e1965e8913cfbf17622ca12638e7a07f68ba0848 ↗
- https://git.kernel.org/stable/c/2bd550b547deabef98bd3b017ff743b7c34d3a6d ↗