CVE-2026-80525

ASoC: SOF: ipc4-topology: Refresh copier IPC payload before widget setup

State
Published
Severity
Not scored
Published
Aug 26, 2026
Updated
Aug 26, 2026
Reserved
Aug 26, 2026

Read the record on cve.org

Description

In the Linux kernel, the following vulnerability has been resolved:

ASoC: SOF: ipc4-topology: Refresh copier IPC payload before widget setup

The ipc_config_data buffer for copier widgets is built once during ipc_prepare (called from sof_pcm_setup_connected_widgets) and cached for reuse. For host copiers this buffer contains the copier_data with gtw_cfg.node_id (host DMA ID). For DAI copiers it additionally includes a dma_config_tlv trailer with stream_id and dma_channel_id for HDA link DMA.

On suspend/resume, both host and link DMA streams are released and re-allocated with potentially different stream tags. The underlying copier_data and dma_config_tlv structures are correctly updated by host_config and sdw_hda_dai_hw_params respectively. However, since the widget list (spcm->stream[].list) persists across suspend, sof_pcm_hw_params skips sof_pcm_setup_connected_widgets and ipc_prepare never runs again to rebuild ipc_config_data. The stale cached payload is then sent to firmware with boot-time DMA channel assignments, causing DMA channel conflicts that lead to firmware errors and crashes.

Fix this by refreshing copier_data and dma_config_tlv portions of ipc_config_data in sof_ipc4_widget_setup right before the IPC message is sent. This ensures the payload always reflects the current DMA state regardless of whether ipc_prepare ran.

For DAI copiers, the gtw_cfg.config_length in copier_data is temporarily inflated to include the TLV size (matching the ipc_config_data layout) before copying, then restored, mirroring what sof_ipc4_prepare_copier_module does when first building the buffer.

Scores

The record has no CVSS score.

Weaknesses

The record names no weakness.

Affected Products

ProductVersions
LinuxLinux
  • e9c6b118de1afc1d32a4eb3bc9f3d114d4fe0f1a to before decb87e76716d11d846c9c055e309c8ff90d7656Affected
  • e9c6b118de1afc1d32a4eb3bc9f3d114d4fe0f1a to before 2a7d8fc0fd50e7a2020989d9840cabb74c0282e3Affected
  • e9c6b118de1afc1d32a4eb3bc9f3d114d4fe0f1a to before 574498e56024082a0da68474ad4526d250732411Affected
  • e9c6b118de1afc1d32a4eb3bc9f3d114d4fe0f1a to before 0c0e418dbcf0582bf80d8dbfd9b306607c065992Affected
LinuxLinux
  • 6.10Affected
  • before 6.10Not affected
  • 6.12.105 through 6.12.*Not affected
  • 6.18.46 through 6.18.*Not affected
  • 7.1.10 through 7.1.*Not affected
  • 7.2 and laterNot affected

References

Every record here comes from the CVE Program’s CVE List. © 1999–2026 The MITRE Corporation. CVE is a registered trademark of The MITRE Corporation. The records are reproduced under the CVE Program terms of use.