🇰🇷 한글 설명
Linux 커널의 AMD GPU 드라이버에서 BO(Buffer Object) 리스트 항목 수에 제한이 없어 사용자 공간에서 임의의 수의 항목을 전달할 수 있는 취약점입니다. 이를 통해 메모리 고갈 공격이 가능하며, 128k 항목 제한이 추가되어 해결되었습니다.
💡 쉬운 설명
AMD 그래픽 카드 드라이버에서 공격자가 엄청 많은 그래픽 버퍼를 등록하도록 속여서 컴퓨터의 메모리를 다 먹게 할 수 있는 문제입니다. 이제 최대 128,000개로 제한해서 고정했습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
drm/amdgpu: Limit BO list entry count to prevent resource exhaustion
Userspace can pass an arbitrary number of BO list entries via the
bo_number field. Although the previous multiplication overflow check
prevents out-of-bounds allocation, a large number of entries could still
cause excessive memory allocation (up to potentially gigabytes) and
unnecessarily long list processing times.
Introduce a hard limit of 128k entries per BO list, which is more than
sufficient for any realistic use case (e.g., a single list containing all
buffers in a large scene). This prevents memory exhaustion attacks and
ensures predictable performance.
Return -EINVAL if the requested entry count exceeds the limit
(cherry picked from commit 688b87d39e0aa8135105b40dc167d74b5ada5332)
📍 영향받는 시스템
Linux kernel (drm/amdgpu 드라이버) - 커널 5.10 이상 (정확한 버전은 배포판별로 상이)
⚔️ 공격 벡터
로컬 사용자가 amdgpu 드라이버 인터페이스를 통해 과도한 수의 BO 리스트 항목을 전달하여 메모리 고갈 발생
🛡️ 대응 방법
Linux 커널을 최신 패치된 버전으로 업그레이드하거나, 688b87d39e0aa8135105b40dc167d74b5ada5332 커밋 패치 적용
🔧 검증 코드
커널 버전을 확인하고 해당 버전이 패치를 포함하는지 확인합니다. BO 리스트 제한이 적용되었으면 dmesg에서 관련 메시지가 보이거나, 패치된 커널에서는 128k 제한이 활성화되어 있습니다.
uname -r | grep -E '^[0-9]+\.[0-9]+' && grep -i 'bo.*limit\|128k' /proc/sys/kernel/dmesg 2>/dev/null || echo 'Check kernel version and apply patch 688b87d'