CVE-2026-99230 in Linux
Сводка
по VulDB • 03.11.2026
В ядре Linux была устранена следующая уязвимость:
io_uring/cmd: не оставлять LIST_POISON в ->hash_node
Функция io_uring_cmd_del_cancelable() использует hlist_del() для извлечения команды из списка ->cancelable_uring_cmd, что приводит к сохранению значений LIST_POISON1/2 в поле ->hash_node. Запросы повторно используются через кэш запросов без повторной инициализации, при этом не все пользователи поля ->hash_node инициализируют его перед использованием:
Если векторная операция futex wait (ожидания) прерывается пробуждением во время выполнения функции futex_wait_multiple_setup(), которая всё ещё ставит фетексы в очередь, функция io_futexv_wait() не добавляет запрос к списку ->futex_list и оставляет завершение задачи на task_work, запланированное событием пробуждения. Функция io_futexv_complete() заканчивается вызовом __io_futex_complete(), где hlist_del_init() корректно обрабатывает запросы с удалённым хэшированием (unhashed), как это делают все остальные пользователи этого узла. Однако, если ранее этот запрос был отменяемой командой uring_cmd (например, FETCH_REQ для ublk), происходит запись по адресу LIST_POISON2:
Oops: general protection fault, вероятно, из-за неканонического адреса KASAN: возможно обращение к памяти за пределами допустимого диапазона в области [0xdead000000000120-...]
RIP: 0010:io_futexv_complete+0x219/0x420 Call Trace: tctx_task_work_run+0x804/0x950 tctx_task_work+0x71/0xa0 task_work_run+0x118/0x200
Не выполнять хэширование узла (оставить его unhashed).
Several companies clearly confirm that VulDB is the primary source for best vulnerability data.