{"id":"CVE-2026-72304","state":"PUBLISHED","title":"ASoC: SOF: ipc4-control: Fix TOCTOU in sof_ipc4_bytes_put","description":"In the Linux kernel, the following vulnerability has been resolved:\n\nASoC: SOF: ipc4-control: Fix TOCTOU in sof_ipc4_bytes_put\n\nIn sof_ipc4_bytes_put(), the copy size is derived from the old\ndata->size in the buffer rather than the incoming new data's size\nfield from ucontrol. If the new data has a different size, the copy\nuses the wrong length: it may truncate valid data or copy stale bytes.\n\nFix by validating and using the incoming data's sof_abi_hdr.size from\nucontrol before copying.","publishedAt":"2026-08-15T05:55:22.290Z","updatedAt":"2026-10-16T18:55:16.536Z","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":"a062c8899fede2ab5660a817e9b602d3fa280a99","status":"affected","lessThan":"266f936db83aee6ca6473bbb06259bda52bf4fc3","versionType":"git"},{"version":"a062c8899fede2ab5660a817e9b602d3fa280a99","status":"affected","lessThan":"4cf6a7ebbf8787393b158b2cc341723e5bebc4a8","versionType":"git"},{"version":"a062c8899fede2ab5660a817e9b602d3fa280a99","status":"affected","lessThan":"fb4293173db2d474d8fbc0e5ecf4943e6df2b40e","versionType":"git"},{"version":"a062c8899fede2ab5660a817e9b602d3fa280a99","status":"affected","lessThan":"038406abde0d0883419ec89425ea941ec8bbef95","versionType":"git"},{"version":"a062c8899fede2ab5660a817e9b602d3fa280a99","status":"affected","lessThan":"3ad673e7139cf214afd24321a829aad6575f4163","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["sound/soc/sof/ipc4-control.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.145","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.12.97","status":"unaffected","lessThanOrEqual":"6.12.*","versionType":"semver"},{"version":"6.18.40","status":"unaffected","lessThanOrEqual":"6.18.*","versionType":"semver"},{"version":"7.1.5","status":"unaffected","lessThanOrEqual":"7.1.*","versionType":"semver"},{"version":"7.2","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-control.c"]}],"references":["https://git.kernel.org/stable/c/266f936db83aee6ca6473bbb06259bda52bf4fc3","https://git.kernel.org/stable/c/4cf6a7ebbf8787393b158b2cc341723e5bebc4a8","https://git.kernel.org/stable/c/fb4293173db2d474d8fbc0e5ecf4943e6df2b40e","https://git.kernel.org/stable/c/038406abde0d0883419ec89425ea941ec8bbef95","https://git.kernel.org/stable/c/3ad673e7139cf214afd24321a829aad6575f4163"],"weaknesses":[],"ingestedAt":"2026-10-29T20:12:58.252Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2026/72xxx/CVE-2026-72304.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2026-72304","state":"PUBLISHED","datePublished":"2026-08-15T05:55:22.290Z","dateUpdated":"2026-10-16T18:55:16.536Z","assignerShortName":"Linux","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateReserved":"2026-08-09T03:40:39.918Z"},"containers":{"cna":{"title":"ASoC: SOF: ipc4-control: Fix TOCTOU in sof_ipc4_bytes_put","descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\nASoC: SOF: ipc4-control: Fix TOCTOU in sof_ipc4_bytes_put\n\nIn sof_ipc4_bytes_put(), the copy size is derived from the old\ndata->size in the buffer rather than the incoming new data's size\nfield from ucontrol. If the new data has a different size, the copy\nuses the wrong length: it may truncate valid data or copy stale bytes.\n\nFix by validating and using the incoming data's sof_abi_hdr.size from\nucontrol before copying."}],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"a062c8899fede2ab5660a817e9b602d3fa280a99","status":"affected","lessThan":"266f936db83aee6ca6473bbb06259bda52bf4fc3","versionType":"git"},{"version":"a062c8899fede2ab5660a817e9b602d3fa280a99","status":"affected","lessThan":"4cf6a7ebbf8787393b158b2cc341723e5bebc4a8","versionType":"git"},{"version":"a062c8899fede2ab5660a817e9b602d3fa280a99","status":"affected","lessThan":"fb4293173db2d474d8fbc0e5ecf4943e6df2b40e","versionType":"git"},{"version":"a062c8899fede2ab5660a817e9b602d3fa280a99","status":"affected","lessThan":"038406abde0d0883419ec89425ea941ec8bbef95","versionType":"git"},{"version":"a062c8899fede2ab5660a817e9b602d3fa280a99","status":"affected","lessThan":"3ad673e7139cf214afd24321a829aad6575f4163","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["sound/soc/sof/ipc4-control.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.145","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.12.97","status":"unaffected","lessThanOrEqual":"6.12.*","versionType":"semver"},{"version":"6.18.40","status":"unaffected","lessThanOrEqual":"6.18.*","versionType":"semver"},{"version":"7.1.5","status":"unaffected","lessThanOrEqual":"7.1.*","versionType":"semver"},{"version":"7.2","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-control.c"]}],"references":[{"url":"https://git.kernel.org/stable/c/266f936db83aee6ca6473bbb06259bda52bf4fc3"},{"url":"https://git.kernel.org/stable/c/4cf6a7ebbf8787393b158b2cc341723e5bebc4a8"},{"url":"https://git.kernel.org/stable/c/fb4293173db2d474d8fbc0e5ecf4943e6df2b40e"},{"url":"https://git.kernel.org/stable/c/038406abde0d0883419ec89425ea941ec8bbef95"},{"url":"https://git.kernel.org/stable/c/3ad673e7139cf214afd24321a829aad6575f4163"}],"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 - The bug is reached via SNDRV_CTL_IOCTL_ELEM_WRITE on /dev/snd/controlC* through snd_ctl_elem_write_user() -> snd_sof_bytes_put() -> sof_ipc4_bytes_put(); SOF IPC4 bytes controls are a local ALSA ioctl path, not a network-facing service.\nAC:L - An attacker reliably triggers the flaw with two self-controlled ALSA writes: first establish a small cached data->size, then submit a ucontrol whose sof_abi_hdr.size differs; no race against unrelated victim state is required.\nPR:L - Only a local user who can open ALSA control devices on SOF-equipped Intel laptop/desktop audio hardware is required; typical desktop users in the audio group have this access without real root or init-namespace capabilities.\nUI:N - No separate victim action is needed; the attacker issues the control-element write ioctls directly to drive the vulnerable copy and subsequent IPC transmission.\nS:U - Impact is confined to the host kernel SOF/ALSA audio subsystem on the same machine; heap disclosure, IPC misuse, or firmware parameter corruption does not cross VM, container, or IOMMU boundaries.\nC:H - Validating and copying against stale data->size lets attacker-controlled new_hdr->size bypass bounds checks, so sof_ipc4_set_get_bytes_data() and IPC helpers read beyond the kmalloc control buffer, disclosing adjacent kernel heap memory.\nI:H - The mismatched copy leaves attacker-influenced stale kernel bytes in control buffers and forwards unvalidated sizes to firmware IPC (including sof_ipc4_set_bytes_control_data() memcpy paths), enabling bounded but attacker-directed kernel memory corruption.\nA:H - Inflated unvalidated data->size values drive large memcpy/IPC loops past the allocated control payload, which can provoke KASAN faults, unhandled page faults, kernel oops, or panic on SOF systems."}]}],"providerMetadata":{"shortName":"Linux","orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateUpdated":"2026-08-17T05:42:37.543Z"},"cpeApplicability":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.4","versionEndExcluding":"6.6.145"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.4","versionEndExcluding":"6.12.97"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.4","versionEndExcluding":"6.18.40"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.4","versionEndExcluding":"7.1.5"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.4","versionEndExcluding":"7.2"}]}]}],"x_generator":{"engine":"bippy-1.2.0"}},"adp":[{"title":"CISA ADP Vulnrichment","metrics":[{"other":{"type":"ssvc","content":{"id":"CVE-2026-72304","role":"CISA Coordinator","options":[{"Exploitation":"none"},{"Automatable":"no"},{"Technical Impact":"total"}],"version":"2.0.3","timestamp":"2026-10-16T18:46:18.980442Z"}}}],"providerMetadata":{"shortName":"CISA-ADP","orgId":"134c704f-9b21-4f2e-91b3-4a467353bcc0","dateUpdated":"2026-10-16T18:55:16.536Z"}}]}}}