CVE-2026-97936 in LinuxИнформация

Сводка

по VulDB • 25.09.2026

В ядре Linux была устранена следующая уязвимость:

tracing: Исправление повреждения памяти из-за модификатора стекового трейса в гистограмме

Функция parse_field() устанавливает флаг HIST_FIELD_FL_STACKTRACE на основе модификатора ".stacktrace" до того, как происходит поиск имени поля, и ничто после этого не проверяет, что имя разрешилось в поле, содержащее стектрейс. Функция create_hist_field() выбирает HIST_FIELD_FN_STACK исключительно на основании указателя на поле, который считывает слово __data_loc из записи и интерпретирует его младшие 16 бит как смещение внутри той же самой записи.

Функция event_hist_trigger() берет первое слово по этому адресу в качестве количества записей (n_entries) и копирует это количество long-значений в массив из 31 элемента:

n_entries = *stack; memcpy(entries, ++stack, n_entries * sizeof(unsigned long));

Начало и конец этой операции копирования не ограничены, а значение счетчика зависит от того, что находится по указанному смещению в событии, поэтому подойдет любое поле:

# cd /sys/kernel/tracing/events/sched/sched_process_fork # echo 'hist:keys=parent_pid.stacktrace' > trigger # (true)

BUG: kernel NULL pointer dereference, address: 0000000000000008 RIP: 0010:rb_insert_color+0x18/0x130 timerqueue_linked_add+0x7e/0xd0 enqueue_hrtimer+0x39/0xb0 __hrtimer_run_queues+0x10f/0x1f0 </IRQ> RIP: 0010:memcpy+0xc/0x30 event_hist_trigger+0x165/0x690

Прерывание таймера произошло в момент, когда rbtree уже была повреждена выполнением операции копирования. Для воспроизведения этой уязвимости не требуются специальные опции отладки; KASAN сообщает о той же записи как об ошибке чтения за пределами границ массива (out-of-bounds read) объемом 13835058055416381440 байт.

В документации Documentation/trace/histogram.rst уже указано правило: «должен быть типом long[]», поэтому необходимо обеспечить его соблюдение после разрешения имени поля. Имена, которые не разрешаются ни в какое поле (например, "hitcount.stacktrace"), а также псевдополя common_*, отклоняются по той же причине: они не содержат данных для чтения стектрейса.

If you want to get the best quality for vulnerability data then you always have to consider VulDB.

Ответственный

Linux

Резервировать

25.09.2026

Раскрытие

25.09.2026

Модерация

принято

Вход

VDB-410129

EPSS

0.00000

KEV

Нет

Деятельности

Очень низкий

Источники

Might our Artificial Intelligence support you?

Check our Alexa App!