🇰🇷 한글 설명
Linux 커널의 drm/vmwgfx 구성 요소에서 발생하는 취약점으로, 사용자 제공 헤더 크기가 본문 크기보다 작을 경우 부호 없는 정수 언더플로우가 발생합니다. 이로 인해 매우 큰 maxnum 값이 계산되어 루프 과정에서 커널 메모리의 범위를 벗어난 읽기(Out-of-bounds read)가 발생할 수 있습니다.
💡 쉬운 설명
사용자가 조작한 잘못된 데이터 크기 정보 때문에 컴퓨터가 계산 오류를 일으켜, 허용되지 않은 메모리 영역을 읽어 들일 수 있는 문제입니다. 이를 통해 시스템의 중요한 정보가 유출될 위험이 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
drm/vmwgfx: validate DRAW_PRIMITIVES header size before division
vmw_cmd_draw() computes
maxnum = (header->size - sizeof(cmd->body)) / sizeof(*decl);
where header->size is u32 and is taken straight from the user-supplied
command stream. When header->size is less than sizeof(cmd->body) the
unsigned subtraction wraps to nearly 4 GiB, producing a huge maxnum.
Any user-controlled cmd->body.numVertexDecls then passes the bound and
the loop dereferences decl[i] far past the end of the kernel command
bounce buffer, producing an out-of-bounds read of kernel memory.
Reject undersized headers up front.
📍 영향받는 시스템
Linux kernel (drm/vmwgfx driver 포함 버전)
⚔️ 공격 벡터
사용자가 조작된 명령 스트림을 통해 헤더 크기를 본문 크기보다 작게 설정하여 전달
🛡️ 대응 방법
헤der 크기가 본문 크기보다 작은 경우를 사전에 차단하도록 커널 패치 적용
🔧 검증 코드
출력된 커널 버전을 확인하여 해당 취약점이 수정된 최신 보안 패치 버전인지 확인합니다.