CVE: CVE-2026-74580
Продукт: Linux Kernel
Дата публикации: 21.08.2026
Критичность: HIGH
CVSS: 8.8 (3.1)
EPSS: 0,12%; процентиль 2,11%
CISA KEV: нет подтверждения в каталоге CISA KEV
Краткое описание
В подсистеме vhost ядра Linux обнаружена ошибка, при которой кэш метаданных vring не сбрасывается при переконфигурации через VHOST_SET_VRING_ADDR или VHOST_SET_VRING_NUM. Это приводит к использованию устаревших записей IOTLB и доступу к памяти вне валидированного диапазона. CVSS 8.8 (HIGH).
Основные характеристики
Уязвимость затрагивает драйвер vhost в ядре Linux. Тип атаки: нарушение изоляции и доступ к памяти. CVSS 3.1: 8.8 (HIGH). Вектор: CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H. EPSS: 0.00121 (2.11%). Статус: Received. Дата публикации: 21.08.2026.
Какие продукты и версии затронуты
Ядро Linux, использующее подсистему vhost с поддержкой device IOTLB. Уязвимость присутствует в версиях, содержащих коммит f88949138058 ("vhost: introduce O(1) vq metadata cache") и не содержащих исправление de845981da67a6b049080c87e605130b0c30adc5. Конкретные номера версий ядра не указаны в источниках.
Причина уязвимости
Функция iotlb_access_ok() использует кэш vq->meta_iotlb[] для проверки доступа. При переконфигурации vring через VHOST_SET_VRING_ADDR или VHOST_SET_VRING_NUM кэш не сбрасывается. В результате старые записи в кэше считаются валидными, и проверка новых адресов пропускается. Это позволяет обращаться к памяти вне диапазона, отведенного IOTLB.
Как работает атака
Атакующий с локальными правами вызывает ioctl VHOST_SET_VRING_ADDR или VHOST_SET_VRING_NUM для переконфигурации виртуальной очереди. Функции vq_access_ok() и vq_log_used_access_ok() возвращают true, откладывая валидацию. При последующем обращении к used ring или дескрипторам функция vhost_vq_meta_fetch() использует устаревший кэш. Пересчет адреса map->addr + addr - map->start приводит к доступу к памяти, не покрытой текущим маппингом IOTLB.
Условия успешной эксплуатации
Для эксплуатации необходимы: локальный доступ к системе, права на выполнение ioctl для vhost, наличие подключенного device IOTLB, активная виртуальная очередь (vq). Атакующий должен иметь возможность переконфигурировать vring, заменяя указатели desc, avail или used.
Возможный сценарий атаки
Локальный пользователь с правами доступа к vhost-устройству переконфигурирует vring, указав новые адреса для desc, avail или used. Кэш метаданных не обновляется. При последующей операции с used ring или чтении дескрипторов ядро использует устаревший маппинг IOTLB. Это приводит к чтению или записи в память вне разрешенного диапазона, что может привести к нарушению изоляции или отказу в обслуживании.
Есть ли публичный эксплойт
Публичный эксплойт не подтвержден. EPSS 0.00121 указывает на низкую вероятность эксплуатации в дикой природе. В источниках отсутствуют сведения о PoC или подтвержденной эксплуатации. Наличие исправления в stable-ветках ядра свидетельствует о том, что проблема была обнаружена и устранена.
Признаки эксплуатации
Специфичные IOC для этой уязвимости не опубликованы. Общие признаки (неспецифичные): ошибки в логах ядра, связанные с vhost, unexpected page faults, аномальная активность процессов, работающих с виртуализацией. Рекомендуется мониторинг логов и контроль целостности системных файлов.
Как обнаружить атаку
Для обнаружения следует анализировать логи ядра на наличие ошибок, связанных с vhost и IOTLB. Можно использовать инструменты аудита системных вызовов (auditd) для отслеживания ioctl VHOST_SET_VRING_ADDR и VHOST_SET_VRING_NUM. Мониторинг аномальной активности в процессах, работающих с виртуализацией, также поможет выявить потенциальную эксплуатацию.
Как проверить свою версию
Проверьте версию ядра с помощью команд:
uname -r, uname -a, cat /proc/version. Сравните результат с перечнем версий, содержащих исправление de845981da67a6b049080c87e605130b0c30adc5. Если версия ядра старше даты коммита 2026-08-03 и не содержит патча, система уязвима.Исправление
Установите обновление ядра, содержащее коммит de845981da67a6b049080c87e605130b0c30adc5. Патч добавляет вызов __vhost_vq_meta_reset(vq) в функцию vhost_vring_set_num_addr, что обеспечивает сброс кэша метаданных при переконфигурации vring. После обновления перезагрузите систему для применения изменений.
Временные меры защиты
Временные меры: ограничьте доступ к vhost-устройствам только для доверенных процессов, отключите поддержку device IOTLB, если это возможно, используйте SELinux или AppArmor для ограничения прав процессов, работающих с виртуализацией. Регулярно проверяйте логи на аномальную активность.
Как проверить устранение уязвимости
После обновления ядра проверьте, что коммит de845981da67a6b049080c87e605130b0c30adc5 присутствует в истории ядра. Используйте
git log в исходниках ядра или проверьте наличие функции __vhost_vq_meta_reset в коде vhost. Проведите функциональное тестирование vhost-устройств для подтверждения корректной работы.Вывод
CVE-2026-74580 представляет серьезную угрозу для систем с vhost и device IOTLB. Уязвимость позволяет нарушителю с локальными правами выйти за пределы изоляции. Рекомендуется срочно обновить ядро до версии, содержащей исправление. Мониторинг и ограничение доступа к vhost-устройствам снижают риск эксплуатации до момента обновления.
Официальные источники
- NVD — CVE-2026-74580
- FIRST EPSS — CVE-2026-74580
- vhost: reset the vring metadata cache on vring reconfiguration - kernel/git/stable/linux.git - Linux kernel stable tree
- vhost: reset the vring metadata cache on vring reconfiguration - kernel/git/stable/linux.git - Linux kernel stable tree
- vhost: reset the vring metadata cache on vring reconfiguration - kernel/git/stable/linux.git - Linux kernel stable tree
- vhost: reset the vring metadata cache on vring reconfiguration - kernel/git/stable/linux.git - Linux kernel stable tree
- vhost: reset the vring metadata cache on vring reconfiguration - kernel/git/stable/linux.git - Linux kernel stable tree
- vhost: reset the vring metadata cache on vring reconfiguration - kernel/git/stable/linux.git - Linux kernel stable tree
- vhost: reset the vring metadata cache on vring reconfiguration - kernel/git/stable/linux.git - Linux kernel stable tree
- vhost: reset the vring metadata cache on vring reconfiguration - kernel/git/stable/linux.git - Linux kernel stable tree
История обновлений статьи
- 22.08.2026 — Опубликована первая версия материала.
- 26.08.2026 — Уточнены сведения об уязвимых версиях, оценке риска или исправлении.
Последнее редактирование:
