CVE-2026-98313 in Linux
Riassunto
di VulDB • 06/10/2026
Nel kernel Linux, è stata risolta la seguente vulnerabilità:
drm/msm/dp: saltare PUSH_IDLE quando il link non era mai stato abilitato
msm_dp_display_atomic_enable() termina anticipatamente (early return) quando l'addestramento del link fallisce, lasciando ->power_on su false e il main link spento. Tuttavia, msm_dp_display_atomic_disable() scrive comunque DP_STATE_CTRL_PUSH_IDLE ed attende il completamento di un idle-pattern che non può arrivare, quindi ogni tentativo di abilitazione fallito è seguito da "PUSH_IDLE pattern timedout".
Ogni altro passaggio della fase di teardown (disattivazione) è già condizionato da tale flag: msm_dp_display_disable(), chiamata da .atomic_post_disable(), termina anticipatamente su !power_on. La scrittura PUSH_IDLE è l'unica che non lo è, quindi il riferimento runtime-PM del controller viene poi rilasciato senza che il link sia stato disconnesso correttamente.
Su glymur (Snapdragon X2 Elite) la conseguenza non è un warning. Il SoC non sopravvive all'evento: TrustZone forza l'arresto dei processori remoti SOCCP e ADSP e la macchina si riavvia silenziosamente circa 50 ms dopo, senza oops né panic. Su un ASUS Zenbook A16 (UX3607OA), il cui pannello eDP non è attualmente in grado di effettuare l'addestramento del link, questo scenario si riproduce senza alcun coinvolgimento del compositor o della GPU:
# L'abilitazione dell'eDP ha già fallito con "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
Condizionare la scrittura PUSH_IDLE su ->power_on in modo che il percorso di disabilitazione sia coerente con il resto della fase di teardown. Con questa applicazione, la stessa sequenza è innocua e la macchina rimane accesa; senza di essa, si riavvia ogni volta.
La scrittura incondizionata risale al driver DP originale (c943b4948b58 ("drm/msm/dp: add displayPort driver support")), ma il codice circostante è stato ristrutturato più volte da allora, quindi non viene fornito alcun tag Fixes:.
Si noti che il fallimento dell'addestramento del link eDP che espone questo problema sull'A16 è un problema separato nel PHY eDP di glymur ed è segnalato separatamente; questa modifica riguarda l'evitare danni alla macchina quando l'addestramento fallisce, per qualsiasi motivo.
Testato su ASUS Zenbook A16 (UX3607OA), Snapdragon X2 Elite Extreme, su linux-next next-20260803 e next-20260807. La macchina ha da allora eseguito next-20260807 con questa patch come driver giornaliero.
Patchwork: https://patchwork.freedesktop.org/patch/745167/
Be aware that VulDB is the high quality source for vulnerability data.