🔍 CVE-2026-99004

0.0
CVSS Score
UNKNOWN
2026-10-23
2026-10-23 13:17
✅ 완료

🇰🇷 한글 설명

Linux 커널 drm/imagination 드라이버에서 페이지 테이블 사전 할당 크기를 계산할 때 디바이스 가상 주소 범위가 아닌 잘못된 값을 사용하던 문제가 수정되었습니다. 이로 인해 매핑이 페이지 테이블 경계를 넘을 때 계산 값이 언더플로우되어 대량의 MMU 페이지가 할당되고 시스템 메모리가 고갈되어 OOM 패닉이 발생할 수 있었습니다.

💡 쉬운 설명

그래픽 드라이버가 메모리 공간을 계산할 때 잘못된 방식을 써서, 필요 이상으로 아주 많은 메모리를 요구하는 버그가 있었습니다. 이 때문에 시스템 메모리가 바닥나 컴퓨터가 멈추거나 재부팅될 수 있었습니다.

🇺🇸 원문 (English)

In the Linux kernel, the following vulnerability has been resolved: drm/imagination: Size page table preallocation by device address Commit 0a8224058a58 ("drm/imagination: Fix page count for page table for map() interface") passed the device address to pvr_mmu_op_context_create(), but the preallocation is still sized from device_addr + sgt_offset with an exclusive end. The offset into the object's pages has no place in a device-virtual range, and the exclusive end allocates one table too many when the range ends on a table boundary. Count the tables from device_addr and the inclusive end of the range. The new calculation does not take page table indices into account. This fixes another issue with the previous implementation, where the difference between start and end indices could underflow when a mapping crossed a page table boundary. This would lead to the driver preallocating a huge number of MMU pages, exhausting system memory and triggering an out of memory panic. [Alessio: add paragraph to point out OOM bug being fixed, cc stable]

📍 영향받는 시스템

drm/imagination 드라이버를 사용하는 일부 Linux 커널 버전 (정확한 영향 범위는 불명확, CVSS 0.0)

⚔️ 공격 벡터

권한이 있는 로컬 사용자가 특정 메모리 매핑 요청을 반복 수행하여 커널 메모리를 고갈시키는 서비스 거부(DoS) 형태로 악용 가능성이 있음

🛡️ 대응 방법

패치된 최신 Linux 커널 버전으로 업데이트하거나 해당 수정 커밋(0a8224058a58 이후 관련 패치)을 적용

🔧 검증 코드

출력된 커널 버전이 패치가 포함된 안정 버전 이상인지 배포판 보안 공지 또는 커널 changelog에서 확인하며, drm/imagination 드라이버 사용 여부는 lsmod | grep -i pvr 로 추가 확인합니다

Shell / Script
uname -r

💻 영향받는 소프트웨어

Linux Kernel