🇰🇷 한글 설명
리눅스 커널의 drm/log 구성 요소에서 메시지 길이가 0일 때 발생하는 경계 외 읽기(out-of-bounds read) 취약점입니다. len이 0인 경우 부호 없는 정수 연산 특성상 len - 1이 UINT_MAX로 변환되어 잘못된 메모리 영역을 참조하게 됩니다.
💡 쉬운 설명
메시지 내용이 비어있을 때 프로그램이 계산 오류를 일으켜 허용되지 않은 메모리 영역을 읽으려고 시도하는 문제입니다. 이로 인해 시스템 정보가 유출되거나 프로그램이 예기치 않게 종료될 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
drm/log: Fix out-of-bounds read on empty message length
drm_log_draw_kmsg_record() accesses s[len - 1] to strip the trailing
newline, but len is unsigned int. If len is 0, the subtraction wraps
to UINT_MAX, causing an out-of-bounds read.
Add an early return when len is 0.
📍 영향받는 시스템
Linux kernel (drm/log 모듈을 사용하는 시스템)
⚔️ 공격 벡터
길이가 0인 로그 메시지를 생성하도록 유도하여 메모리 경계 외 읽기 유발
🛡️ 대응 방법
메시지 길이가 0인 경우 처리를 건너뛰도록 커널 패치 적용
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 수정된 최신 패치 버전인지 확인