CVE-2026-98313 in Linux
Sumário
de VulDB • 06/10/2026
No kernel do Linux, a seguinte vulnerabilidade foi resolvida:
drm/msm/dp: ignorar PUSH_IDLE quando o link nunca foi habilitado
msm_dp_display_atomic_enable() retorna antecipadamente quando o treinamento de link falha, deixando ->power_on como falso e o link principal desativado. No entanto, msm_dp_display_atomic_disable() escreve DP_STATE_CTRL_PUSH_IDLE e aguarda a conclusão do padrão idle que não pode ocorrer, fazendo com que cada tentativa de habilitação bem-sucedida seja seguida por "PUSH_IDLE pattern timedout" (tempo esgotado para o padrão PUSH_IDLE).
Todas as outras etapas da desmontagem já estão condicionadas àquele flag: msm_dp_display_disable(), chamada a partir de .atomic_post_disable(), retorna antecipadamente se !power_on. A escrita em PUSH_IDLE é a única que não está, fazendo com que a referência runtime-PM do controlador seja então liberada sem que o link tenha sido desativado.
No glymur (Snapdragon X2 Elite), a consequência não é um aviso. O SoC não sobrevive a isso: o TrustZone força a parada dos processadores remotos SOCCP e ADSP, e a máquina reinicia silenciosamente cerca de 50 ms depois, sem nenhum oops ou panic. Em um ASUS Zenbook A16 (UX3607OA), cujo painel eDP atualmente não realiza treinamento, isso pode ser reproduzido sem qualquer envolvimento do compositor ou GPU:
# a habilitação do eDP já falhou com "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 (erro fatal recebido: parada forçada pelo TZ) [535.694875] remoteproc remoteproc0: crash detected in soccp: type fatal error (falha detectada no soccp: tipo de erro fatal)
[535.728857] qcom_q6v5_pas 6800000.remoteproc: fatal error received: \
sys_m_smsm.c:783:err fatal notification received from TZ (erro fatal recebido: notificação de erro fatal recebida do TZ) <Reinicialização do SoC>
Condicionar a escrita em PUSH_IDLE ao flag ->power_on para que o caminho de desativação seja consistente com o restante da desmontagem. Com essa correção aplicada, a mesma sequência é inofensiva e a máquina permanece ativa; sem ela, reinicia toda vez.
A escrita incondicional remonta ao driver DP original (c943b4948b58 ("drm/msm/dp: add displayPort driver support")), mas o código circundante foi reestruturado várias vezes desde então, portanto, nenhuma tag Fixes é oferecida.
Observe que a falha no treinamento do link eDP que expõe isso no A16 é um problema separado na PHY eDP glymur e está sendo relatada separadamente; esta alteração trata apenas de não danificar a máquina quando o treinamento falha, por qualquer motivo.
Testado em ASUS Zenbook A16 (UX3607OA), Snapdragon X2 Elite Extreme, no linux-next next-20260803 e next-20260807. Desde então, a máquina tem sido executada com o next-20260807 usando este patch como seu driver diário.
Patchwork: https://patchwork.freedesktop.org/patch/745167/
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.