CVE-2025-71286Linux内核的ASoC (ALSA System on Chip) SOF (Sound Open Firmware) ipc4-topology组件中存在一个内存分配错误漏洞。该漏洞源于在处理bytes控制类型时,未能正确计算所需的内存大小。代码在分配内存时,未将内核专用结构体 `sof_ipc4_control_data` 的大小计算在内,导致分配的缓冲区小于实际需要的大小。本地低权限攻击者可利用此漏洞触发内存越界,可能导致系统崩溃或拒绝服务。
该漏洞位于Linux内核的 `sound/soc/sof/ipc4-topology.c` 文件中,涉及SOF IPC4拓扑控制的处理逻辑。具体而言,当初始化bytes控制时,内核需要为 `scontrol->ipc_control_data` 分配内存。正确的内存大小计算公式应包含三部分:[1] `sizeof(struct sof_ipc4_control_data)` (内核专用结构体)、[2] `sizeof(struct sof_abi_hdr)` (ABI头部)以及 [3] payload(载荷数据)。然而,受影响的代码仅计算了 [2] 和 [3] 的大小,遗漏了 [1]。这意味着分配的内存比实际写入的数据少了一个结构体的大小。由于攻击向量为本地(AV:L)且权限要求低(PR:L),本地恶意用户可以通过加载特定的拓扑文件或通过ALSA接口调用相关控制操作来触发该溢出。这种堆缓冲区溢出主要影响可用性(A:H),可能导致内核崩溃(Kernel Panic),但在特定组合下也可能存在进一步利用的风险。