Description
In the Linux kernel, the following vulnerability has been resolved: drm/amdgpu: validate CP_GFX_SHADOW chunk size in CS pass1 Add a minimum-length check for the AMDGPU_CHUNK_ID_CP_GFX_SHADOW chunk in amdgpu_cs_pass1(), matching the gate already present for the IB, FENCE and BO_HANDLES chunk types. The CP_GFX_SHADOW case previously shared a bare break with the dependency and syncobj chunk types, which do not dereference a fixed-size struct. When userspace submits this chunk with length_dw == 0, vmemdup_array_user() is called with size 0 and returns ZERO_SIZE_PTR, which passes the IS_ERR() check. amdgpu_cs_p2_shadow() then dereferences chunk->kdata as a struct drm_amdgpu_cs_chunk_cp_gfx_shadow (reading shadow->flags), faulting on the ZERO_SIZE_PTR and causing a NULL-pointer dereference. This is reachable by an unprivileged process in the render group. Reject undersized chunks with -EINVAL during pass1 so the bad submission is rejected before pass2 ever dereferences the data. (cherry picked from commit 7f61b2eef7415eccdb40850aca0de94211948657)
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
ac9287055ff16a092416c76a19006764e4c6a978 to < 3f190956404da55560056ce20606010e18bc059caffectedac9287055ff16a092416c76a19006764e4c6a978 to < 2aa9ea2bd5146d237c8cc16d8737d878b0298a94affectedac9287055ff16a092416c76a19006764e4c6a978 to < 315d2e5741a81b0be763e80413a2677e22b7e596affectedac9287055ff16a092416c76a19006764e4c6a978 to < 24668ca3ec19434d7a9574bf9112f2b0614c3a4eaffectedac9287055ff16a092416c76a19006764e4c6a978 to < 84c4c36acd5c4b2558b5069f869a165b2c655c84affected
Linux Linux
Default version status: affected
6.5affected0 to < 6.5unaffected6.6.148 to ≤ 6.6.*unaffected6.12.101 to ≤ 6.12.*unaffected6.18.42 to ≤ 6.18.*unaffected7.1.6 to ≤ 7.1.*unaffected7.2 to ≤ *unaffected
References
- https://git.kernel.org/stable/c/3f190956404da55560056ce20606010e18bc059c ↗
- https://git.kernel.org/stable/c/2aa9ea2bd5146d237c8cc16d8737d878b0298a94 ↗
- https://git.kernel.org/stable/c/315d2e5741a81b0be763e80413a2677e22b7e596 ↗
- https://git.kernel.org/stable/c/24668ca3ec19434d7a9574bf9112f2b0614c3a4e ↗
- https://git.kernel.org/stable/c/84c4c36acd5c4b2558b5069f869a165b2c655c84 ↗