CVE-2026-64561 в Linux Kernel: нарушение инварианта MMU при обработке страниц ошибок в KVM

CVE: CVE-2026-64561
Продукт: Linux Kernel
Дата публикации: 04.08.2026
Критичность: HIGH
CVSS: 8.8 (3.1)
EPSS: 0,12%; процентиль 2,19%
CISA KEV: нет подтверждения в каталоге CISA KEV

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


Уязвимость CVE-2026-64561 затрагивает подсистему KVM в Linux Kernel для архитектуры x86. Проблема связана с некорректной проверкой состояния корневых страниц MMU во время обработки ошибок страниц. В результате может быть нарушена целостность структур управления памятью, что потенциально влияет на стабильность виртуализации. Исправление внесено в стабильное дерево ядра Linux.

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


Уязвимость возникает при обработке ошибок страниц в подсистеме KVM для x86. При выполнении операции по доступу к памяти, если корневая страница MMU становится недействительной, система может продолжить работу с этой недействительной страницей, нарушая инвариант, согласно которому недействительные страницы не должны находиться в списке активных страниц MMU. Эта проблема существует с 2008 года, но проявлялась только после введения ограничений в Linux 5.9. Исправление изменяет порядок проверки состояния корневой страницы, выполняя её до выполнения операции по доступу к памяти.

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


Уязвимость затрагивает Linux Kernel с подсистемой KVM для x86. Системы, использующие виртуализацию через KVM и работающие на ядрах Linux с версиями 5.9 и выше, могут быть уязвимы. Особенно подвержены риску среды с активной виртуализацией и высокой нагрузкой на управление памятью. Уязвимость затрагивает стабильные и предрелизные версии ядра, где применяется KVM с поддержкой x86.

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


Основной причиной является последовательность действий при обработке ошибок страниц в подсистеме KVM. До внесения изменений проверка состояния корневой страницы MMU происходила после того, как были сделаны доступны страницы MMU. Если во время этой операции корневая страница становится недействительной (например, при освобождении страницы), система продолжает работать с этой недействительной страницей. Это нарушает инвариант, согласно которому недействительные страницы не должны находиться в списке активных страниц MMU. Исправление обеспечивает проверку состояния корневой страницы до выполнения операции по доступу к памяти.

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


Атака возможна в контексте системы, использующей KVM для виртуализации x86. При возникновении ошибки страницы, если корневая страница становится недействительной во время операции по доступу к памяти, система может продолжить обработку с недействительной страницей. Это может привести к повреждению данных или нарушению целостности структур управления памятью. Требуется наличие активной виртуальной машины с KVM и условий, при которых страница становится недействительной во время обработки.

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


Для эксплуатации уязвимости необходима система с KVM для x86 и активное использование виртуальных машин с обработкой ошибок страниц. Необходима возможность вызова механизма обработки ошибок страницы с условиями, при которых корневая страница может стать недействительной во время обработки. Уязвимость наиболее актуальна в средах с высокой нагрузкой на память и активной виртуализацией.

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


Сценарий атаки предполагает, что виртуальная машина, управляемая через KVM, получает ошибку страницы. Во время обработки этой ошибки система делает страницы MMU доступными, но в этот момент корневая страница становится недействительной. Если проверка состояния корневой страницы происходит после этого, система продолжает использовать недействительную страницу. Это может привести к повреждению данных или нарушению работы виртуальной машины. Сценарий может быть реализован в условиях высокой нагрузки на память или при частых перераспределениях страниц.

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


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

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


В отсутствие специфичных IOC, можно наблюдать признаки, указывающие на возможное использование уязвимости. Это могут быть аномалии в журналах ядра, связанные с KVM и MMU, или необычное поведение виртуальных машин при высокой нагрузке на память. Также можно обратить внимание на ошибки в логах, связанные с обработкой ошибок страницы или сбросом страниц MMU. Для мониторинга рекомендуется использовать средства наблюдения за состоянием виртуальных машин и журналами ядра.

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


Обнаружение уязвимости возможно через анализ журналов ядра и мониторинг состояния KVM и MMU. Системы, использующие KVM, могут быть проверены на наличие ошибок в обработке страниц или аномалий в работе с памятью. Также можно использовать инструменты анализа производительности и журналов, чтобы выявить необычное поведение виртуальных машин. Для точного определения уязвимости необходимо наличие соответствующих логов и данных о состоянии страниц MMU.

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


Для проверки версии ядра Linux, в которой устранена уязвимость CVE-2026-64561, можно использовать следующие команды:

Код:
uname -r

Код:
uname -a

Код:
cat /proc/version

После выполнения этих команд можно сравнить номер версии ядра с информацией о том, какие версии содержат исправление. Исправление было включено в стабильное дерево ядра Linux и доступно в версиях, начиная с 5.9 и выше.

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


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

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


Временные меры защиты могут включать ограничение использования KVM с высокой нагрузкой на память, мониторинг состояния виртуальных машин и журналов ядра. Также можно рассмотреть возможность отключения функций, связанных с обработкой ошибок страниц, если это допустимо в конкретной среде. Однако такие меры не являются полноценной защитой и должны рассматриваться как временное решение до применения официального исправления.

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


После применения исправления рекомендуется проверить, что версия ядра Linux содержит исправление. Можно использовать команды:

Код:
uname -r

Код:
uname -a

Код:
cat /proc/version

Также можно проверить журналы ядра на наличие ошибок, связанных с KVM и MMU. Убедиться, что в системе нет аномалий в работе с памятью или виртуальными машинами. После обновления и перезагрузки системы проверить, что уязвимость больше не проявляется.

Вывод​


CVE-2026-64561 представляет собой уязвимость в подсистеме KVM для архитектуры x86 в Linux Kernel. Она связана с некорректной проверкой состояния корневой страницы MMU при обработке ошибок страниц. Исправление вносит изменения в порядок проверки, что предотвращает использование недействительной страницы и сохраняет целостность структур управления памятью. Рекомендуется обновить ядро Linux до версии, содержащей исправление, чтобы устранить уязвимость. Мониторинг состояния виртуальных машин и журналов ядра поможет выявить возможные проявления уязвимости.

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


  1. NVD — CVE-2026-64561
  2. FIRST EPSS — CVE-2026-64561
  3. KVM: x86: Check for invalid/obsolete root after making MMU pages available - kernel/git/stable/linux.git - Linux kernel stable tree
  4. KVM: x86: Check for invalid/obsolete root after making MMU pages available - kernel/git/stable/linux.git - Linux kernel stable tree
  5. KVM: x86: Check for invalid/obsolete root after making MMU pages available - kernel/git/stable/linux.git - Linux kernel stable tree
  6. KVM: x86: Check for invalid/obsolete root after making MMU pages available - kernel/git/stable/linux.git - Linux kernel stable tree
  7. KVM: x86: Check for invalid/obsolete root after making MMU pages available - kernel/git/stable/linux.git - Linux kernel stable tree
  8. CVEs — The Linux Kernel documentation

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


  • 12.08.2026 — Опубликована первая версия материала.
 
Назад
Верх Низ