Skip to main content
Vulnerability Database/CVE-2026-98784

CVE-2026-98784: Linux Kernel GFX6 Memory Leak Vulnerability

CVE-2026-98784 is a firmware memory leak flaw in Linux kernel AMD GPU GFX6 driver that causes resource exhaustion over time. This post explains the technical details, affected versions, and mitigation steps.

Published:

CVE-2026-98784 Overview

CVE-2026-98784 is a memory leak vulnerability in the Linux kernel's AMD GPU driver, specifically within the gfx_v6_0 graphics block. The firmware resources requested by gfx_v6_0_init_microcode() are not released when the GFX block is torn down, leaving the PFP, ME, CE, and RLC firmware allocations resident in kernel memory. Repeated driver load and unload cycles compound the leak and reduce available kernel resources over time. The upstream fix introduces gfx_v6_0_free_microcode() and invokes it from gfx_v6_0_sw_fini() to release the firmware on teardown.

Critical Impact

Kernel memory leak in the amdgpu driver that can degrade system stability on hosts using AMD GCN 1.0 (Southern Islands) GPUs through repeated driver teardown cycles.

Affected Products

  • Linux kernel drm/amdgpu driver, gfx_v6_0 subcomponent
  • Systems using AMD GCN 1.0 (Southern Islands) GPUs that load the amdgpu module
  • Multiple stable kernel branches referenced in the upstream backports

Discovery Timeline

  • 2026-10-18 - CVE-2026-98784 published to NVD
  • 2026-10-21 - Last updated in NVD database

Technical Details for CVE-2026-98784

Vulnerability Analysis

The defect is a classic kernel memory leak in the AMD GPU driver's GFX6 initialization path. During probe, gfx_v6_0_init_microcode() requests the Pre-Fetch Parser (PFP), Micro Engine (ME), Constant Engine (CE), and Run List Controller (RLC) firmware blobs via the kernel firmware loader. These allocations are tracked by the GFX block but were never released during software finalization. When the amdgpu driver is unloaded, the GFX block tears down without freeing those firmware buffers, so the memory remains allocated for the lifetime of the system.

The impact is limited to kernel resource exhaustion rather than code execution or privilege escalation. Workloads that frequently rebind the GPU, cycle through driver versions, or run GPU passthrough on virtualization hosts are the most exposed to cumulative leakage.

Root Cause

The root cause is a missing cleanup routine on the teardown path. gfx_v6_0_sw_fini() released other software state but did not release firmware buffers acquired during initialization. There was no symmetric gfx_v6_0_free_microcode() helper to pair with gfx_v6_0_init_microcode(), breaking the acquire and release contract expected by the driver model.

Attack Vector

The vulnerability is not remotely exploitable and requires local activity that triggers repeated loading and unloading of the amdgpu driver on a system with a Southern Islands GPU. There is no public exploit, no CISA KEV listing, and no evidence of exploitation in the wild. The practical risk is operational: long-running hosts that rebind the driver may observe gradual memory pressure.

No verified exploit code is available for this issue. The vulnerability mechanism is described in the upstream commit message and patch set referenced below.

Detection Methods for CVE-2026-98784

Indicators of Compromise

  • Unexplained growth in kernel slab or vmalloc memory on hosts that repeatedly load and unload the amdgpu module.
  • Presence of residual firmware buffers associated with the GFX6 block after module removal.
  • Dmesg entries from gfx_v6_0_init_microcode() without corresponding release messages on teardown.

Detection Strategies

  • Inventory kernel versions across Linux fleets and flag hosts running pre-patch builds of the amdgpu driver with GCN 1.0 hardware.
  • Compare installed kernel package versions against the fixed commits in the upstream stable trees.
  • Track module load and unload events to identify systems that cycle amdgpu and are most exposed to cumulative leakage.

Monitoring Recommendations

  • Monitor /proc/meminfo and /proc/slabinfo for sustained growth in kernel-owned allocations on affected hosts.
  • Alert on repeated modprobe amdgpu and rmmod amdgpu sequences in audit logs.
  • Track long-running hosts with Southern Islands GPUs for memory availability regressions after GPU-related maintenance.

How to Mitigate CVE-2026-98784

Immediate Actions Required

  • Apply the upstream kernel update that introduces gfx_v6_0_free_microcode() and calls it from gfx_v6_0_sw_fini().
  • Prioritize patching on virtualization hosts and workstations that routinely rebind the amdgpu driver.
  • Reboot after patching to ensure the fixed amdgpu module is loaded and old firmware allocations are cleared.

Patch Information

The fix is cherry-picked from upstream commit 386e81346f95ab0be5a82c5535de932e7a456924 and backported across multiple stable branches. Reference the following stable tree commits: Kernel Git Commit 2aee721, Kernel Git Commit 3a86ebf, Kernel Git Commit 4b70c6b, Kernel Git Commit 652f631, and Kernel Git Commit cc172e1. Consume the fix via your Linux distribution's kernel package updates.

Workarounds

  • Avoid repeated unload and reload of the amdgpu module on affected systems until the patched kernel is deployed.
  • Blacklist amdgpu on hosts that do not require AMD GPU support to prevent firmware allocation entirely.
  • Schedule periodic reboots on long-running hosts that cannot be patched immediately to reclaim leaked kernel memory.
bash
# Verify current kernel version and amdgpu module status
uname -r
modinfo amdgpu | grep -E '^(version|filename|srcversion)'

# Check for loaded firmware blobs associated with GFX6
dmesg | grep -iE 'amdgpu|gfx_v6'

# After installing the patched kernel, reboot and reverify
sudo reboot

Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

Experience the Most Advanced Cybersecurity Platform

See how the world’s most intelligent, autonomous cybersecurity platform can protect your organization today and into the future.