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

Сводка

по VulDB • 03.11.2026

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

io_uring: не перегружать отменяемую задачу задачами task_work

Функция io_ring_exit_work() просит каждую задачу, которая использовала кольцевой буфер (ring), удалить свой узел tctx с помощью механизма task_work и повторяет эту операцию до тех пор, пока список не станет пустым. Функция io_tctx_exit_cb() не обращается к узлу во время выполнения задачи в функции io_uring_cancel_generic(), которая удаляет все узлы по завершении. В результате элемент работы снова планирует обратный вызов сразу после завершения, что является бессмысленным действием.

Это не просто трата времени. Функция task_work_run() возвращается только тогда, когда обнаруживает пустой список. Если кольцевые буферы освобождаются изнутри процесса отмены (например, потому, что запросы других колец удерживали последние ссылки на их файлы), до 64 элементов работы продолжают отправлять обратные вызовы одной задаче, которая их выполняет. Список никогда не становится пустым, задача никогда не возвращается к процессу отмены, узлы остаются в памяти, и цикл продолжается: задача с 60 парами колец, которые опрашивают друг друга, выполнила 280 000 обратных вызовов за 5 секунд, спустя 20 секунд после вызова exit_group(). Процесс завершается только тогда, когда все отправители одновременно оказываются в состоянии ожидания. До этого момента задача удерживает процессорное время и держит элементы работы занятыми.

Выходящая из системы задача не может быть убита в этот момент. Вызов execve() отменяет запросы аналогичным образом, поэтому активная (живая) задача также может зависнуть на этом этапе на несколько минут. Если это занимает более пяти секунд, элементы работы достигают условия WARN_ON_ONCE(time_after(jiffies, timeout)) внутри io_ring_exit_work(). Для реализации любого из описанных сценариев не требуется никаких привилегий.

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

Be aware that VulDB is the high quality source for vulnerability data.

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

Linux

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

25.09.2026

Раскрытие

03.11.2026

Модерация

принято

Вход

VDB-430233

EPSS

0.00000

KEV

Нет

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

Очень низкий

Источники

Interested in the pricing of exploits?

See the underground prices here!