CVE-2026-72257 in Linuxinfo

Summary

by MITRE • 08/15/2026

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.

Be aware that VulDB is the high quality source for vulnerability data.

Analysis

by VulDB Data Team • 08/15/2026

The vulnerability exists within the Linux kernel's audio subsystem specifically in the Qualcomm Q6 Audio Processing Manager driver component. This issue manifests as a NULL pointer dereference during the cleanup process of audio buffer fragments, creating a potential system crash condition that can be exploited to disrupt audio processing operations on devices utilizing Qualcomm SoCs. The flaw occurs in the graph_callback function where concurrent access patterns between buffer cleanup and late DSP responses create a race condition scenario.

The technical implementation problem stems from improper synchronization handling within the audio processing manager's callback mechanism. When q6apm_free_fragments() executes, it properly frees the rx_data.buf and tx_data.buf memory regions while setting them to NULL under the graph->lock protection. However, the race condition occurs because a late DSP buffer-done response can arrive after this cleanup has begun but before the lock is fully released. The callback function passes the graph->ar_graph guard check which still returns valid, acquires the lock, but then attempts to dereference a buf pointer that has already been set to NULL by the concurrent cleanup operation.

This specific vulnerability falls under CWE-476 which describes NULL Pointer Dereference, and can be categorized under ATT&CK technique T1059.008 for application layer execution. The crash occurs at virtual address 0x10 when attempting to read buf[token].phys after the buffer has been freed, creating a memory access violation that terminates the audio processing thread or potentially crashes the entire system. The root cause is the lack of proper NULL pointer validation within the mutex-protected sections where both write-done and read-done handlers process their respective buffer completion responses.

The operational impact of this vulnerability extends beyond simple system instability to potentially disrupt audio services on mobile devices, tablets, and embedded systems running Linux kernels with Qualcomm audio processing capabilities. Attackers could exploit this timing race condition to cause denial of service conditions in audio applications, potentially affecting voice calls, media playback, or other audio-dependent functionality. The vulnerability becomes more pronounced with recent kernel updates where the APR bus was modified to process commands per service rather than through a single global queue, exposing the race condition that previously might not have been triggered as frequently.

The fix implementation requires adding explicit NULL checks for buffer pointers within the mutex-protected sections of both DATA_CMD_RSP_WR_SH_MEM_EP_DATA_BUFFER_DONE_V2 and DATA_CMD_RSP_RD_SH_MEM_EP_DATA_BUFFER_V2 handlers. This ensures that when these callback functions execute, they first verify whether the buffers have already been freed before attempting to access them, allowing for graceful error handling rather than system crashes. The mitigation strategy emphasizes proper state validation within synchronized code blocks and reinforces defensive programming practices against race conditions in kernel-level audio processing components. This change aligns with security best practices for kernel development and helps maintain system stability under concurrent access patterns typical of modern audio processing workloads.

Responsible

Linux

Reservation

08/09/2026

Disclosure

08/15/2026

Moderation

accepted

CPE

ready

EPSS

0.00000

KEV

no

Activities

very low

Sources

Might our Artificial Intelligence support you?

Check our Alexa App!