🇰🇷 한글 설명
Linux 커널의 drm/gud 드라이버에서 TV 모드 이름을 처리할 때 NUL 종료 문자를 검증하지 않아 발생하는 취약점입니다. 악의적으로 조작된 GUD 프로토콜 응답이 들어올 경우, strlen() 함수가 할당된 버퍼 범위를 벗어나 메모리를 읽는 Out-of-bounds read가 발생할 수 있습니다.
💡 쉬운 설명
TV 연결 정보를 읽어오는 과정에서 데이터의 끝을 알리는 표시가 없으면, 컴퓨터가 허용되지 않은 메모리 영역까지 읽으려 시도하여 오류가 발생할 수 있습니다. 이는 잘못된 데이터를 통해 시스템의 정보를 유출하거나 불안정하게 만들 수 있는 문제입니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
drm/gud: validate TV mode names before creating enum property
The GUD protocol returns TV mode names as fixed-size
GUD_CONNECTOR_TV_MODE_NAME_LEN entries and requires each name to be
NUL-terminated.
gud_connector_add_tv_mode() currently passes each fixed-size entry
directly to drm_mode_create_tv_properties_legacy(), which eventually
reaches drm_property_add_enum() and strlen(). If a device returns an
entry without a terminating NUL byte, strlen() reads past the end of
the slot and can run beyond the allocated buffer, triggering an
out-of-bounds read.
Validate that each returned TV mode name contains a NUL terminator
within its fixed-size slot before passing it to the DRM property code.
If a malformed entry is found, reject the device response with -EIO.
This fixes the out-of-bounds read without changing the handling of
valid devices, and avoids silently truncating malformed protocol data.
📍 영향받는 시스템
NUL 종료 문자가 검증되지 않는 Linux 커널의 drm/gud 드라이버를 사용하는 시스템
⚔️ 공격 벡터
NUL 종료 문자가 누락된 악의적인 GUD 프로토콜 응답을 보내는 장치를 연결하여 발생
🛡️ 대응 방법
TV 모드 이름을 처리하기 전 NUL 종료 문자의 존재 여부를 검증하도록 커널 패치 적용
🔧 검증 코드
현재 실행 중인 커널 버전을 확인하여 해당 취약점이 수정된 최신 보안 패치 버전인지 확인합니다.