🇰🇷 한글 설명
Linux 커널의 AMD GPU(amdgpu) 드라이버에서 wait ioctl 함수의 사용자 입력값에 대한 상한선 검사가 누락되어 있습니다. 공격자가 매우 큰 입력값을 전달하여 메모리 부족(OOM) 상태를 유발할 수 있으므로, 입력값을 AMDGPU_USERQ_MAX_HANDLES로 제한하는 패치가 적용되었습니다.
💡 쉬운 설명
AMD 그래픽 카드 드라이버에서 매우 큰 숫자를 입력으로 보내면 컴퓨터의 메모리를 과다 사용하게 하는 문제입니다. 드라이버가 입력값의 범위를 확인하지 않아서 발생합니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
drm/amdgpu: add upper bound check on user inputs in wait ioctl
Huge input values in amdgpu_userq_wait_ioctl can lead to a OOM and
could be exploited.
So check these input value against AMDGPU_USERQ_MAX_HANDLES
which is big enough value for genuine use cases and could
potentially avoid OOM.
v2: squash in Srini's fix
(cherry picked from commit fcec012c664247531aed3e662f4280ff804d1476)
📍 영향받는 시스템
Linux 커널 (amdgpu 드라이버가 포함된 모든 배포판, fcec012c664247531aed3e662f4280ff804d1476 커밋 이전 버전)
⚔️ 공격 벡터
로컬 공격자가 amdgpu_userq_wait_ioctl에 매우 큰 정수값을 입력하여 커널 메모리 과다 할당 및 OOM 유발
🛡️ 대응 방법
Linux 커널을 fcec012c664247531aed3e662f4280ff804d1476 커밋 이후 버전으로 업그레이드하여 상한선 검사 패치 적용
🔧 검증 코드
명령어 실행 후 'Patch applied'가 출력되면 패치가 적용된 안전한 버전이고, 'Vulnerable'이 출력되거나 파일을 찾지 못하면 취약한 버전입니다.
grep -r 'AMDGPU_USERQ_MAX_HANDLES' /lib/modules/$(uname -r)/kernel/drivers/gpu/drm/amd/ 2>/dev/null && echo 'Patch applied' || echo 'Vulnerable'