Cloudanix VulnDB

CVE-2026-43412

Medium · 5.5

CVSS

5.5

EPSS

0.1%

Published

May 8, 2026

CISA due date

—

Cloudanix analysis

Next patch cycle SSVC: Track

A flaw in some Qualcomm-based Linux audio drivers can let a local user or app crash the device by triggering an audio processor restart.

Exploitation
Local Privilege
Attacker needs
Low Privilege
Complexity
Low
Impact
Denial Of Service
Component
OS kernel
Class
Denial of service
Remediation
Upgrade
Effort
Medium
Patch risk
Low

What it actually does

This is a Linux kernel availability flaw in the Qualcomm ASoC QDSP6 audio stack, specifically the q6apm component removal path during ADSP stop/start handling. The vulnerable logic removes audio topology and PCM runtimes before dependent DAI components are fully detached, leaving stale component references linked to the sound card. On the next ADSP rebind or restart sequence, the kernel can dereference invalid or NULL state and trigger an oops/panic. The practical technical effect is a local denial of service: a user or process with sufficient local ability to trigger the affected audio/ADSP restart path can crash the kernel or destabilize the device. The CVSS vector indicates local access, low attack complexity, low privileges required, no user interaction, and high availability impact with no direct confidentiality or integrity impact.

Why it matters to the business

Affected Linux systems using Qualcomm QDSP6/ADSP audio components may experience unexpected crashes, reboots, or service interruptions. This is most relevant for embedded Linux, mobile, automotive, edge, and development platforms built on Qualcomm SoCs where audio DSP restart or subsystem recovery paths are reachable. Although there is no evidence of known exploitation and EPSS is very low, the impact can still be operationally significant for systems that require continuous uptime, physical access resilience, or reliable media/audio services. Because publication was 95 days ago, organizations maintaining custom kernels or vendor BSPs should verify whether the upstream fix has been incorporated into their kernel branch.

How an attack unfolds

An attacker first needs local access to an affected Linux system and enough privileges or device access to interact with the relevant Qualcomm audio/ADSP subsystem paths. The attacker then causes or waits for an ADSP stop/start or subsystem restart condition that exercises the q6apm-audio removal and rebind sequence. In a vulnerable kernel, ASoC teardown removes topology and PCM runtime structures before all dependent q6apm DAI components are detached. This leaves stale component links attached to the sound card. When the ADSP is started again and the audio stack is rebound, the kernel follows one of those invalid references and faults, commonly producing a NULL pointer dereference in the ASoC shutdown path. Successful exploitation results in a kernel oops, panic, reboot, or persistent instability until the patched kernel behavior is applied. There is no indication from the provided intelligence that this vulnerability is being exploited by named threat actors, ransomware campaigns, or public exploit tooling.

How to fix it

Apply a Linux kernel build that includes the upstream fix for the Qualcomm ASoC qdsp6 q6apm removal-ordering issue. No exact fixed version was provided in the input, so remediation should be based on the relevant distribution, vendor BSP, or upstream stable kernel advisory once the patch has been backported. For custom kernels, review the ASoC Qualcomm qdsp6/q6apm changes that ensure dependent child components are removed before the parent q6apm component, and that q6apm is removed last during ADSP stop/start teardown. If immediate patching is not possible, reduce exposure by restricting local shell access, limiting access to audio and DSP device nodes, disabling unneeded Qualcomm audio/ADSP functionality where operationally acceptable, and preventing untrusted users or containers from interacting with host audio devices. Embedded and appliance vendors should incorporate the fix into firmware images and validate ADSP restart/recovery scenarios before release.

How to confirm the fix worked

Confirm exposure by checking whether the running kernel includes Qualcomm QDSP6/ADSP ASoC components and whether the kernel source or package contains the corrected q6apm removal ordering. On running systems, inspect loaded modules and platform configuration for q6apm, snd_q6apm, q6apm_dai, q6apm_lpass_dais, snd_q6dsp_common, qcom_q6v5_pas, pdr_interface, qrtr, apr, or related Qualcomm ADSP/audio components. Validate remediation in a non-production test environment by exercising ADSP stop/start, subsystem restart, audio card unbind/rebind, suspend/resume, and audio playback/capture teardown paths while monitoring dmesg or journald for kernel oops output. A fixed system should not produce NULL pointer dereferences, ASoC teardown crashes, or pdr_notifier_work-related kernel faults during repeated ADSP restart cycles. For packaged kernels, verify the installed kernel version or vendor changelog explicitly includes the CVE fix or the corresponding upstream patch.

