CVE-2026-98164 в Linux Kernel: отказ в обслуживании через KVM MMU, уязвимые версии и защита

CVE: CVE-2026-98164
Продукт: Linux Kernel
Дата публикации: 29.09.2026
Критичность: MEDIUM
CVSS: 5.5 (3.1)
EPSS: 0,19%; процентиль 7,97%
CISA KEV: нет подтверждения в каталоге CISA KEV

Краткое описание​


CVE-2026-98164 затрагивает подсистему KVM x86 MMU в ядре Linux. Из-за некорректной проверки write tracking в разных адресных пространствах возможен сбой ядра (BUG) и отказ в обслуживании. Статья описывает причину, условия эксплуатации, затронутые версии и способы защиты.

Основные характеристики​


Уязвимость приводит к отказу в обслуживании (DoS) при локальном доступе с низкими привилегиями. Она связана с некорректной проверкой write tracking в KVM MMU при использовании SMM.

  • CVSS 3.1: 5.5 (средняя), вектор CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H. Оценка отражает локальный доступ, низкие привилегии и высокое воздействие на доступность.
  • CWE-670: Always-Incorrect Control Flow Implementation — ошибка в логике управления потоком.
  • EPSS: 0,192% (процентиль 7,97%). Низкая вероятность эксплуатации в ближайшее время.
  • Требования: доступ к KVM с поддержкой SMM и включённым write tracking.

Какие продукты и версии затронуты​


Уязвимость затрагивает ядро Linux в следующих диапазонах версий:

  • от 4.2 до 6.1.186 включительно (исправлено в 6.1.187);
  • от 6.2 до 6.6.155 включительно (исправлено в 6.6.156);
  • от 6.7 до 6.12.107 включительно (исправлено в 6.12.108);
  • от 6.13 до 6.18.48 включительно (исправлено в 6.18.49);
  • от 6.19 до 7.1.12 включительно (исправлено в 7.1.13);
  • версии 7.2-rc1 … 7.2-rc5.

Точные исправленные версии указаны в официальных источниках, включая NVD и коммиты в стабильных ветках ядра.

Причина уязвимости​


Функция kvm_gfn_is_write_tracked() проверяет только переданный memslot, но отслеживание страниц выполняется для каждого адресного пространства отдельно, а теневые страницы общие для всех адресных пространств. При использовании SMM один и тот же GFN может быть отслеживаемым в одном адресном пространстве и неотслеживаемым в другом. Это приводит к тому, что mmu_try_to_unsync_pages() может пометить верхнюю теневую страницу как unsync, что в итоге вызывает BUG в pte_list_remove().

Как работает атака​


Проблема возникает в функции kvm_gfn_is_write_tracked(), которая проверяет только переданный memslot. Однако отслеживание записи страниц выполняется для каждого адресного пространства отдельно, а теневые страницы (shadow pages) являются общими для всех адресных пространств. При использовании SMM (System Management Mode) один и тот же GFN (guest frame number) может быть помечен как отслеживаемый в одном адресном пространстве и неотслеживаемым в другом.

Из-за этого mmu_try_to_unsync_pages() может ошибочно пометить верхнюю теневую страницу как unsync, что в конечном итоге приводит к вызову BUG в pte_list_remove(). Это вызывает панику ядра и отказ в обслуживании. Точные шаги эксплуатации не раскрыты в доступных источниках, но известно, что проблема связана с SMM и write tracking.

Условия успешной эксплуатации​


Для эксплуатации требуется локальный доступ к системе с правами низкого уровня (PR:L). Необходимо, чтобы KVM был активен и поддерживал SMM (System Management Mode). Также требуется, чтобы write tracking был включён для соответствующих страниц.

Точные условия не полностью описаны в официальных источниках.

Возможный сценарий атаки​


Атакующий, имеющий локальный доступ к системе с низкими привилегиями (PR:L), может инициировать последовательность операций, которые приведут к некорректной обработке write tracking. В результате ядро вызовет BUG в pte_list_remove(), что вызовет панику ядра и сделает систему недоступной.

