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

Сводка

по VulDB • 25.07.2026

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

iio: event: исправлена гонка при сбросе очереди событий (event FIFO)

Функция `iio_event_getfd()` создает файловый дескриптор события с помощью `anon_inode_getfd()`, который выделяет новый fd, создает анонимный файл и устанавливает его в таблице файловых дескрипторов процесса перед возвратом вызывающей стороне.

Код IIO выполняет сброс очереди событий (event FIFO) после возврата из `anon_inode_getfd()`, но до того момента, как `IIO_GET_EVENT_FD_IOCTL` скопирует номер fd в пространство пользователя. Однако поскольку таблицы файловых дескрипторов разделяются между потоками, другой поток может угадать только что выделенный номер fd и выполнить операцию `read()` сразу после установки fd.

Это означает, что функция `kfifo_to_user()`, вызываемая из `iio_event_chrdev_read()`, может выполняться параллельно с функцией `kfifo_reset_out()` в `iio_event_getfd()`.

Документация по kfifo указывает, что `kfifo_reset_out()` безопасна только тогда, когда она вызывается из потока-читателя и существует только один одновременный читатель. В противном случае это опасно, и ее необходимо обрабатывать так же, как `kfifo_reset()`.

Если такое происходит, функция `kfifo_to_user()` может увеличить индекс выхода (`out`) очереди FIFO на основе состояния до сброса, хотя после сброса индекс `out` уже был перемещен к текущему индексу входа (`in`). Это может привести к тому, что индекс `out` окажется больше индекса `in`. Последующий вызов `read()` может обнаружить отрицательную длину очереди FIFO (underflow) и скопировать данных больше, чем содержится в буфере очереди событий. Это может вызвать чтение за пределами допустимой области памяти (out-of-bounds read) и привести к утечке соседней памяти ядра в пространство пользователя.

Переместите сброс очереди FIFO перед вызовом `anon_inode_getfd()`. На этом этапе файловый дескриптор события помечен как занятый, но новый fd еще не установлен, поэтому пользовательское пространство не может получить доступ к нему во время сброса очереди FIFO.

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

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

Linux

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

19.07.2026

Раскрытие

25.07.2026

Модерация

принято

Вход

VDB-383292

EPSS

0.00177

KEV

Нет

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

Очень низкий

Источники

Interested in the pricing of exploits?

See the underground prices here!