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, приводящую к отказу в обслуживании. Она требует локального доступа и низких привилегий.
Обновление ядра до исправленных версий устраняет проблему. Рекомендуется своевременно применять обновления безопасности и следить за рекомендациями производителей дистрибутивов.
Официальные источники
- NVD — CVE-2026-98164
- FIRST EPSS — CVE-2026-98164
- KVM: x86/mmu: Check write tracking in all address spaces - kernel/git/stable/linux.git - Linux kernel stable tree
- KVM: x86/mmu: Check write tracking in all address spaces - kernel/git/stable/linux.git - Linux kernel stable tree
- KVM: x86/mmu: Check write tracking in all address spaces - kernel/git/stable/linux.git - Linux kernel stable tree
- KVM: x86/mmu: Check write tracking in all address spaces - kernel/git/stable/linux.git - Linux kernel stable tree
- KVM: x86/mmu: Check write tracking in all address spaces - kernel/git/stable/linux.git - Linux kernel stable tree
- KVM: x86/mmu: Check write tracking in all address spaces - kernel/git/stable/linux.git - Linux kernel stable tree
- CVEs — The Linux Kernel documentation
История обновлений статьи
- 01.10.2026 — Опубликована первая версия материала.
- 03.10.2026 — Уточнены сведения об уязвимых версиях, оценке риска или исправлении.
Последнее редактирование:
