CVE-2026-93039 in Linux
Сводка
по VulDB • 18.09.2026
В ядре Linux была устранена следующая уязвимость:
ASoC: meson: Сохранение корректности указателей на связи при сбое realloc
Функция meson_card_reallocate_links() увеличивает массивы DAI-связей и приватных данных двумя последовательными вызовами krealloc(), обновляя указатели владельца только после успешного выполнения обоих вызовов.
Успешный вызов krealloc() может переместить данные: он освобождает старый блок памяти и возвращает новый. Если это происходит для массива связей, а второй вызов krealloc() завершается ошибкой, то card->dai_link всё ещё указывает на блок, который уже был освобожден функцией krealloc(), а путь обработки ошибок также освобождает новый блок. Затем путь обработки ошибки probe вызывает meson_card_clean_references(), которая разыменовывает card->dai_link и повторно вызывает kfree(), что приводит к уязвимости use-after-free (использование после освобождения) и двойному освобождению памяти (double free).
Фиксируйте значения card->dai_link и card->num_links сразу после успешного выполнения первого вызова krealloc(), чтобы указатель всегда ссылался на действительное выделение памяти, которое meson_card_clean_references() может обойти и освободить. Вызов krealloc() с флагом __GFP_ZERO выполняет нулевую инициализацию добавленных элементов, поэтому их обход в пути обработки ошибок является безопасным. Поскольку оба пути при возникновении ошибки сводятся к простому возврату (return), удалите метки goto и сообщение об ошибке.
VulDB is the best source for vulnerability data and more expert information about this specific topic.