Typical attack path

  1. Gain local access to a Linux system using the affected Qualcomm QDSP6/ADSP ASoC audio driver stack.
  2. Confirm the vulnerable Qualcomm audio modules and device topology are present, such as q6apm, q6apm_dai, q6apm_lpass_dais, snd_q6apm, or related qdsp6 components.
  3. Trigger an ADSP stop/start, subsystem recovery, driver unbind/rebind, device reset, or other path that causes ASoC component teardown and reinitialization.
  4. Cause the vulnerable q6apm-audio removal sequence to delete PCM runtimes and topology before dependent DAI components are removed.
  5. Wait for the next rebind/start sequence to dereference stale or NULL component state.
  6. Observe a kernel oops, panic, reboot, or loss of service, resulting in local denial of service.

How to detect it

Because this vulnerability causes a denial-of-service crash rather than a clear persistence or code-execution artifact, detection should focus on kernel crash evidence and repeated triggering patterns. Review kernel logs from journald, dmesg, persistent pstore/ramoops, crash dumps, and device telemetry for NULL pointer dereferences or kernel oops events involving Qualcomm ASoC qdsp6/q6apm components during ADSP stop/start or subsystem recovery. Useful log sources include /var/log/kern.log, /var/log/messages, journalctl -k output, /sys/fs/pstore/*, kdump/vmcore analysis, and embedded device crash-reporting stores. Look for faults in or near mutex_lock, soc_dapm_shutdown_dapm, q6apm-audio removal, pdr_notifier_work, pdr_interface, snd_soc_core, snd_q6apm, q6apm_dai, and q6apm_lpass_dais. Correlate crashes with local user sessions, application launches, audio device access, driver unbind/rebind operations, subsystem restarts, suspend/resume events, or container workloads that have host audio device access. A single crash may be ordinary driver instability, but repeated crashes with similar stack traces following ADSP restart activity should be investigated as possible exploitation or deliberate denial-of-service testing.

  • Unable to handle kernel NULL pointer dereference at virtual address 00000000000000d0
  • Internal error: Oops: 0000000096000004
  • pc : mutex_lock+0xc/0x54
  • lr : soc_dapm_shutdown_dapm
  • Workqueue: pdr_notifier_wq pdr_notifier_work [pdr_interface]
  • q6apm-audio
  • q6apm_lpass_dais
  • q6apm_dai
  • snd_q6dsp_common
  • snd_q6apm
  • q6prm_clocks
  • q6prm
  • pdr_interface
  • qcom_q6v5_pas
  • snd_soc_core
  • ASoC: qcom: qdsp6
  • ADSP stop
  • ADSP start
  • Data abort info:
  • FSC = 0x04: level 0 translation fault
  • Modules linked in: q6prm_clocks q6apm_lpass_dais q6apm_dai snd_q6dsp_common q6prm snd_q6apm

What your security team should do

  • Inventory Linux systems and firmware images using Qualcomm SoCs with QDSP6/ADSP audio support, prioritizing embedded, edge, automotive, mobile, and appliance deployments.
  • Determine whether the running kernel or vendor BSP contains the q6apm/ASoC removal-ordering fix; if uncertain, request confirmation from the OS, silicon, device, or BSP vendor.
  • Patch or upgrade affected kernels through the appropriate distribution or device firmware update channel, prioritizing systems where untrusted local users, applications, containers, or physical users can access audio/DSP functionality.
  • For custom kernel programs, backport the upstream fix and regression-test ADSP restart, subsystem recovery, suspend/resume, and audio device rebind scenarios.
  • Restrict access to audio and DSP device nodes for untrusted users and containers until patching is complete.
  • Monitor kernel logs for ASoC/q6apm crashes, ADSP restart loops, pdr_notifier_work faults, and NULL pointer dereferences that match the vulnerable failure mode.
  • Treat repeated local kernel crashes on affected Qualcomm platforms as potential abuse until hardware instability, driver defects, and intentional triggering have been ruled out.

The record

In the Linux kernel, the following vulnerability has been resolved: ASoC: qcom: qdsp6: Fix q6apm remove ordering during ADSP stop and start During ADSP stop and start, the kernel crashes due to the order in which ASoC components are removed. On ADSP stop, the q6apm-audio .remove callback unloads topology and removes PCM runtimes during ASoC teardown. This deletes the RTDs that contain the q6apm DAI components before their removal pass runs, leaving those components still linked to the card and causing crashes on the next rebind. Fix this by ensuring that all dependent (child) components are removed first, and the q6apm component is removed last. [ 48.105720] Unable to handle kernel NULL pointer dereference at virtual address 00000000000000d0 [ 48.114763] Mem abort info: [ 48.117650] ESR = 0x0000000096000004 [ 48.121526] EC = 0x25: DABT (current EL), IL = 32 bits [ 48.127010] SET = 0, FnV = 0 [ 48.130172] EA = 0, S1PTW = 0 [ 48.133415] FSC = 0x04: level 0 translation fault [ 48.138446] Data abort info: [ 48.141422] ISV = 0, ISS = 0x00000004, ISS2 = 0x00000000 [ 48.147079] CM = 0, WnR = 0, TnD = 0, TagAccess = 0 [ 48.152354] GCS = 0, Overlay = 0, DirtyBit = 0, Xs = 0 [ 48.157859] user pgtable: 4k pages, 48-bit VAs, pgdp=00000001173cf000 [ 48.164517] [00000000000000d0] pgd=0000000000000000, p4d=0000000000000000 [ 48.171530] Internal error: Oops: 0000000096000004 [#1] SMP [ 48.177348] Modules linked in: q6prm_clocks q6apm_lpass_dais q6apm_dai snd_q6dsp_common q6prm snd_q6apm 8021q garp mrp stp llc snd_soc_hdmi_codec apr pdr_interface phy_qcom_edp fastrpc qcom_pd_mapper rpmsg_ctrl qrtr_smd rpmsg_char qcom_pdr_msg qcom_iris v4l2_mem2mem videobuf2_dma_contig ath11k_pci msm ubwc_config at24 ath11k videobuf2_memops mac80211 ocmem videobuf2_v4l2 libarc4 drm_gpuvm mhi qrtr videodev drm_exec snd_soc_sc8280xp gpu_sched videobuf2_common nvmem_qcom_spmi_sdam snd_soc_qcom_sdw drm_dp_aux_bus qcom_q6v5_pas qcom_spmi_temp_alarm snd_soc_qcom_common rtc_pm8xxx qcom_pon drm_display_helper cec qcom_pil_info qcom_stats soundwire_bus drm_client_lib mc dispcc0_sa8775p videocc_sa8775p qcom_q6v5 camcc_sa8775p snd_soc_dmic phy_qcom_sgmii_eth snd_soc_max98357a i2c_qcom_geni snd_soc_core dwmac_qcom_ethqos llcc_qcom icc_bwmon qcom_sysmon snd_compress qcom_refgen_regulator coresight_stm stmmac_platform snd_pcm_dmaengine qcom_common coresight_tmc stmmac coresight_replicator qcom_glink_smem coresight_cti stm_core [ 48.177444] coresight_funnel snd_pcm ufs_qcom phy_qcom_qmp_usb gpi phy_qcom_snps_femto_v2 coresight phy_qcom_qmp_ufs qcom_wdt gpucc_sa8775p pcs_xpcs mdt_loader qcom_ice icc_osm_l3 qmi_helpers snd_timer snd soundcore display_connector qcom_rng nvmem_reboot_mode drm_kms_helper phy_qcom_qmp_pcie sha256 cfg80211 rfkill socinfo fuse drm backlight ipv6 [ 48.301059] CPU: 2 UID: 0 PID: 293 Comm: kworker/u32:2 Not tainted 6.19.0-rc6-dirty #10 PREEMPT [ 48.310081] Hardware name: Qualcomm Technologies, Inc. Lemans EVK (DT) [ 48.316782] Workqueue: pdr_notifier_wq pdr_notifier_work [pdr_interface] [ 48.323672] pstate: 20400005 (nzCv daif +PAN -UAO -TCO -DIT -SSBS BTYPE=--) [ 48.330825] pc : mutex_lock+0xc/0x54 [ 48.334514] lr : soc_dapm_shutdown_dapm+0x44/0x174 [snd_soc_core] [ 48.340794] sp : ffff800084ddb7b0 [ 48.344207] x29: ffff800084ddb7b0 x28: ffff00009cd9cf30 x27: ffff00009cd9cc00 [ 48.351544] x26: ffff000099610190 x25: ffffa31d2f19c810 x24: ffffa31d2f185098 [ 48.358869] x23: ffff800084ddb7f8 x22: 0000000000000000 x21: 00000000000000d0 [ 48.366198] x20: ffff00009ba6c338 x19: ffff00009ba6c338 x18: 00000000ffffffff [ 48.373528] x17: 000000040044ffff x16: ffffa31d4ae6dca8 x15: 072007740775076f [ 48.380853] x14: 0765076d07690774 x13: 00313a323a656369 x12: 767265733a637673 [ 48.388182] x11: 00000000000003f9 x10: ffffa31d4c7dea98 x9 : 0000000000000001 [ 48.395519] x8 : ffff00009a2aadc0 x7 : 0000000000000003 x6 : 0000000000000000 [ 48.402854] x5 : 0000000000000 ---truncated---

Affected packages

Ecosystem Package Introduced Fixed

Related vulnerabilities