CVE-2026-31566 PUBLISHED

drm/amdgpu: Fix fence put before wait in amdgpu_amdkfd_submit_ib

Assigner: Linux
Reserved: 09.03.2026 Published: 24.04.2026 Updated: 24.04.2026

In the Linux kernel, the following vulnerability has been resolved:

drm/amdgpu: Fix fence put before wait in amdgpu_amdkfd_submit_ib

amdgpu_amdkfd_submit_ib() submits a GPU job and gets a fence from amdgpu_ib_schedule(). This fence is used to wait for job completion.

Currently, the code drops the fence reference using dma_fence_put() before calling dma_fence_wait().

If dma_fence_put() releases the last reference, the fence may be freed before dma_fence_wait() is called. This can lead to a use-after-free.

Fix this by waiting on the fence first and releasing the reference only after dma_fence_wait() completes.

Fixes the below: drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c:697 amdgpu_amdkfd_submit_ib() warn: passing freed memory 'f' (line 696)

(cherry picked from commit 8b9e5259adc385b61a6590a13b82ae0ac2bd3482)

Product Status

Vendor Linux
Product Linux
Versions Default: unaffected
  • affected from 9ae55f030dc523fc4dc6069557e4a887ea815453 to bc7760c107dc08ef3e231d72c492e67b0a86848b (excl.)
  • affected from 9ae55f030dc523fc4dc6069557e4a887ea815453 to e23602eb0779760544314ed3905fa6a89a4e4070 (excl.)
  • affected from 9ae55f030dc523fc4dc6069557e4a887ea815453 to 138e42be35ff2ce6572ae744de851ea286cf3c69 (excl.)
  • affected from 9ae55f030dc523fc4dc6069557e4a887ea815453 to 39820864eacd886f1a6f817414fb8f9ea3e9a2b4 (excl.)
  • affected from 9ae55f030dc523fc4dc6069557e4a887ea815453 to 42d248726a0837640452b71c5a202ca3d35239ec (excl.)
  • affected from 9ae55f030dc523fc4dc6069557e4a887ea815453 to 7150850146ebfa4ca998f653f264b8df6f7f85be (excl.)
Vendor Linux
Product Linux
Versions Default: affected
  • Version 6.0 is affected
  • unaffected from 0 to 6.0 (excl.)
  • unaffected from 6.1.168 to 6.1.* (incl.)
  • unaffected from 6.6.131 to 6.6.* (incl.)
  • unaffected from 6.12.80 to 6.12.* (incl.)
  • unaffected from 6.18.21 to 6.18.* (incl.)
  • unaffected from 6.19.11 to 6.19.* (incl.)
  • unaffected from 7.0 to * (incl.)

References