🇰🇷 한글 설명
Linux 커널의 AMD Radeon 디스플레이 드라이버(DCN35)에서 TMDS 출력 비활성화 시 PHY PLL이 잘못 관리되어 OTG(Output Timing Generator)가 멈추는 문제입니다. 이는 DCHVM의 IOMMU 워치독 타임아웃을 유발하여 시스템 행을 초래할 수 있습니다.
💡 쉬운 설명
AMD 그래픽 카드의 화면 출력 기능이 꺼질 때 일부 칩이 응답 불가 상태가 되어 컴퓨터 전체가 멈출 수 있습니다. 특정 AMD GPU와 Linux 커널 조합에서만 발생합니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
drm/amd/display: Adjust PHY FSM transition to TX_EN-to-PLL_ON for TMDS on DCN35
[Why]
A backport of the change made for DCN401 that addresses an issue where
we turn off the PHY PLL when disabling TMDS output, which causes the
OTG to remain stuck.
The OTG being stuck can lead to a hang in the DCHVM's ability to ACK
invalidations when it thinks the HUBP is still on but it's not receiving
global sync.
The transition to PLL_ON needs to be atomic as there's no guarantee
that the thread isn't pre-empted or is able to complete before the
IOMMU watchdog times out.
[How]
Backport the implementation from dcn401 back to dcn35.
There's a functional difference in when the eDP output is disabled in
dcn401 code so we don't want to utilize it directly.
📍 영향받는 시스템
Linux 커널 탑재 AMD Radeon DCN35/DCN401 디스플레이 컨트롤러 시스템 (Ryzen 5000/7000 APU 및 RDNA 계열)
⚔️ 공격 벡터
로컬 공격자가 TMDS 출력 비활성화를 반복 트리거하여 서비스 거부 상태 유발
🛡️ 대응 방법
Linux 커널을 최신 버전으로 업데이트하여 DCN35 PHY FSM 패치 적용
🔧 검증 코드
커널 버전, AMD 프로세서 확인, amdgpu 모듈 버전 확인으로 영향 범위 파악. 최신 커널 패치 적용 여부 검증
uname -r && grep -i amd /proc/cpuinfo | head -1 && cat /sys/module/amdgpu/version 2>/dev/null || echo 'amdgpu module not loaded'