🇰🇷 한글 설명
Linux 커널의 amd/display 드라이버에서 VBIOS의 HDMI 리타이머 레지스터 개수 값을 검증하지 않아 발생하는 취약점입니다. 악의적으로 조작된 VBIOS를 사용할 경우, 고정된 크기의 배열 범위를 초과하여 힙 메모리에 데이터를 쓰는 Out-of-bounds write가 발생할 수 있습니다.
💡 쉬운 설명
그래픽 카드 설정 정보가 담긴 파일이 실제 저장 공간보다 더 많은 데이터를 보내도록 조작될 수 있는 문제입니다. 이로 인해 컴퓨터의 메모리 영역이 망가져 시스템 오류나 보안 문제가 생길 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
drm/amd/display: Clamp VBIOS HDMI retimer register count to array size
[Why & How]
The VBIOS integrated info tables (v1_11 and v2_1) contain HdmiRegNum and
Hdmi6GRegNum fields that are used as loop bounds when copying retimer I2C
register settings into fixed-size arrays (dp*_ext_hdmi_reg_settings[9]
and dp*_ext_hdmi_6g_reg_settings[3]). These u8 fields are not validated
before use, so a malformed VBIOS can specify values up to 255, causing an
out-of-bounds heap write during driver probe.
Clamp each register count to the destination array size using min_t()
before the copy loops, in both get_integrated_info_v11() and
get_integrated_info_v2_1().
(cherry picked from commit 5a7f0ef90195940c54b0f5bb85b87da55f038c69)
📍 영향받는 시스템
VBIOS를 통해 HDMI 설정을 읽어오는 AMD GPU를 사용하는 Linux 커널 시스템
⚔️ 공격 벡터
조작된 VBIOS(Video BIOS)를 시스템에 로드하여 드라이버 프로브 과정에서 메모리 오버플로우 유도
🛡️ 대응 방법
Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트하여 VBIOS 입력값 검증 로직 적용
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 수정된 패치 버전(commit 5a7f0ef90195940c54b0f5bb85b87da55f038c69 포함 버전)인지 확인