CVE-2026-80618 Overview
CVE-2026-80618 is a Linux kernel vulnerability in the AMD Kernel Fusion Driver (amdkfd) component of the amdgpu graphics stack. The flaw resides in amdgpu_amdkfd_gpuvm_free_memory_of_gpu(), which unpins DOORBELL and MMIO remap buffer objects (BOs) before verifying whether the BO is still mapped to the GPU. When the BO remains mapped, the function returns -EBUSY and leaves the BO alive, but the BO has already been unpinned once. During process teardown, the BO is unpinned a second time, triggering a ttm_bo_unpin() reference count underflow.
Critical Impact
The double-unpin condition triggers a kernel warning and reference count underflow in the TTM memory manager, degrading GPU memory management stability on affected AMD systems.
Affected Products
- Linux kernel with AMD GPU (amdgpu) driver support
- amdkfd compute driver for AMD Radeon and Instinct GPUs
- Systems using AMD ROCm compute workloads with DOORBELL/MMIO BO allocation
Discovery Timeline
- 2026-08-28 - CVE-2026-80618 published to NVD
- 2026-08-28 - Last updated in NVD database
Technical Details for CVE-2026-80618
Vulnerability Analysis
The vulnerability is a double-free-style reference counting error in the AMD Kernel Fusion Driver. Specifically, this is a resource management flaw affecting pinned buffer objects used for GPU DOORBELL and Memory-Mapped I/O (MMIO) remap regions. DOORBELL BOs signal work submission to the GPU, while MMIO remap BOs expose device registers to user space through the KFD interface. Both types are pinned at allocation time to guarantee stable physical backing.
The kernel commit series (0e27d92, 1d12ae8, 283e77a, 3f0cc17, 461ae40, c055a20) resolves the issue by moving the amdgpu_amdkfd_gpuvm_unpin_bo() call after the mapped-to-GPU check, ensuring the unpin executes only once the code path is committed to freeing the BO.
Root Cause
The root cause is an ordering defect in amdgpu_amdkfd_gpuvm_free_memory_of_gpu(). The function invoked amdgpu_bo_unpin() on DOORBELL and MMIO remap BOs before checking mapped_to_gpu_memory. When the check subsequently detected an active mapping, the function returned -EBUSY and preserved the BO. The BO carried an inconsistent pin count from that point forward. Later, kfd_process_free_outstanding_kfd_bos() during workqueue-driven process teardown invoked the free path again, producing a second unpin against an already-unpinned BO.
Attack Vector
The flaw is triggered from local, authenticated contexts that can allocate and free KFD buffer objects, such as user-space processes using ROCm or HSA runtime interfaces. An unprivileged user issuing specific allocation and teardown sequences against DOORBELL or MMIO remap BOs while the BO remains mapped to the GPU can force the double-unpin path. The observable outcome is a WARNING at ttm/ttm_bo.c:650 in amdttm_bo_unpin+0x6d/0x80, invoked from kfd_process_wq_release on the kfd_process_wq workqueue. Repeated triggering can destabilize GPU memory accounting and denial-of-service the KFD subsystem.
No verified public exploit or proof-of-concept code has been published for this issue. Technical details are available in the upstream Kernel Commit 0e27d92 and related stable-tree backports.
Detection Methods for CVE-2026-80618
Indicators of Compromise
- Kernel log entries containing WARNING: CPU: <n> PID: <pid> at ttm/ttm_bo.c:650 amdttm_bo_unpin accompanied by a stack trace including amdgpu_amdkfd_gpuvm_unpin_bo and kfd_process_wq_release.
- Unexpected -EBUSY returns from KFD ioctl free operations followed by later TTM underflow warnings during process exit.
- Repeated amdgpu driver warnings correlated with ROCm or HSA workload termination on affected hosts.
Detection Strategies
- Monitor dmesg and /var/log/kern.log for the specific amdttm_bo_unpin warning signature tied to the kfd_process_wq workqueue.
- Aggregate kernel warning telemetry from GPU compute nodes into a central logging pipeline and alert on repeated occurrences from the same host.
- Track running kernel versions across the fleet and flag hosts running vulnerable amdgpu/amdkfd kernel builds that lack the fix commits.
Monitoring Recommendations
- Ingest kernel and amdgpu driver logs into a centralized data lake to correlate GPU workload failures with kernel warnings.
- Baseline expected KFD process teardown behavior for ROCm workloads and alert on anomalous BO release patterns.
- Track kernel package versions and patch state on GPU compute nodes as part of standard configuration management.
How to Mitigate CVE-2026-80618
Immediate Actions Required
- Identify all Linux hosts running the AMD amdgpu driver with KFD compute support enabled, particularly ROCm-capable systems.
- Apply distribution kernel updates that include the upstream fix (cherry-picked from commit 927c5b2defb9b09856444d94bebfd056a002bd75).
- Reboot affected hosts after applying the patched kernel to ensure the fixed amdgpu module is loaded.
Patch Information
The fix has been merged upstream and backported across stable trees. Review the following commits for the corrective change: Kernel Commit 0e27d92, Kernel Commit 1d12ae8, Kernel Commit 283e77a, Kernel Commit 3f0cc17, Kernel Commit 461ae40, and Kernel Commit c055a20. Track your distribution's security tracker for the corresponding backported kernel package.
Workarounds
- If patching cannot be performed immediately, restrict local access to systems exposing the KFD interface and limit which users can run ROCm/HSA workloads.
- Unload the amdkfd functionality on hosts where GPU compute is not required, retaining only display driver features.
- Monitor kernel logs for the specific warning signature and reboot affected hosts to reset any degraded GPU memory state.
# Verify running kernel and amdgpu module version
uname -r
modinfo amdgpu | grep -E '^(version|srcversion|filename)'
# Watch for the vulnerability signature in kernel logs
dmesg -T | grep -E 'amdttm_bo_unpin|kfd_process_wq_release'
Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.