CVE-2026-80525 in Linux
Zusammenfassung
von VulDB • 26.08.2026
Im Linux-Kernel wurde folgende Schwachstelle behoben:
ASoC: SOF: ipc4-topology: Aktualisierung der IPC-Nutzlast des Copiers vor dem Widget-Setup
Der Puffer `ipc_config_data` für Copier-Widgets wird einmal während `ipc_prepare` (aufgerufen von `sof_pcm_setup_connected_widgets`) erstellt und zur Wiederverwendung zwischengespeichert. Für Host-Copier enthält dieser Puffer die `copier_data` mit der `gtw_cfg.node_id` (Host-DMA-ID). Bei DAI-Copiers werden zusätzlich ein `dma_config_tlv`-Trailer mit `stream_id` und `dma_channel_id` für HDA-Link-DMA eingebunden.
Beim Suspend/Resume werden sowohl Host- als auch Link-DMA-Streams freigegeben und neu zugewiesen, wobei sie möglicherweise andere Stream-Tags erhalten. Die zugrunde liegenden Strukturen `copier_data` und `dma_config_tlv` werden korrekt durch `host_config` bzw. `sdw_hda_dai_hw_params` aktualisiert. Da die Widget-Liste (`spcm->stream[].list`) jedoch über den Suspend-Zustand hinweg bestehen bleibt, überspringt `sof_pcm_hw_params` `sof_pcm_setup_connected_widgets`, und `ipc_prepare` wird nicht erneut ausgeführt, um `ipc_config_data` neu aufzubauen. Die veraltete zwischengespeicherte Nutzlast wird dann mit DMA-Kanalzuweisungen zum Bootzeitpunkt an die Firmware gesendet, was zu DMA-Konflikten führt, die Firmware-Fehler und Abstürze verursachen.
Beheben Sie dies, indem Sie den `copier_data`- und `dma_config_tlv`-Teil von `ipc_config_data` in `sof_ipc4_widget_setup` direkt vor dem Senden der IPC-Nachricht aktualisieren. Dies stellt sicher, dass die Nutzlast immer den aktuellen DMA-Zustand widerspiegelt, unabhängig davon, ob `ipc_prepare` ausgeführt wurde.
Für DAI-Copier wird die `gtw_cfg.config_length` in `copier_data` vor dem Kopieren temporär aufgestockt, um die TLV-Größe einzuschließen (zur Übereinstimmung mit dem Layout von `ipc_config_data`), und anschließend wiederhergestellt. Dies spiegelt wider, was `sof_ipc4_prepare_copier_module` beim ersten Erstellen des Puffers tut.
If you want to get best quality of vulnerability data, you may have to visit VulDB.