🇰🇷 한글 설명
Linux 커널의 amd/display 드라이버에서 MST(Multi-Stream Transport) 모드 검증 중 dc_sink 포인터에 대한 NULL 체크가 누락되어 발생하는 취약점입니다. MST 연결 해제 시 비동기적으로 dc_sink가 해제되지만, 특정 경로에서 이를 확인하지 않고 참조하여 시스템 충돌이나 커널 패닉을 유발할 수 있습니다.
💡 쉬운 설명
모니터를 연결하거나 해제할 때 컴퓨터 내부의 그래픽 드라이버가 이미 사라진 장치 정보를 읽으려고 시도하여 시스템이 멈출 수 있는 문제입니다. 장치가 연결 해제되는 순간의 타이밍 문제로 인해 발생합니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
drm/amd/display: guard dc_sink dereferences in MST mode validation
dm_dp_mst_is_port_support_mode() reads
aconnector->dc_sink->dsc_caps... for the DSC branch-throughput check,
and get_conv_frl_bw()'s HDMI-PCON FRL-bandwidth path reads
aconnector->dc_sink->edid_caps.max_frl_rate, both without a NULL
check. dc_sink is cleared asynchronously on MST unplug, and both
functions run from paths that the driver's own comments document as
racing that teardown: the connector probe worker's ->mode_valid
callback and a compositor's atomic check, neither of which holds the
MST manager lock that the teardown path uses. The former does have an
existing dsc_aux NULL check, but dsc_aux isn't reliably cleared in
every path that clears dc_sink, so it doesn't cover this.
Fail the port-support check and skip the FRL conversion path when the
sink is already gone.
(cherry picked from commit 7c3db8da4e039698ae198c870712428644e965c7)
📍 영향받는 시스템
Linux kernel (drm/amd/display 드라이버를 사용하는 AMD GPU 시스템)
⚔️ 공격 벡터
물리적인 MST 장치(멀티 스트림 디스플레이)의 빈번한 연결 및 해제를 통한 레이스 컨디션 유도
🛡️ 대응 방법
Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트하거나 해당 커밋(7c3db8da)이 포함된 버전으로 업그레이드하십시오.
🔧 검증 코드
출력된 커널 버전을 확인하여 해당 취약점이 수정된 패치 버전인지 확인하십시오.