🇰🇷 한글 설명
Linux 커널의 AMD 디스플레이 드라이버(DML) 내 CalculateVMAndRowBytes 함수에서, PTEBufferSizeInRequests 값이 0일 때 dml_log2 함수가 음수를 반환하여 32비트 정수에 대한 시프트 범위 초과(shift-out-of-bounds) 미정의 동작이 발생합니다. 이 문제는 0일 때 dml_log2 호출을 건너뛰고 결과를 직접 할당하도록 수정되었습니다.
💡 쉬운 설명
그래픽 드라이버 계산 과정에서 잘못된 숫자 연산이 일어나 시스템이 예측 불가능하게 동작할 수 있는 결함입니다. 해당 커널 패치를 적용하면 이 연산 오류가 사라집니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
drm/amd/display: fix shift-out-of-bounds in CalculateVMAndRowBytes
[WHY]
When PTEBufferSizeInRequests is zero, UBSAN reports the following
warning because dml_log2 returns an unexpected negative value:
shift exponent 4294966273 is too large for 32-bit type 'int'
[HOW]
In the case PTEBufferSizeInRequests is zero, skip the dml_log2() and
assign the result directly.
📍 영향받는 시스템
수정 이전의 Linux 커널을 사용하는 AMD 그래픽(DCN/DML 기반 디스플레이) 장치가 포함된 시스템
⚔️ 공격 벡터
공개된 정보상 원격 공격 경로는 확인되지 않으며, 주로 잘못된 입력 조건에서 발생하는 안정성(UB) 결함으로 보입니다
🛡️ 대응 방법
배포판 제공 커널을 해당 수정이 포함된 최신 안정 버전으로 업데이트하고 재부팅하십시오
🔧 검증 코드
출력된 커널 버전을 배포판 보안 공지 또는 Linux 커널 Git의 해당 패치 포함 버전과 비교하여, 수정이 반영된 버전인지 확인합니다.