🇰🇷 한글 설명
Linux 커널의 amd drm 디스플레이 드라이버 내 SDP debugfs에서 NULL 역참조 및 버퍼 오버리드 취약점이 발견되었습니다. 커넥터가 CRTC에 바인딩되지 않은 상태에서 debugfs 노드에 쓰기를 시도할 경우 커널 크래시가 발생하거나 사용자 버퍼 범위를 벗어난 읽기가 발생할 수 있습니다.
💡 쉬운 설명
컴퓨터 화면을 조절하는 프로그램의 오류로 인해, 특정 상황에서 시스템이 갑자기 멈추거나 잘못된 메모리 정보를 읽어올 수 있는 문제입니다. 이는 주로 디스플레이 장치를 연결하거나 해제하는 과정에서 발생할 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
drm/amd/display: Fix NULL deref and buffer over-read in SDP debugfs
[Why & How]
dp_sdp_message_debugfs_write() dereferences connector->base.state->crtc
without checking for NULL. A connector can be connected but not bound to
any CRTC (e.g. after hot-plug before the next atomic commit), causing a
kernel crash when writing to the sdp_message debugfs node.
The function also ignores the user-provided size argument and always
passes 36 bytes to copy_from_user(), reading past the user buffer when
size < 36.
Fix both issues by:
- Returning -ENODEV when connector->base.state or state->crtc is NULL
- Clamping write_size to min(size, sizeof(data))
(cherry picked from commit 6ab4c36a522842ff70474a1c0af2e40e50fc8300)
📍 영향받는 시스템
Linux kernel (drm/amd/display 드라이버 포함 버전)
⚔️ 공격 벡터
로컬 사용자가 sdp_message debugfs 노드에 조작된 크기의 데이터를 작성하여 발생
🛡️ 대응 방법
커널 패치를 적용하여 NULL 체크 로직을 추가하고 쓰기 크기를 제한하도록 업데이트
🔧 검증 코드
출력된 커널 버전을 확인하여 해당 취약점이 수정된 최신 패치 버전인지 확인