---
id: CVE-2026-74447
title: 'drm/amdkfd: fix uint32_t overflow in EOP ring buffer size alignment'
summary: |-
  In the Linux kernel, the following vulnerability has been resolved:

  drm/amdkfd: fix uint32_t overflow in EOP ring buffer size alignment

  eop_ring_buffer_size in struct queue_properties is a u32. In
  kfd_queue_acquire_buffers() the expect…
severity: high
cvss: 7.8
cvssVector: 'CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H'
cvssSource: cna
vendor: Linux
product: Linux
affected:
  - >-
    Linux >= ee0dc6c66a913260311876a4b2b53fe0b9bc3f94 <
    273548eb997c6be85230c1236b18784b09f6203c
  - >-
    Linux >= acfc84cfa70aca5b970faf152979bc97b9f8b0c0 <
    6dc0b4b39ed4f11ef70f76ecea8537e35f45342b
  - >-
    Linux >= 42ea9cf2f16b7131cb7302acb3dac510968f8bdc <
    7c54bd225d83bc1bcb44430ed4b4d3a5c36b1961
  - >-
    Linux >= 42ea9cf2f16b7131cb7302acb3dac510968f8bdc <
    83463a96ea3c7d8ae636a4d6a0ba63c9ce410724
  - Linux c6ce687077cc67e4f3cbd0c89cb356fbbce91f4c
  - Linux >= 6.12.75 < 6.12.103
  - Linux >= 6.18.16 < 6.18.44
  - Linux >= 6.19.6 < 6.20
  - Linux 7.0
ssvc:
  exploitation: none
  automatable: 'no'
  technicalImpact: total
  timestamp: '2026-10-16T18:56:43.690802Z'
published: '2026-08-15'
updated: '2026-10-16'
sourceUpdated: '2026-10-16T19:05:46.230Z'
source: CVEORG
sourceUrl: 'https://www.cve.org/CVERecord?id=CVE-2026-74447'
references:
  - url: 'https://git.kernel.org/stable/c/273548eb997c6be85230c1236b18784b09f6203c'
  - url: 'https://git.kernel.org/stable/c/6dc0b4b39ed4f11ef70f76ecea8537e35f45342b'
  - url: 'https://git.kernel.org/stable/c/7c54bd225d83bc1bcb44430ed4b4d3a5c36b1961'
  - url: 'https://git.kernel.org/stable/c/83463a96ea3c7d8ae636a4d6a0ba63c9ce410724'
tags:
  - cve.org
epss: 0.00129
epssPercentile: 0.02228
ingestedAt: '2026-10-16T19:46:24.362Z'
---

## Overview

In the Linux kernel, the following vulnerability has been resolved:

drm/amdkfd: fix uint32_t overflow in EOP ring buffer size alignment

eop_ring_buffer_size in struct queue_properties is a u32. In
kfd_queue_acquire_buffers() the expected EOP buffer size is computed as
ALIGN(eop_ring_buffer_size, PAGE_SIZE); ALIGN uses typeof(x), so the
addition is done in 32-bit. A user-supplied size of 0xFFFFF001 wraps to
0, causing kfd_queue_buffer_get() to skip its exact-size check (gated on
size != 0) and accept any BO mapped at the address. On GFX8/GFX9 the MQD
cp_hqd_eop_control is then programmed for an 8KB EOP ring backed by a 4KB
BO, so CP EOP writes can land past the buffer and fault the GPU.

Cast the operand to u64 so the alignment is computed in 64-bit; the size
check in kfd_queue_buffer_get() then rejects the oversized request.

(cherry picked from commit ae443117b742c357bfef3a7bddabf76fcf86e9ef)

## Affected

- `Linux >= ee0dc6c66a913260311876a4b2b53fe0b9bc3f94 < 273548eb997c6be85230c1236b18784b09f6203c`
- `Linux >= acfc84cfa70aca5b970faf152979bc97b9f8b0c0 < 6dc0b4b39ed4f11ef70f76ecea8537e35f45342b`
- `Linux >= 42ea9cf2f16b7131cb7302acb3dac510968f8bdc < 7c54bd225d83bc1bcb44430ed4b4d3a5c36b1961`
- `Linux >= 42ea9cf2f16b7131cb7302acb3dac510968f8bdc < 83463a96ea3c7d8ae636a4d6a0ba63c9ce410724`
- `Linux c6ce687077cc67e4f3cbd0c89cb356fbbce91f4c`
- `Linux >= 6.12.75 < 6.12.103`
- `Linux >= 6.18.16 < 6.18.44`
- `Linux >= 6.19.6 < 6.20`
- `Linux 7.0`

## Remediation

Refer to the linked advisories for vendor-supplied fixes and affected version ranges.
