🔍 CVE-2026-74447

7.8
CVSS Score
HIGH
2026-08-15
2026-10-16 20:17
✅ 완료

🇰🇷 한글 설명

Linux 커널의 drm/amdkfd 구성 요소에서 uint32_t 정수 오버플로 취약점이 발견되었습니다. 공격자가 조작된 크기 값을 제공하면 버퍼 크기 정렬 계산 시 오버플로가 발생하여, 실제 할당된 크기보다 큰 버퍼를 허용하게 됩니다. 이로 인해 GPU 메모리 영역을 벗어난 쓰기 작업이 발생하여 GPU 결함(fault)을 유발할 수 있습니다.

💡 쉬운 설명

컴퓨터의 그래픽 처리 장치(GPU)를 관리하는 프로그램에서 숫자가 너무 커져서 계산 오류가 발생하는 문제입니다. 이 오류를 이용하면 정해진 메모리 범위를 넘어서 데이터를 써버려 그래픽 카드가 멈추거나 오류를 일으킬 수 있습니다.

🇺🇸 원문 (English)

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)

📍 영향받는 시스템

Linux Kernel (drm/amdkfd 모듈을 사용하는 GFX8/GFX9 아키텍처 기반 시스템)

⚔️ 공격 벡터

사용자가 조작된 uint32_t 크기 값을 kfd_queue_acquire_buffers() 함수에 전달하여 정수 오버플로 유도

🛡️ 대응 방법

커널 패치를 적용하여 정렬 계산 시 피연산자를 u64로 캐스팅하여 64비트 연산을 수행하도록 업데이트

🔧 검증 코드

출력된 커널 버전이 해당 취약점이 수정된 패치 버전(commit ae443117 이후)인지 확인

Shell / Script
uname -r

📊 CVSS Vector String

CVSS Vector
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H

💻 영향받는 소프트웨어

NVIDIA Cloud Gaming Guest Driver for Linux