🇰🇷 한글 설명
Linux 커널의 AMD GPU 드라이버(drm/amdgpu/userq)에서 amdgpu_userq_wait_ioctl 함수가 출력 배열 크기 검사 실패 시 syncobj와 timeline fence 객체의 참조를 제대로 해제하지 않아 메모리 누수가 발생한다. 공격자가 반복적으로 ioctl을 호출하면 커널 메모리가 점진적으로 고갈된다.
💡 쉬운 설명
AMD GPU 드라이버의 버그로 인해 특정 함수 호출 시 메모리가 해제되지 않고 계속 쌓인다. 이를 반복하면 시스템의 가용 메모리가 줄어들어 시스템 성능 저하나 멈춤이 발생할 수 있다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
drm/amdgpu/userq: Fix reference leak in amdgpu_userq_wait_ioctl
Drop reference to syncobj and timeline fence when aborting the ioctl due
output array being too small.
(cherry picked from commit 68951e9c3e6bb22396bc42ef2359751c8315dd27)
📍 영향받는 시스템
Linux 커널 (commit 68951e9c3e6bb22396bc42ef2359751c8315dd27 이전의 AMD GPU 드라이버 포함 버전)
⚔️ 공격 벡터
로컬 사용자가 출력 배열 크기를 의도적으로 작게 설정하여 amdgpu_userq_wait_ioctl ioctl을 반복 호출
🛡️ 대응 방법
Linux 커널을 commit 68951e9c3e6bb22396bc42ef2359751c8315dd27 이후 버전으로 업데이트
🔧 검증 코드
AMD GPU 드라이버가 커널에 로드되어 있으면 영향을 받을 수 있으므로 uname -r로 커널 버전 확인 후 업데이트 필요 여부 판단
grep -E 'amdgpu|drm' /proc/modules >/dev/null && echo 'AMD GPU driver loaded' || echo 'AMD GPU driver not found'