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

Сводка

по VulDB • 28.10.2026

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

tracing: Исправление падения в функции print_graph_function_event()

Функция tracing_set_tracer() присваивает флаги нового выбранного трассировщика с помощью выражения:

tr->current_trace_flags = t->flags ? : t->tracer->flags;

Если новый трассировщик не определяет ни статические, ни значения по умолчанию для флагов (например, hwlat, irqsoff или wakeup), то функция add_tracer() не создает копию флагов на уровне экземпляра, и оба операнда оказываются равными NULL. В результате tr->current_trace_flags также становится равным NULL.

Кольцевой буфер не очищается при переключении трассировщиков: он сбрасывается внутри tracer_init(), после того как current_trace_flags уже был присвоен. Если в буфере все еще содержатся записи function_graph предыдущего трассировщика, попытка вывести одну из них приводит к разыменованию указателя NULL. Эта ошибка была обнаружена при выполнении команды cat trace во время стресс-теста ftrace:

BUG: kernel NULL pointer dereference, address: 0000000000000000 #PF: supervisor read access in kernel mode RIP: 0010:print_graph_function_event+0xe/0x20 Call Trace: s_show+0x4d/0x110 seq_read_iter+0x2d4/0x490 seq_read+0x130/0x170 vfs_read+0xb5/0x370 ksys_read+0x6d/0xe0 do_syscall_64+0xbc/0x450

Буфер снимка (snapshot buffer) вообще не сбрасывается, поэтому эту ошибку можно воспроизвести без состояния гонки:

echo function_graph > /sys/kernel/tracing/current_tracer echo 1 > /sys/kernel/tracing/snapshot echo hwlat > /sys/kernel/tracing/current_tracer cat /sys/kernel/tracing/snapshot

Вместо того чтобы обучать каждого пользователя tr->current_trace_flags обработке этого крайнего случая, гарантируется, что он никогда не будет равен NULL: когда у нового выбранного трассировщика вообще нет флагов, функция tracing_set_tracer() использует в качестве резервного варианта статический пустой набор no_tracer_flags. Функция run_tracer_selftest() может столкнуться с тем же случаем, поэтому туда также добавлена та же резервная обработка. Существующие пользователи уже корректно обрабатывают случай opts == NULL, поэтому эти трассировщики продолжают работать как раньше.

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

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

Linux

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

25.09.2026

Раскрытие

28.10.2026

Модерация

принято

Вход

VDB-427866

EPSS

0.00000

KEV

Нет

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

Низкий

Источники

Want to know what is going to be exploited?

We predict KEV entries!