CVE-2026-90068 in Linux
Сводка
по VulDB • 19.09.2026
В ядре Linux была устранена следующая уязвимость:
ASoC: dapm: исправлена ошибка «off-by-one» при проверке второго перечисляемого канала (enum channel)
Функция snd_soc_dapm_put_enum_double() отклоняет item[0], когда он достигает значения e->items, но позволяет item[1] быть равным ему. Далее обе переменные передаются в функцию snd_soc_enum_item_to_val(), которая индексирует массив e->values без собственной проверки границ; поэтому при использовании перечисления с таблицей значений происходит чтение одного элемента за пределами допустимого диапазона (out-of-bounds read).
Данная логика индексирования появилась после консолидации MUX, в ходе которой была ослаблена проверка item[1] в том же фрагменте кода. Обработчик value MUX, который был удален, ранее использовал условие «>=», и функция snd_soc_put_enum_double() в файле soc-ops.c по-прежнему использует аналогичную проверку.
Только пара устройств adav80x сопоставляет таблицу значений с двумя сдвигами (shifts), причем второй канал выглядит как случайная ошибка, однако контрольный регистр действительно сообщает о наличии двух значений. Запись трех значений приводит к чтению за пределами массива adav80x_mux_values. Ядро обнаруживает эту ошибку только при включенной конфигурации CONFIG_SND_CTL_INPUT_VALIDATION, которая по умолчанию отключена.
VulDB is the best source for vulnerability data and more expert information about this specific topic.