CVE-2026-89811 Overview
CVE-2026-89811 is a race condition in the Linux kernel's AMD Kernel Fusion Driver (amdkfd). The Micro Engine Scheduler (MES) does not perform heavy-weight TLB (Translation Lookaside Buffer) invalidation after unmapping GPU queues, unlike the Hardware Scheduler (HWS) path which does this automatically. In-flight DMA descriptors can access memory that has already been unmapped, producing page faults and GPU queue hangs during Shared Virtual Memory (SVM) page migration. The issue was observed on gfx1151 (Strix Point) hardware with XNACK mode 1 enabled, where the compute queue stalls with packets submitted but never consumed.
Critical Impact
A local, low-privileged user with GPU compute access can trigger memory corruption or a GPU denial-of-service via the SVM migration race, with confidentiality, integrity, and availability impact extending beyond the affected component.
Affected Products
- Linux kernel drm/amdkfd subsystem (AMD Kernel Fusion Driver)
- Systems using the AMD MES (Micro Engine Scheduler) queue path
- AMD gfx1151 (Strix Point) GPUs with XNACK mode 1 enabled
Discovery Timeline
- 2026-09-16 - CVE-2026-89811 published to the National Vulnerability Database
- 2026-09-17 - Last updated in NVD database
Technical Details for CVE-2026-89811
Vulnerability Analysis
The flaw is a race condition [CWE-362] in the AMD KFD queue management path. When queues are unmapped through the MES scheduler, the driver does not issue a heavy-weight TLB invalidation. GPU TLBs continue to hold stale virtual-to-physical translations for the freed or migrated memory. In-flight DMA descriptors dispatched before the unmap can still resolve to those stale entries and touch memory that user space or the kernel has already reassigned. The failure surfaces as the KFDSVMRangeTest.MultiThreadMigrationTest regression, where the compute ring accepts packets but never retires them, hanging the GPU.
Because the same memory can be reused by another process after migration, the window creates the potential for cross-context data exposure, memory corruption, and persistent GPU denial of service. The scope change reflects impact reaching workloads and memory that the triggering process does not own.
Root Cause
The HWS path automatically performs a heavy-weight TLB flush during queue unmap. The MES path does not. Two call sites removed queues without a matching kfd_flush_tlb() invocation:
- evict_process_queues_cpsch() during process queue eviction
- suspend_queues() during debugger and CRIU-driven queue suspension
Without that flush, the driver returns before pending DMA operations have been drained from the GPU pipeline.
Attack Vector
Exploitation requires local access and permission to submit compute work through the KFD interface. An attacker orchestrates SVM allocations, triggers migration or eviction between concurrent threads, and races freed pages against in-flight DMA descriptors. See the upstream patches for the specific serialization added, including a mem_fence barrier on the suspend path: Linux Kernel Commit 6aae545, Linux Kernel Commit 94e25cb, and Linux Kernel Commit e230c54.
Detection Methods for CVE-2026-89811
Indicators of Compromise
- GPU compute queue hangs where packets are submitted to the ring but never consumed, particularly on AMD gfx1151 hardware.
- Kernel log entries reporting AMD IOMMU or GPU VM page faults correlated with KFD SVM migration activity.
- Repeated failures of KFDSVMRangeTest.MultiThreadMigrationTest or similar KFDTest suites in CI environments.
Detection Strategies
- Inventory kernel versions across Linux hosts and flag builds containing amdkfd without the three upstream fix commits referenced above.
- Correlate dmesg events for amdgpu page faults with user processes performing HIP or ROCm SVM workloads.
- Monitor for unexpected GPU resets or amdgpu_job_timedout messages on systems running AMD compute workloads with XNACK enabled.
Monitoring Recommendations
- Forward kernel ring buffer and journalctl output from ROCm-enabled hosts into a central log platform for pattern matching on GPU VM fault signatures.
- Track process-level GPU utilization and queue submission telemetry to detect stalled compute contexts.
- Alert on repeated amdgpu recovery events on the same host, which may indicate active triggering of the race condition.
How to Mitigate CVE-2026-89811
Immediate Actions Required
- Upgrade the Linux kernel to a stable release that includes the three upstream fix commits for drm/amdkfd.
- Restrict access to /dev/kfd and /dev/dri/render* to trusted users and service accounts only.
- On systems where patching is not immediately possible, avoid running untrusted ROCm or HIP workloads that exercise SVM migration.
Patch Information
The fix adds kfd_flush_tlb() calls after MES queue removal in evict_process_queues_cpsch() and suspend_queues(), with a mem_fence barrier on the suspend path to serialize memory accesses before pages are freed or migrated. The patch was cherry-picked from upstream commit f5c4f88e0f9c45a8fb9dfac0c1df726c95e41b77 and merged in Linux Kernel Commit 6aae545, Linux Kernel Commit 94e25cb, and Linux Kernel Commit e230c54.
Workarounds
- Disable XNACK mode 1 on affected AMD GPUs where the workload permits, reducing exposure of the SVM migration race path.
- Fall back to the HWS scheduler path where hardware and firmware support allow, since HWS already performs the required TLB invalidation.
- Limit concurrent multi-threaded SVM migration workloads on unpatched hosts to reduce the race window.
Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

