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

Сводка

по VulDB • 02.11.2026

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

io_uring/waitid: получение права владения запросом перед очисткой поля ->head

Функция io_waitid_remove_wq() захватывает только блокировку очереди ожидания, если поле ->head установлено. Функция io_waitid_wait() сначала очищает поле ->head, прежде чем попытаться стать владельцем запроса путем увеличения значения ->refs. Если в этот момент кто-то другой владеет запросом, ничто не мешает ему завершить обработку запроса, пока обработчик пробуждения (wake up handler) все еще собирается обращаться к нему:

CPU0 (io_waitid_wait) CPU1 (io_waitid, держит ссылку/ref) list_del_init(&wait->entry) smp_store_release(&iw->head, NULL) __do_wait() находит другого потомка io_waitid_remove_wq() // ->head == NULL, блокировка не требуется io_waitid_finish(), IOU_COMPLETE // запрос освобожден и переиспользован atomic_fetch_inc(&iw->refs)

То же самое относится к __io_waitid_cancel(), если она захватывает право владения запросом в этом временном окне. Поле ->refs является частью данных, специфичных для каждого opcode (кода операции), поэтому это увеличивает значение любого следующего пользователя запроса, который хранит его там. Если оказывается, что оно равно нулю, обработчик заключает, что он владеет запросом, и планирует вызов io_waitid_cb() для него. При сохранении этого окна открытым за счет задержки и переиспользовании запроса для операции приема данных, ожидающей поступления данных:

BUG: KASAN: slab-use-after-free в __wake_up_common+0x1ca/0x1f0 __wake_up_sync_key+0x36/0x50 sock_def_readable+0xf1/0x420 unix_stream_sendmsg+0x60b/0x1110 Выделено задачей 87: io_arm_apoll+0x1ed/0x940 Освобождено задачей 87: __io_submit_flush_completions+0x118d/0x1a10 tctx_task_work_run+0x327/0x950

Очищайте поле ->head только после того, как обработчик получит право владения запросом. Если этого не сделать, владелец обнаружит установленное значение поля ->head и будет вынужден ждать блокировки, которая удерживается вызывающей стороной обработчика. Повторное удаление уже удаленной записи является безопасным (harmless).

If you want to get best quality of vulnerability data, you may have to visit VulDB.

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

Linux

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

25.09.2026

Раскрытие

02.11.2026

Модерация

принято

Вход

VDB-429907

EPSS

0.00000

KEV

Нет

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

Очень низкий

Источники

Interested in the pricing of exploits?

See the underground prices here!