🇰🇷 한글 설명
Linux 커널의 drm/mediatek 드라이버에서 hotplug 이벤트 발생 시 커서 업데이트가 지속되는 문제가 발견되었습니다. 이 과정에서 NULL 상태인 old_state->crtc에 접근하게 되어 커널 패닉(Kernel Panic)이 발생할 수 있습니다.
💡 쉬운 설명
모니터를 연결하거나 해제할 때 시스템이 잘못된 메모리 주소를 참조하여 컴퓨터가 갑자기 멈추거나 재부팅될 수 있는 오류입니다. 커서가 화면에 계속 나타나려고 시도하면서 발생하는 문제입니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
drm/mediatek: Add error handling for old state CRTC in atomic_disable
Introduce error handling to address an issue where, after a hotplug
event, the cursor continues to update. This situation can lead to a
kernel panic due to accessing the NULL `old_state->crtc`.
E,g.
Unable to handle kernel NULL pointer dereference at virtual address
Call trace:
mtk_crtc_plane_disable+0x24/0x140
mtk_plane_atomic_update+0x8c/0xa8
drm_atomic_helper_commit_planes+0x114/0x2c8
drm_atomic_helper_commit_tail_rpm+0x4c/0x158
commit_tail+0xa0/0x168
drm_atomic_helper_commit+0x110/0x120
drm_atomic_commit+0x8c/0xe0
drm_atomic_helper_update_plane+0xd4/0x128
__setplane_atomic+0xcc/0x110
drm_mode_cursor_common+0x250/0x440
drm_mode_cursor_ioctl+0x44/0x70
drm_ioctl+0x264/0x5d8
__arm64_sys_ioctl+0xd8/0x510
invoke_syscall+0x6c/0xe0
do_el0_svc+0x68/0xe8
el0_svc+0x34/0x60
el0t_64_sync_handler+0x1c/0xf8
el0t_64_sync+0x180/0x188
Adding NULL pointer checks to ensure stability by preventing operations
on an invalid CRTC state.
📍 영향받는 시스템
MediaTek DRM 드라이버를 사용하는 Linux 커널 시스템
⚔️ 공격 벡터
로컬 사용자가 디스플레이 장치(Hotplug)를 조작하거나 관련 ioctl 호출을 통해 유도 가능
🛡️ 대응 방법
해당 취약점이 수정된 최신 버전의 Linux 커널로 업데이트
🔧 검증 코드
현재 실행 중인 커널 버전을 확인하여 취약점이 해결된 패치 버전인지 확인합니다.