🔍 CVE-2026-98313

0.0
CVSS Score
UNKNOWN
2026-10-06
2026-10-19 10:18
✅ 완료

🇰🇷 한글 설명

Linux 커널의 DRM/MSM/DP 드라이버에서 디스플레이 링크가 활성화되지 않은 상태임에도 불구하고 PUSH_IDLE 명령을 실행하여 시스템이 충돌하는 취약점입니다. 이로 인해 Snapdragon X2 Elite와 같은 특정 SoC 환경에서 TrustZone이 프로세서를 강제 중단시키고 시스템이 예기치 않게 재부팅될 수 있습니다.

💡 쉬운 설명

화면 연결이 제대로 되지 않았을 때 컴퓨터가 잘못된 명령을 내려 시스템 전체가 갑자기 꺼지고 다시 시작되는 문제입니다. 특정 노트북 모델에서 화면을 끄려고 할 때 컴퓨터가 멈추거나 재부팅되는 현상이 발생할 수 있습니다.

🇺🇸 원문 (English)

In the Linux kernel, the following vulnerability has been resolved: drm/msm/dp: skip PUSH_IDLE when the link was never enabled msm_dp_display_atomic_enable() returns early when link training fails, leaving ->power_on false and the main link down. msm_dp_display_atomic_disable() nevertheless writes DP_STATE_CTRL_PUSH_IDLE and waits for an idle-pattern completion that cannot arrive, so every failed enable is followed by "PUSH_IDLE pattern timedout". Every other step of the teardown is already gated on that flag: msm_dp_display_disable(), called from .atomic_post_disable(), returns early on !power_on. The PUSH_IDLE write is the only one that is not, so the controller's runtime-PM reference is then dropped without the link having been taken down. On glymur (Snapdragon X2 Elite) the consequence is not a warning. The SoC does not survive it: TrustZone force-stops the SOCCP and ADSP remote processors and the machine resets silently about 50 ms later, with no oops and no panic. On an ASUS Zenbook A16 (UX3607OA), whose eDP panel does not currently train, this reproduces without any compositor or GPU involvement: # eDP enable has already failed with "Failed link training (rc=-104)" echo 1 > /sys/class/graphics/fb0/blank [535.645455] === marker === [535.694833] qcom_q6v5_pas d00000.remoteproc: fatal error received: \ sys_m_smsm.c:512:TZ force stop [535.694875] remoteproc remoteproc0: crash detected in soccp: type fatal error [535.728857] qcom_q6v5_pas 6800000.remoteproc: fatal error received: \ sys_m_smsm.c:783:err fatal notification received from TZ <SoC reset> Gate the PUSH_IDLE write on ->power_on so the disable path is consistent with the rest of the teardown. With this applied the same sequence is harmless and the machine stays up; without it, it resets every time. The unconditional write dates back to the original DP driver (c943b4948b58 ("drm/msm/dp: add displayPort driver support")), but the surrounding code has been restructured several times since, so no Fixes: tag is offered. Note that the eDP link-training failure that exposes this on the A16 is a separate problem in the glymur eDP PHY and is reported separately; this change is about not damaging the machine when training fails, for whatever reason. Tested on ASUS Zenbook A16 (UX3607OA), Snapdragon X2 Elite Extreme, on linux-next next-20260803 and next-20260807. The machine has since been running next-20260807 with this patch as its daily driver. Patchwork: https://patchwork.freedesktop.org/patch/745167/

📍 영향받는 시스템

Linux kernel (drm/msm/dp driver), Snapdragon X2 Elite 기반 시스템 (예: ASUS Zenbook A16)

⚔️ 공격 벡터

로컬 사용자가 디스플레이 링크 트레이닝 실패를 유도하거나 디스플레이 비활성화 명령을 실행하여 시스템 재부팅 유도

🛡️ 대응 방법

Linux 커널의 DRM/MSM/DP 드라이버 패치를 적용하여 PUSH_IDLE 쓰기 동작을 power_on 상태에 따라 제어하도록 업데이트

🔧 검증 코드

출력된 커널 버전이 해당 패치가 적용된 최신 커널 버전인지 확인하십시오.

Shell / Script
uname -r

💻 영향받는 소프트웨어

NVIDIA Cloud Gaming Guest Driver for Linux