🇰🇷 한글 설명
Linux 커널의 drm/xe/migrate 구성 요소에서 데이터 복사 시 최대 크기 계산 오류로 인해 발생하는 취약점입니다. 페이지 정렬되지 않은 복사 작업 시 피치(pitch) 값을 고려하지 않아 S16_MAX 제한을 초과하게 되며, 이로 인해 커널 어설션(Assertion) 실패가 발생하여 시스템이 중단될 수 있습니다.
💡 쉬운 설명
그래픽 데이터를 옮길 때 계산 실수로 인해 컴퓨터가 처리할 수 있는 한계를 넘어서는 명령을 내리는 문제입니다. 이로 인해 시스템이 갑자기 멈추거나 오류가 발생할 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
drm/xe/migrate: don't overflow max copy size
With non-page aligned copy, we need to use 4 byte aligned pitch, however
the size itself might still be close to our maximum of ~8M, and so the
dimensions of the copy can easily exceed the S16_MAX limit of the copy
command leading to the following assert:
xe 0000:03:00.0: [drm] Assertion `size / pitch <= ((s16)(((u16)~0U) >> 1))` failed!
platform: BATTLEMAGE subplatform: 1
graphics: Xe2_HPG 20.01 step A0
media: Xe2_HPM 13.01 step A1
tile: 0 VRAM 10.0 GiB
GT: 0 type 1
WARNING: CPU: 23 PID: 10605 at drivers/gpu/drm/xe/xe_migrate.c:673 emit_copy+0x4b5/0x4e0 [xe]
To fix this account for the pitch when calculating the number of current
bytes to copy.
(cherry picked from commit 8c2d61e0e916e077fda7e7b8e67f25ffe0f361fc)
📍 영향받는 시스템
Linux Kernel (drm/xe 드라이버를 사용하는 Intel Xe/Battlemage 기반 시스템)
⚔️ 공격 벡터
특정 조건의 그래픽 복사 명령을 실행하여 커널 어설션을 유도하는 로컬 공격
🛡️ 대응 방법
커널 패치(commit 8c2d61e0e916e077fda7e7b8e67f25ffe0f361fc 적용 버전)를 적용하여 최신 커널로 업데이트
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 수정된 패치 버전 이후인지 확인합니다.