В ядре Linux устранена следующая уязвимость:
ASoC: SOF: ipc3-control: исправить TOCTOU в bytes_put и bytes_get. В sof_ipc3_bytes_put() размер, используемый для memcpy, получается из
старые данные->размер уже находятся в буфере, а не входящие новые данные
поле размера. Если новые данные имеют другой размер, длина копии равна
неправильно: он может обрезать действительные данные или скопировать устаревшие байты.
Аналогично, sof_ipc3_bytes_get() проверяет data->size на соответствие max_size.
без учета смещения sizeof(struct sof_ipc_ctrl_data)
гибкого массива внутри выделения. Исправьте bytes_put для проверки и использования sof_abi_hdr.size входящих данных.
из ucontrol перед копированием. Исправлена ошибка bytes_get для вычитания sizeof(*cdata)
от проверки границ на соответствие фактическому доступному пространству.
Показать оригинальное описание (EN)
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.
Характеристики атаки
Последствия
Строка CVSS v3.1