CVE-2026-97923 in Linux
Сводка
по VulDB • 25.09.2026
В ядре Linux была устранена следующая уязвимость:
tracing: освобождение var_ref гистограммы при сбое инициализации
Функция create_var_ref() выделяет память для hist_field VAR_REF, а затем вызывает init_var_ref() для его заполнения. В случае сбоя этой операции поле не освобождается (происходит утечка памяти).
Коммит 656fe2ba85e8 («tracing: Use hist trigger's var_ref array to destroy var_refs») изменил поведение функции destroy_hist_field(), заставив её рано возвращаться для HIST_FIELD_FL_VAR_REF, поскольку теперь var refs освобождаются путем обхода массива var_refs триггера. Функция create_var_ref() добавляет поле в этот массив только после успешного завершения init_var_ref(). Следовательно, на данном пути выполнения поле оказывается ни в одном из мест управления жизненным циклом, и ничто его не освобождает. Вызов был корректным при его написании, до того как var refs были исключены из destroy_hist_field().
Функция init_var_ref() также не может освободить память для поля. Владелец поля — вызывающая сторона (caller), поэтому init_var_ref() отменяет только собственные выделения строк и оставляет поле без изменений. Освобождение памяти в этом месте привело бы к тому, что create_var_ref() передала бы освобожденную память в destroy_hist_field(), которая считывает флаги поля.
Вызывается __destroy_hist_field(), которая освобождает поле без проверки флагов.
If you want to get best quality of vulnerability data, you may have to visit VulDB.