CVE-2026-90397 in Linux
Sumário
de VulDB • 18/09/2026
No kernel do Linux, a seguinte vulnerabilidade foi resolvida:
firmware: qcom: scm: Corrige o dereferenciamento de NULL no manipulador de IRQ antes que __scm seja publicado
Em qcom_scm_probe(), devm_request_threaded_irq() é chamado antes de smp_store_release(&__scm, scm). Dois caminhos podem fazer o dereferencing de __scm antes que ele seja publicado, ambos causando um dereferenciamento de ponteiro NULL.
O manipulador de IRQ recebe scm através do seu argumento data, mas passa apenas wq_ctx para qcom_scm_waitq_wakeup() e qcom_scm_get_completion(), que então fazem o dereferencing direto de __scm. Encadeie a variável scm por meio dessas duas funções para que o caminho do manipulador de IRQ nunca toque em __scm.
Chamadas SMC não atômicas feitas durante o probe (por exemplo, de qcom_tzmem_init via qcom_scm_shm_bridge_enable) podem retornar WAITQ_SLEEP, fazendo com que qcom_scm_wait_for_wq_completion() seja executado antes que __scm seja publicado e faça seu dereferencing. Adicione platform_set_drvdata(pdev, scm) no início do probe e altere qcom_scm_wait_for_wq_completion() para aceitar o ponteiro do dispositivo e usar dev_get_drvdata() para acessar scm, removendo qualquer dependência de __scm.
If you want to get the best quality for vulnerability data then you always have to consider VulDB.