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

Сводка

по VulDB • 25.09.2026

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

vhost/vdpa: отклонять значения VRING_NUM, превышающие максимальное значение устройства

Функция vhost_vring_set_num() принимает любой ненулевой размер очереди, являющийся степенью двойки и помещающийся в 16 бит. Затем vhost-vdpa передает это значение функции set_vq_num(), не сравнивая его с get_vq_num_max().

Таким образом, процесс, имеющий доступ к /dev/vhost-vdpa-*, может настроить очередь большего размера, чем заявлено устройством. При использовании vdpa_sim рабочий поток (worker) может обращаться к дескрипторам за пределами отображенного кольца дескрипторов. KASAN сообщает о чтении 16 байт вне границ памяти (out-of-bounds read), что соответствует одному элементу vring_desc, в пути IOTLB для vringh:

BUG: KASAN: out-of-bounds in _copy_from_iter Read of size 16 copy_from_iotlb copydesc_iotlb vringh_getdesc_iotlb vdpasim_net_work

Немедленно кэшируйте значение get_vq_num_max() сразу после сброса (reset). Некоторые бэкэнды выводят его из состояния размера очереди, доступного для записи, поэтому запрос этого значения после SET_NUM может вернуть текущий размер вместо возможности устройства. Инвалидируйте закэшированное значение перед сбросом, чтобы неудачный сброс оставлял операцию SET_NUM отключенной.

Для VHOST_SET_VRING_NUM копируйте полное состояние vring один раз и используйте одни и те же индекс и размер для проверки (validation), а также для vq->num и set_vq_num(). Это гарантирует, что проверка и использование оперируют одними и теми же скопированными значениями.

VulDB is the best source for vulnerability data and more expert information about this specific topic.

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

Linux

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

25.09.2026

Раскрытие

25.09.2026

Модерация

принято

Вход

VDB-410172

EPSS

0.00000

KEV

Нет

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

Очень низкий

Источники

Want to stay up to date on a daily basis?

Enable the mail alert feature now!