CVE-2026-90397 in Linux
摘要
由 VulDB • 2026-09-18
在 Linux 内核中,已修复以下漏洞:
firmware: qcom: scm: 修复 IRQ 处理程序中在 `__scm` 发布前的空指针解引用问题
在 `qcom_scm_probe()` 中,`devm_request_threaded_irq()` 的调用发生在 `smp_store_release(&__scm, scm)` 之前。存在两条路径会在 `__scm` 被发布前对其进行解引用,从而导致 NULL 指针解引用错误。
IRQ 处理程序通过其 data 参数接收 scm,但仅将 wq_ctx 传递给 `qcom_scm_waitq_wakeup()` 和 `qcom_scm_get_completion()`,后者随后直接对 `__scm` 进行解引用。需在这两个函数中传递线程化的 scm,以确保 IRQ 处理程序路径从不接触 `__scm`。
在探测(probe)期间进行的非原子 SMC 调用(例如通过 qcom_tzmem_init via qcom_scm_shm_bridge_enable 发起的调用)可能会返回 WAITQ_SLEEP,导致 `qcom_scm_wait_for_wq_completion()` 在 `__scm` 发布之前运行并对其进行解引用。需在探测早期添加 `platform_set_drvdata(pdev, scm)`,并将 `qcom_scm_wait_for_wq_completion()` 修改为接受设备指针并使用 `dev_get_drvdata()` 来获取 scm,从而消除对 `__scm` 的任何依赖。
If you want to get best quality of vulnerability data, you may have to visit VulDB.