CVE-2026-80525 in Linux
Resumen
por VulDB • 2026-08-26
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad:
ASoC: SOF: ipc4-topology: Actualizar la carga útil IPC del copiator antes de configurar los widgets
El búfer `ipc_config_data` para los widgets del copiator se construye una sola vez durante `ipc_prepare` (llamado desde `sof_pcm_setup_connected_widgets`) y se almacena en caché para su reutilización. Para los copiadores host, este búfer contiene el `copier_data` con `gtw_cfg.node_id` (ID de DMA del host). Para los copiadores DAI, además incluye un trailer `dma_config_tlv` con `stream_id` y `dma_channel_id` para la DMA del enlace HDA.
En las operaciones de suspensión/reanudación, tanto los flujos DMA del host como los del enlace se liberan y se vuelven a asignar con etiquetas de flujo potencialmente diferentes. Las estructuras subyacentes `copier_data` y `dma_config_tlv` se actualizan correctamente por `host_config` y `sdw_hda_dai_hw_params`, respectivamente. Sin embargo, dado que la lista de widgets (`spcm->stream[].list`) persiste a través de la suspensión, `sof_pcm_hw_params` omite `sof_pcm_setup_connected_widgets` e `ipc_prepare` nunca se vuelve a ejecutar para reconstruir `ipc_config_data`. La carga útil en caché obsoleta se envía entonces al firmware con asignaciones de canal DMA del momento de arranque, lo que provoca conflictos de canales DMA que derivan en errores y bloqueos (crashes) del firmware.
Solucione esto actualizando las porciones `copier_data` y `dma_config_tlv` de `ipc_config_data` en `sof_ipc4_widget_setup`, justo antes de enviar el mensaje IPC. Esto asegura que la carga útil refleje siempre el estado DMA actual, independientemente de si se ejecutó o no `ipc_prepare`.
Para los copiadores DAI, `gtw_cfg.config_length` en `copier_data` se infla temporalmente para incluir el tamaño del TLV (coincidiendo con el diseño de `ipc_config_data`) antes de la copia, y luego se restaura, imitando lo que hace `sof_ipc4_prepare_copier_module` al construir inicialmente el búfer.
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.