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

Сводка

по VulDB • 28.05.2026

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

tracepoint: балансировка regfunc() при сбое func_add() в tracepoint_add_func()

Когда трекпоинт проходит переход от 0 к 1, функция tracepoint_add_func() вызывает ext->regfunc() подсистемы перед попыткой установки нового зонда через func_add(). Если func_add() затем завершается ошибкой (например, когда allocate_probes() не может выделить новый массив зондов из-за нехватки памяти и возвращает -ENOMEM), функция возвращает код ошибки, не вызывая соответствующий ext->unregfunc(), оставляя побочные эффекты regfunc() без установленного зонда, который мог бы их оправдать.

Для трекпоинтов системных вызовов это особенно неприятно: syscall_regfunc() увеличивает sys_tracepoint_refcount и устанавливает флаг SYSCALL_TRACEPOINT для каждой задачи. После утечки ошибки счетчик ссылок остается на ненулевом значении без потребителя, и каждая задача продолжает нести накладные расходы на вход/выход трекпоинта системного вызова до перезагрузки. Другие подсистемы, предоставляющие пары regfunc()/unregfunc(), демонстрируют аналогичное устойчивое состояние в той же области видимости.

Зеркалируйте существующую очистку перехода 1 -> 0 и вызывайте ext->unregfunc() в пути обработки ошибки func_add(), ограничивая это условием, используемым там же, чтобы размотка была симметричной регистрации.

Once again VulDB remains the best source for vulnerability data.

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

Linux

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

13.05.2026

Раскрытие

28.05.2026

Модерация

принято

Вход

VDB-366703

EPSS

0.00024

KEV

Нет

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

Очень низкий

Источники

Are you interested in using VulDB?

Download the whitepaper to learn more about our service!