🇰🇷 한글 설명
Linux 커널의 amdkfd 드라이버에서 AMDKFD_IOC_GET_DMABUF_INFO ioctl 호출 시 사용자가 버퍼 크기를 직접 제어할 수 있는 취약점입니다. 공격자가 매우 큰 버퍼 크기를 요청할 경우 커널 내에서 과도한 메모리 할당을 유도하여 시스템 자원 고갈(OOM)을 일으킬 수 있습니다.
💡 쉬운 설명
사용자가 컴퓨터의 메모리를 너무 많이 쓰도록 속여서 시스템을 멈추게 만들 수 있는 결함입니다. 드라이버가 직접 필요한 메모리 크기를 결정하도록 수정하여 이 문제를 방지합니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
drm/amdkfd: Let driver decide buffer size at AMDKFD_IOC_GET_DMABUF_INFO ioctl
amdkfd driver needs allocate buffer to return bo metadata to user space. The
buffer size is controlled by user currently. It is a potential security issue
that hostile value (e.g. 2 GiB) lets any render-group user trigger order-MAX
allocation/OOM in kernel context.
This patch first finds bo metadata size. If the size is smaller than user
provided value drive can safely allocate buffer in kernel space and copy to
user space buffer. If not, driver will let user know, not allocate and copy.
User will redo with new buffer in user space.
This patch lets driver decide buffer allocation size to avoid potential hostile
size from user space.
(cherry picked from commit f54ce9e8cbd3abe0eda3a285f54dc4f572fe589a)
📍 영향받는 시스템
Linux kernel (amdkfd driver 포함 버전)
⚔️ 공격 벡터
악의적인 사용자가 조작된 크기의 버퍼 값을 ioctl 명령을 통해 커널에 전달
🛡️ 대응 방법
amdkfd 드라이버의 버퍼 크기 결정 로직이 수정된 최신 Linux 커널로 업데이트
🔧 검증 코드
출력된 커널 버전이 해당 패치가 적용된 보안 업데이트 버전인지 확인