Description
In the Linux kernel, the following vulnerability has been resolved: ASoC: qcom: q6apm: fix NULL pointer dereference in graph_callback When q6apm_free_fragments() is called it frees rx_data.buf/tx_data.buf and sets them to NULL under graph->lock. A late DSP buffer-done response can race with this: graph_callback() passes the !graph->ar_graph guard (not yet NULL), acquires the lock, but then dereferences a now-NULL buf pointer to read buf[token].phys, crashing at virtual address 0x10. Add a NULL check for buf inside the mutex-protected section in both the write-done (DATA_CMD_RSP_WR_SH_MEM_EP_DATA_BUFFER_DONE_V2) and read-done (DATA_CMD_RSP_RD_SH_MEM_EP_DATA_BUFFER_V2) handlers and bail out cleanly if buffers have already been freed. This problem is only shown up recently while apr bus was updated to process the commands per service rather from single global queue.
Affected products
Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.
Linux Linux
Default version status: unaffected
5477518b8a0e8a45239646acd80c9bafc4401522 to < a164e744d8de1c41049bd9a1452a4b6bbf5bd8bcaffected5477518b8a0e8a45239646acd80c9bafc4401522 to < ec369eac0795cfa8f4d3a0cd35a1e8e15f780331affected5477518b8a0e8a45239646acd80c9bafc4401522 to < 2c715f8a1e644ce4c3e8be5b0fd3f1f4704b73b3affected5477518b8a0e8a45239646acd80c9bafc4401522 to < ca028334343a140efda4b22e53cbce2c5e94a489affected5477518b8a0e8a45239646acd80c9bafc4401522 to < 214af790e3a33ab73587de4c925c60a550eae9c6affected5477518b8a0e8a45239646acd80c9bafc4401522 to < 2e9261761b35f0b67b7487688cd1365f535be0b3affected
Linux Linux
Default version status: affected
5.16affected0 to < 5.16unaffected6.1.178 to ≤ 6.1.*unaffected6.6.145 to ≤ 6.6.*unaffected6.12.97 to ≤ 6.12.*unaffected6.18.40 to ≤ 6.18.*unaffected7.1.5 to ≤ 7.1.*unaffected7.2 to ≤ *unaffected
References
- https://git.kernel.org/stable/c/a164e744d8de1c41049bd9a1452a4b6bbf5bd8bc ↗
- https://git.kernel.org/stable/c/ec369eac0795cfa8f4d3a0cd35a1e8e15f780331 ↗
- https://git.kernel.org/stable/c/2c715f8a1e644ce4c3e8be5b0fd3f1f4704b73b3 ↗
- https://git.kernel.org/stable/c/ca028334343a140efda4b22e53cbce2c5e94a489 ↗
- https://git.kernel.org/stable/c/214af790e3a33ab73587de4c925c60a550eae9c6 ↗
- https://git.kernel.org/stable/c/2e9261761b35f0b67b7487688cd1365f535be0b3 ↗