{"id":"CVE-2025-71286","state":"PUBLISHED","title":"ASoC: SOF: ipc4-topology: Correct the allocation size for bytes controls","description":"In the Linux kernel, the following vulnerability has been resolved:\n\nASoC: SOF: ipc4-topology: Correct the allocation size for bytes controls\n\nThe size of the data behind of scontrol->ipc_control_data for bytes\ncontrols is:\n[1] sizeof(struct sof_ipc4_control_data) + // kernel only struct\n[2] sizeof(struct sof_abi_hdr)) + payload\n\nThe max_size specifies the size of [2] and it is coming from topology.\n\nChange the function to take this into account and allocate adequate amount\nof memory behind scontrol->ipc_control_data.\n\nWith the change we will allocate [1] amount more memory to be able to hold\nthe full size of data.","publishedAt":"2026-05-06T11:32:19.468Z","updatedAt":"2026-10-19T18:25:25.461Z","severity":{"score":7.8,"label":"High","version":"3.1","vector":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H","source":"Linux"},"assigner":"Linux","products":["Linux Linux"],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"a382082ff74b036944cbc5b6ad29b65f633acd3a","status":"affected","lessThan":"59fe643f21b9d59bcbedb0dfbf988ee455c23736","versionType":"git"},{"version":"a382082ff74b036944cbc5b6ad29b65f633acd3a","status":"affected","lessThan":"491956b45b5f4933632ea6d8a8bdfdf045ab81e1","versionType":"git"},{"version":"a382082ff74b036944cbc5b6ad29b65f633acd3a","status":"affected","lessThan":"a704a1a4394b5877b9adc31b2c3165ad0b541896","versionType":"git"},{"version":"a382082ff74b036944cbc5b6ad29b65f633acd3a","status":"affected","lessThan":"1237cd9ff198cb882402572f29569e5247190974","versionType":"git"},{"version":"a382082ff74b036944cbc5b6ad29b65f633acd3a","status":"affected","lessThan":"a653820700b81c9e6f05ac23b7969ecec1a18e85","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["sound/soc/sof/ipc4-topology.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"6.4","status":"affected"},{"version":"0","status":"unaffected","lessThan":"6.4","versionType":"semver"},{"version":"6.6.128","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.12.75","status":"unaffected","lessThanOrEqual":"6.12.*","versionType":"semver"},{"version":"6.18.16","status":"unaffected","lessThanOrEqual":"6.18.*","versionType":"semver"},{"version":"6.19.6","status":"unaffected","lessThanOrEqual":"6.19.*","versionType":"semver"},{"version":"7.0","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["sound/soc/sof/ipc4-topology.c"]}],"references":["https://git.kernel.org/stable/c/59fe643f21b9d59bcbedb0dfbf988ee455c23736","https://git.kernel.org/stable/c/491956b45b5f4933632ea6d8a8bdfdf045ab81e1","https://git.kernel.org/stable/c/a704a1a4394b5877b9adc31b2c3165ad0b541896","https://git.kernel.org/stable/c/1237cd9ff198cb882402572f29569e5247190974","https://git.kernel.org/stable/c/a653820700b81c9e6f05ac23b7969ecec1a18e85"],"weaknesses":["CWE-131"],"ingestedAt":"2026-10-29T20:10:04.440Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2025/71xxx/CVE-2025-71286.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2025-71286","state":"PUBLISHED","datePublished":"2026-05-06T11:32:19.468Z","dateUpdated":"2026-10-19T18:25:25.461Z","assignerShortName":"Linux","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateReserved":"2026-05-06T11:31:45.509Z"},"containers":{"cna":{"title":"ASoC: SOF: ipc4-topology: Correct the allocation size for bytes controls","descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\nASoC: SOF: ipc4-topology: Correct the allocation size for bytes controls\n\nThe size of the data behind of scontrol->ipc_control_data for bytes\ncontrols is:\n[1] sizeof(struct sof_ipc4_control_data) + // kernel only struct\n[2] sizeof(struct sof_abi_hdr)) + payload\n\nThe max_size specifies the size of [2] and it is coming from topology.\n\nChange the function to take this into account and allocate adequate amount\nof memory behind scontrol->ipc_control_data.\n\nWith the change we will allocate [1] amount more memory to be able to hold\nthe full size of data."}],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"a382082ff74b036944cbc5b6ad29b65f633acd3a","status":"affected","lessThan":"59fe643f21b9d59bcbedb0dfbf988ee455c23736","versionType":"git"},{"version":"a382082ff74b036944cbc5b6ad29b65f633acd3a","status":"affected","lessThan":"491956b45b5f4933632ea6d8a8bdfdf045ab81e1","versionType":"git"},{"version":"a382082ff74b036944cbc5b6ad29b65f633acd3a","status":"affected","lessThan":"a704a1a4394b5877b9adc31b2c3165ad0b541896","versionType":"git"},{"version":"a382082ff74b036944cbc5b6ad29b65f633acd3a","status":"affected","lessThan":"1237cd9ff198cb882402572f29569e5247190974","versionType":"git"},{"version":"a382082ff74b036944cbc5b6ad29b65f633acd3a","status":"affected","lessThan":"a653820700b81c9e6f05ac23b7969ecec1a18e85","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["sound/soc/sof/ipc4-topology.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"6.4","status":"affected"},{"version":"0","status":"unaffected","lessThan":"6.4","versionType":"semver"},{"version":"6.6.128","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.12.75","status":"unaffected","lessThanOrEqual":"6.12.*","versionType":"semver"},{"version":"6.18.16","status":"unaffected","lessThanOrEqual":"6.18.*","versionType":"semver"},{"version":"6.19.6","status":"unaffected","lessThanOrEqual":"6.19.*","versionType":"semver"},{"version":"7.0","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["sound/soc/sof/ipc4-topology.c"]}],"references":[{"url":"https://git.kernel.org/stable/c/59fe643f21b9d59bcbedb0dfbf988ee455c23736"},{"url":"https://git.kernel.org/stable/c/491956b45b5f4933632ea6d8a8bdfdf045ab81e1"},{"url":"https://git.kernel.org/stable/c/a704a1a4394b5877b9adc31b2c3165ad0b541896"},{"url":"https://git.kernel.org/stable/c/1237cd9ff198cb882402572f29569e5247190974"},{"url":"https://git.kernel.org/stable/c/a653820700b81c9e6f05ac23b7969ecec1a18e85"}],"metrics":[{"cvssV3_1":{"version":"3.1","vectorString":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H","baseScore":7.8,"baseSeverity":"HIGH"},"scenarios":[{"lang":"en","value":"AV:L - An attacker reaches the undersized IPC4 bytes-control buffer through ALSA ioctls on a local /dev/snd/controlC* device; no network or physical attack path exists.\nAC:L - Writable production controls commonly use allocator-boundary maxima such as 1024 bytes, and a malformed nested TLV deterministically produces an attacker-controlled heap overflow without a race or firmware interaction.\nPR:L - The path requires ordinary unprivileged access to the ALSA control device, commonly granted to the active desktop user or audio group, and performs no capability or namespace privilege check.\nUI:N - After obtaining local ALSA control-device access, the attacker can issue the malicious TLV ioctl directly without any victim action.\nS:U - The vulnerable ALSA/SOF driver and the affected kernel resources share the same security authority; ordinary kernel privilege escalation does not change CVSS scope.\nC:H - The size mismatch permits an adjacent heap out-of-bounds read through the TLV get path, while heap corruption can also be leveraged to disclose sensitive kernel memory.\nI:H - The TLV write path copies attacker-controlled bytes past the undersized allocation, providing a controlled adjacent heap overwrite that can plausibly corrupt pointers or enable control-flow hijacking.\nA:H - The heap overflow can corrupt adjacent kernel objects and cause an oops or panic, and it can be triggered repeatedly through the control ioctl."}]}],"providerMetadata":{"shortName":"Linux","orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateUpdated":"2026-08-05T12:12:40.213Z"},"cpeApplicability":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.4","versionEndExcluding":"6.6.128"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.4","versionEndExcluding":"6.12.75"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.4","versionEndExcluding":"6.18.16"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.4","versionEndExcluding":"6.19.6"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.4","versionEndExcluding":"7.0"}]}]}],"x_generator":{"engine":"bippy-1.2.0"}},"adp":[{"title":"CISA ADP Vulnrichment","metrics":[{"other":{"type":"ssvc","content":{"id":"CVE-2025-71286","role":"CISA Coordinator","options":[{"Exploitation":"none"},{"Automatable":"no"},{"Technical Impact":"total"}],"version":"2.0.3","timestamp":"2026-10-16T15:06:19.543117Z"}}}],"problemTypes":[{"descriptions":[{"cweId":"CWE-131","lang":"en","type":"CWE","description":"CWE-131 Incorrect Calculation of Buffer Size"}]}],"providerMetadata":{"shortName":"CISA-ADP","orgId":"134c704f-9b21-4f2e-91b3-4a467353bcc0","dateUpdated":"2026-10-19T18:25:25.461Z"}}]}}}