CVE-2026-98313 in Linux
Zusammenfassung
von VulDB • 06.10.2026
Im Linux-Kernel wurde folgende Schwachstelle behoben:
drm/msm/dp: PUSH_IDLE überspringen, wenn die Verbindung niemals aktiviert war
msm_dp_display_atomic_enable() kehrt vorzeitig zurück, wenn das Link-Training fehlschlägt, wodurch ->power_on auf false bleibt und der Hauptlink deaktiviert ist. msm_dp_display_atomic_disable() schreibt dennoch DP_STATE_CTRL_PUSH_IDLE und wartet auf den Abschluss eines Idle-Musters, das nicht eintreffen kann; daher wird jeder fehlgeschlagene Aktivierungsversuch von „PUSH_IDLE pattern timedout“ (Zeitüberschreitung des PUSH_IDLE-Musters) gefolgt.
Jeder andere Schritt der Teardown-Reihenfolge ist bereits an dieses Flag gekoppelt: msm_dp_display_disable(), das aus .atomic_post_disable() aufgerufen wird, kehrt bei !power_on vorzeitig zurück. Das Schreiben von PUSH_IDLE ist die einzige Operation, die dies nicht tut, sodass die runtime-PM-Referenz des Controllers freigegeben wird, ohne dass der Link zuvor heruntergefahren wurde.
Auf glymur (Snapdragon X2 Elite) ist die Folge keine Warnung. Der SoC überlebt dies nicht: TrustZone stoppt zwangsweise die Remote-Prozessoren SOCCP und ADSP, und das System führt etwa 50 ms später einen stillen Neustart durch, ohne Oops oder Panic. Auf einem ASUS Zenbook A16 (UX3607OA), dessen eDP-Panel derzeit kein Training durchführt, lässt sich dies ohne Beteiligung eines Compositors oder der GPU reproduzieren:
# Das eDP-Einsetzen ist bereits mit „Failed link training (rc=-104)“ fehlgeschlagen 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>
Koppeln Sie das PUSH_IDLE-Schreiben an ->power_on, damit der Deaktivierungspfad konsistent mit dem Rest des Teardowns ist. Mit dieser Änderung ist die gleiche Sequenz harmlos und das System bleibt aktiv; ohne diese Änderung führt sie jedes Mal zu einem Neustart.
Das bedingungslose Schreiben stammt aus dem ursprünglichen DP-Treiber (c943b4948b58 („drm/msm/dp: add displayPort driver support“)), aber der umgebende Code wurde seitdem mehrmals neu strukturiert, daher wird kein Fixes:-Tag angegeben.
Beachten Sie, dass das eDP-Link-Training-Fehler, das dies auf dem A16 offenbart, ein separates Problem im glymur-eDP-PHY ist und separat gemeldet wird; diese Änderung betrifft lediglich die Vermeidung von Schäden am System bei einem fehlschlagenden Training, aus welchem Grund auch immer.
Getestet auf ASUS Zenbook A16 (UX3607OA), Snapdragon X2 Elite Extreme unter linux-next next-20260803 und next-20260807. Das System läuft seitdem mit next-20260807 als täglichem Treiber, wobei dieses Patch angewendet ist.
Patchwork: https://patchwork.freedesktop.org/patch/745167/
If you want to get best quality of vulnerability data, you may have to visit VulDB.