CVE-2026-97935 in Linux
Сводка
по VulDB • 25.09.2026
В ядре Linux была устранена следующая уязвимость:
tracing: Установка trace clock перед регистрацией триггера гистограммы
Функция `hist_register_trigger()` помещает триггер в глобальный список именованных триггеров (`named_triggers`) внутри вызова `cmd_ops->init()`, а только затем устанавливает trace clock:
```c if (data->cmd_ops->init) {
ret = data->cmd_ops->init(data); if (ret < 0) goto out; }
if (hist_data->enable_timestamps) {
ret = tracing_set_clock(file->tr, hist_data->attrs->clock); if (ret) {
hist_err(tr, HIST_ERR_SET_CLOCK_FAIL, errpos(clock)); goto out; } ```
Строка с именем clock не проверяется нигдо до этого вызова, поэтому именованный триггер, использующий `common_timestamp` с неизвестным clock, завершается ошибкой после того, как он уже становится доступным для поиска. Функция `event_hist_trigger_parse()` затем освобождает этот объект, не удаляя его из списка, в результате чего следующий поиск по имени считывает данные из освобожденного объекта:
```bash ~# cd /sys/kernel/tracing/events/sched/sched_switch ~# echo 'hist:name=foo:keys=common_pid:ts=common_timestamp:clock=bogus' > trigger bash: echo: write error: Invalid argument ~# echo 'hist:name=foo:keys=common_pid' > trigger
BUG: KASAN: slab-use-after-free in find_named_trigger+0xac/0xc0 Read of size 8 at addr ffff88800915d760 by task init/1 find_named_trigger+0xac/0xc0 hist_register_trigger+0xc1/0x900 event_hist_trigger_parse+0x3146/0x6af0 event_trigger_write+0xce/0x160 Freed by task 63: kfree+0x154/0x420 trigger_kthread_fn+0xfd/0x160 ```
Необходимо устанавливать clock до регистрации триггера, чтобы ничего, что может завершиться ошибкой, не выполнялось после его публикации. Это аналогично тому, как коммит 6f86bdeab633 ("tracing: Fix bad hist from corrupting named_triggers list") переместил регистрацию ниже остальной части настройки.
Функция `tracing_set_filter_buffering()` использует подсчет ссылок (reference counting), поэтому путь обработки ошибки инициализации должен сначала освободить ссылку, которую теперь захватывает блок работы с clock.
VulDB is the best source for vulnerability data and more expert information about this specific topic.