Сценарий требует, чтобы KVM был активен и поддерживал SMM, а также чтобы write tracking был включён для соответствующих страниц. Детали эксплуатации не описаны в официальных источниках, поэтому точный вектор атаки остаётся нераскрытым.

Есть ли публичный эксплойт​


На момент публикации информации о CVE-2026-98164 не обнаружено публичных эксплойтов или PoC. Отсутствие публичных данных не означает отсутствие эксплойта, но на основе доступных источников эксплуатация не подтверждена.

Признаки эксплуатации​


Специфические индикаторы компрометации для этой уязвимости не описаны. Поскольку уязвимость приводит к отказу в обслуживании, возможными признаками могут быть неожиданные паники ядра или сообщения о BUG в pte_list_remove. Однако эти признаки неспецифичны и могут быть вызваны другими причинами.

Как обнаружить атаку​


Для обнаружения уязвимости необходимо проверить версию ядра и сравнить её с исправленными версиями. Также можно проверить наличие соответствующих патчей в дереве ядра.

Мониторинг журналов ядра на предмет сообщений о BUG в pte_list_remove() может помочь выявить попытки эксплуатации, но такие сообщения не являются однозначным признаком атаки, так как могут быть вызваны другими причинами.

Как проверить свою версию​


Для проверки версии ядра используйте команды:

  • uname -r
  • uname -a
  • cat /proc/version

Сравните полученную версию с исправленными: 6.1.187, 6.6.156, 6.12.108, 6.18.49, 7.1.13. Если версия ниже, система уязвима.

Исправление​


Обновите ядро до исправленной версии: 6.1.187, 6.6.156, 6.12.108, 6.18.49, 7.1.13 или более поздней. Для ветки 7.2 используйте версию после rc5.

Патчи доступны в стабильных ветках ядра, например, коммит 0f38453cdb2e17566ccb7c0f3dabd5bd21caca26 и его бэкпорты. Рекомендуется также следить за обновлениями от вашего дистрибутива.

Временные меры защиты​


Официальные временные меры не опубликованы. Единственный подтверждённый способ устранения — установка обновления. Ограничение локального доступа к системе и отключение KVM, если он не используется, могут снизить риск, но не устраняют уязвимость.

Как проверить устранение уязвимости​


После обновления проверьте версию ядра с помощью uname -r и убедитесь, что она соответствует исправленной или выше. Также можно проверить, что соответствующий патч применён, например, через git log в исходниках ядра.

Вывод​


CVE-2026-98164 представляет собой уязвимость в KVM x86 MMU, приводящую к отказу в обслуживании. Она требует локального доступа и низких привилегий.

Обновление ядра до исправленных версий устраняет проблему. Рекомендуется своевременно применять обновления безопасности и следить за рекомендациями производителей дистрибутивов.

Официальные источники​


  1. NVD — CVE-2026-98164
  2. FIRST EPSS — CVE-2026-98164
  3. KVM: x86/mmu: Check write tracking in all address spaces - kernel/git/stable/linux.git - Linux kernel stable tree
  4. KVM: x86/mmu: Check write tracking in all address spaces - kernel/git/stable/linux.git - Linux kernel stable tree
  5. KVM: x86/mmu: Check write tracking in all address spaces - kernel/git/stable/linux.git - Linux kernel stable tree
  6. KVM: x86/mmu: Check write tracking in all address spaces - kernel/git/stable/linux.git - Linux kernel stable tree
  7. KVM: x86/mmu: Check write tracking in all address spaces - kernel/git/stable/linux.git - Linux kernel stable tree
  8. KVM: x86/mmu: Check write tracking in all address spaces - kernel/git/stable/linux.git - Linux kernel stable tree
  9. CVEs — The Linux Kernel documentation

История обновлений статьи​


  • 01.10.2026 — Опубликована первая версия материала.
  • 03.10.2026 — Уточнены сведения об уязвимых версиях, оценке риска или исправлении.
 
Последнее редактирование:
Назад
Верх Низ