CVE-2026-98177
NoneCVSS
—
EPSS
0.2%
Published
Oct 6, 2026
CISA due date
—
Cloudanix analysis
A bug in how Linux calculates the size of a special buffer used by AMD graphics cards could let a local user crash the whole computer or gain extra privileges.
- Exploitation
- Local Privilege
- Attacker needs
- Local User
- Complexity
- Theoretical
- Impact
- Denial Of Service
- Component
- OS kernel
- Class
- Memory Corruption
- Remediation
- Patch
- Effort
- Low
- Patch risk
- Low
What it actually does
The vulnerability allowed a potential integer underflow when computing the base-2 logarithm of the EOP ring buffer size in the AMD KFD driver, which could result in an invalid ring control value being written to hardware registers and subsequent memory corruption in kernel space.
Why it matters to the business
Unpatched Linux systems with AMD GPUs could experience kernel crashes, denial of service, or local privilege escalation, disrupting workloads that rely on GPU compute or graphics and requiring emergency kernel updates across server and workstation fleets.
How an attack unfolds
An attacker with local access crafts a userspace queue whose EOP ring buffer size triggers the underflow path in the order_base_2 calculation, causing an out-of-bounds or negative ring size to be programmed; subsequent GPU command submission then writes beyond intended kernel memory regions.
How to fix it
Apply the upstream kernel patch that replaces the original order_base_2 expression with order_base_2(q->eop_ring_buffer_size / 8) and update the explanatory comment; rebuild and deploy the fixed kernel to all affected systems.
How to confirm the fix worked
Confirm the corrected calculation appears in the amdkfd source, verify that ring sizes below 4096 bytes are rejected or handled safely, and test GPU queue creation on patched kernels to ensure no underflow occurs.
Typical attack path
- Obtain local unprivileged access on a Linux system with an AMD GPU and the amdkfd driver loaded.
- Create or manipulate a compute or graphics queue with a specially sized EOP ring buffer.
- Trigger the EOP ring size calculation path in drm/amdkfd.
- Cause the underflowed value to be written to cp_hqd_eop_control.
- Submit GPU work that leverages the corrupted ring state to corrupt adjacent kernel memory.
- Escalate privileges or crash the system via the resulting memory corruption.
How to detect it
Review kernel logs for amdkfd errors or warnings around EOP ring initialization, inspect dmesg output after GPU queue creation attempts, and correlate with any unexplained kernel panics on AMD GPU systems shortly after process startup.
What your security team should do
- Prioritize kernel updates on all systems exposing AMD GPUs to untrusted users or workloads.
- Monitor vendor and distribution advisories for backported fixes in supported LTS kernels.
- Restrict unprivileged access to GPU devices via device permissions until patches are applied.
The record
In the Linux kernel, the following vulnerability has been resolved: drm/amdkfd: Avoid integer underflow in EOP ring size calculation. The low 6 bits of cp_hqd_eop_control store the base-2 logarithm of the EOP ring size. This was calculated as order_base_2(q->eop_ring_buffer_size / 4) - 1 But order_base_2 can in theory return 0, so this could underflow (although in practice the ring buffer size cannot be less than 4096). Change this to order_base_2(q->eop_ring_buffer_size / 8) using properties of logarithms. Also add to the above comment to make the mathematics more clear. (cherry picked from commit f0f43fcf8b2b3a924cad9444340921c96ed5f634)
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|