Description
In the Linux kernel, the following vulnerability has been resolved: ASoC: SOF: ipc3-control: Fix TOCTOU in bytes_put and bytes_get In sof_ipc3_bytes_put(), the size used for the memcpy is derived from the old data->size already in the buffer, not the incoming new data's size field. If the new data has a different size, the copy length is wrong: it may truncate valid data or copy stale bytes. Similarly, sof_ipc3_bytes_get() checks data->size against max_size without accounting for the sizeof(struct sof_ipc_ctrl_data) offset of the flex array within the allocation. Fix bytes_put to validate and use the incoming data's sof_abi_hdr.size from ucontrol before copying. Fix bytes_get to subtract sizeof(*cdata) from the bounds check to match the actual available space.
Affected products
Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.
Linux Linux
Default version status: unaffected
544ac8858f249950b4d99c68e538cdc07300528f to < 8bd715a9d882fe1993bb2aec5eff89fffa946592affected544ac8858f249950b4d99c68e538cdc07300528f to < 0dce240145f47545d2e4b18c6d58033b83e1fd0eaffected544ac8858f249950b4d99c68e538cdc07300528f to < ed4f758f34be4c32e02933ac4fa044589d9c1c16affected544ac8858f249950b4d99c68e538cdc07300528f to < 0c4fbdaca225b97122b61b68c5353caa33a253c3affected544ac8858f249950b4d99c68e538cdc07300528f to < 92f90917413bdd6078fefff6f6c83a07bf870b04affected544ac8858f249950b4d99c68e538cdc07300528f to < 1f97760417b5faa60e9642fd0ed61eb17d0b1b39affected
Linux Linux
Default version status: affected
5.18affected0 to < 5.18unaffected6.1.178 to ≤ 6.1.*unaffected6.6.145 to ≤ 6.6.*unaffected6.12.97 to ≤ 6.12.*unaffected6.18.40 to ≤ 6.18.*unaffected7.1.5 to ≤ 7.1.*unaffected7.2 to ≤ *unaffected
References
- https://git.kernel.org/stable/c/8bd715a9d882fe1993bb2aec5eff89fffa946592 ↗
- https://git.kernel.org/stable/c/0dce240145f47545d2e4b18c6d58033b83e1fd0e ↗
- https://git.kernel.org/stable/c/ed4f758f34be4c32e02933ac4fa044589d9c1c16 ↗
- https://git.kernel.org/stable/c/0c4fbdaca225b97122b61b68c5353caa33a253c3 ↗
- https://git.kernel.org/stable/c/92f90917413bdd6078fefff6f6c83a07bf870b04 ↗
- https://git.kernel.org/stable/c/1f97760417b5faa60e9642fd0ed61eb17d0b1b39 ↗