🇰🇷 한글 설명
Linux 커널의 drm/msm/dpu 드라이버에서 전력 공급 전압과 클럭 주파수 간의 불일치 문제가 발견되었습니다. DPU 런타임 절전 모드 전환 시 전압은 최저 수준으로 떨어지지만 클럭 주파수는 높은 상태를 유지하여 시스템 불안정이나 충돌을 유발할 수 있습니다.
💡 쉬운 설명
기기가 잠시 잠들었다가 깨어날 때, 전기는 아주 조금만 흐르는데 엔진(클럭)만 너무 빠르게 돌아가서 시스템이 멈추거나 고장 날 수 있는 문제입니다. 전압과 속도가 서로 맞지 않아 발생하는 현상입니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
drm/msm/dpu: fix mismatch between power and frequency
During DPU runtime suspend, calling dev_pm_opp_set_rate(dev, 0) drops
the MMCX rail to MIN_SVS while the core clock frequency remains at its
original (highest) rate. When runtime resume re-enables the clock, this
may result in a mismatch between the rail voltage and the clock rate.
For example, in the DPU bind path, the sequence could be:
cpu0: dev_sync_state -> rpmhpd_sync_state
cpu1: dpu_kms_hw_init
timeline 0 ------------------------------------------------> t
After rpmhpd_sync_state, the voltage performance is no longer guaranteed
to stay at the highest level. During dpu_kms_hw_init, calling
dev_pm_opp_set_rate(dev, 0) drops the voltage, causing the MMCX rail to
fall to MIN_SVS while the core clock is still at its maximum frequency.
When the power is re-enabled, only the clock is enabled, leading to a
situation where the MMCX rail is at MIN_SVS but the core clock is at its
highest rate. In this state, the rail cannot sustain the clock rate,
which may cause instability or system crash.
Remove the call to dev_pm_opp_set_rate(dev, 0) from dpu_runtime_suspend
to ensure the correct vote is restored when DPU resumes.
Patchwork: https://patchwork.freedesktop.org/patch/710077/
📍 영향받는 시스템
Linux kernel (drm/msm/dpu 드라이버를 사용하는 시스템)
⚔️ 공격 벡터
직접적인 공격보다는 특정 전력 관리 시나리오(Runtime Suspend/Resume)에서 시스템 불안정 유발
🛡️ 대응 방법
Linux 커널을 최신 패치가 적용된 버전으로 업데이트하거나 dpu_runtime_suspend에서 dev_pm_opp_set_rate(dev, 0) 호출을 제거해야 합니다.
🔧 검증 코드
출력된 커널 버전을 확인하여 해당 취약점이 해결된 패치 버전인지 확인합니다.