Исследователь Hyunwoo Kim раскрыл новую уязвимость ядра Linux под именем Zapscape: атакующий с правами ядра внутри гостевой виртуальной машины уровня L1 может выйти за пределы изоляции KVM и выполнить код на хосте. Опасность реальна там, где вложенная визуализация (nested virtualization) доступна недоверенным гостям.
Проблема получила идентификатор CVE-2026-64561 и локализуется в shadow-MMU подсистемы KVM/x86 — компоненте, который управляет теневыми таблицами страниц для трансляции памяти вложенных гостей. По словам исследователя, продемонстрированный путь эксплуатации позволяет выполнять команды на хосте с привилегиями ядра, то есть root.
Суть ошибки: нарушенный порядок проверок и use-after-free
Zapscape — это ошибка порядка проверки «устаревшего» корня (stale-root check) в учёте shadow-MMU KVM, приводящая к use-after-free. При обработке page fault, инициированного гостем, KVM может освободить страницы MMU и инвалидировать корневую страницу теневого MMU, которая всё ещё используется в текущем пути обработки ошибки. Поскольку путь не проверяет корень повторно, KVM продолжает работу под инвалидизированным корнем.
В техническом описании Kim разобрал механизм подробнее: дочерние страницы наследуют невалидное состояние родителя и при этом попадают в активный список страниц MMU. При последующей очистке один и тот же элемент списка может быть присоединён к двум спискам сразу, затем страница освобождается с сохранившимися устаревшими ссылками — возникает «висячая» ссылка и запись после освобождения.
Публичный proof-of-concept использует этот примитив для построения полной цепочки, которая создаёт на хосте файл с root-правами владельца с именем /Zapscape. Эксплойт нацелен на AMD nested SVM/NPT на Linux 7.1.3, а для безопасного тестирования автор рекомендует запускать его под QEMU TCG. Важно: QEMU не является уязвимым компонентом — ошибка живёт в самом KVM и срабатывает независимо от эмуляции QEMU.
Для эксплуатации обычно достаточно root в гостевой ВМ уровня L1. На системах Intel дополнительно требуется, чтобы гостю L1 были доступны оба значения EPT page-walk — 4 и 5; у AMD аналогичного условия нет.
Что патчить
В публикации от 6 августа подчёркивается: подтверждений эксплуатации в реальных атаках нет, и это «не оружейный эксплойт, который срабатывает сразу» в облачных окружениях — реальное применение потребовало бы переноса действий L1 в модуль ядра гостя и адаптации под конфигурацию и память хоста.
База NVD относит к уязвимым ядра Linux 5.9 и новее вплоть до исправленных стабильных релизов: 6.6.148, 6.12.101, 6.18.42, 7.1.6 и 7.2-rc5. Red Hat в своём бюллетене предварительно оценил severity в 7.0 по CVSS и классифицировал проблему как CWE-825 (обращение по истёкшему указателю). Статус пакетов зависит от трекеров конкретных вендоров дистрибутивов, а не только от версии апстрима: Red Hat предупреждает, что его пакеты часто содержат бэкпортированные исправления без смены версии ядра. По состоянию на 6 августа 2026 года трекер Debian помечал уязвимыми пакеты ядра bullseye, bookworm и trixie (включая репозитории безопасности), а также forky; в sid проблема закрыта версией 7.1.6-1.
Хронология раскрытия: 11 июля Kim сообщил об ошибке в security@kernel.org, 21 июля патч был опубликован и влит, 1 августа проблема ушла в список linux-distros под пятидневное эмбарго, 4 августа назначен CVE-2026-64561, 6 августа — публичное раскрытие. Исправление, влитое коммитом 2abd5287f083, переносит проверку устаревшего корня после вызова make_mmu_pages_available(): если при переутилизации страниц текущий корень инвалидизируется, KVM перезапускает обработку ошибки через RET_PF_RETRY вместо продолжения работы под невалидным корнем.
Раскрытие продолжает серию работ Kim по KVM: в июле он публиковал Januscape (CVE-2026-53359) — отдельную проблему shadow-MMU KVM/x86, а в июне — ITScape (CVE-2026-46316), побег в KVM/arm64.
Что делать администраторам
Для хостингов и VPS-провайдеров, где KVM — фактический стандарт виртуализации, главное — не сверить номер версии ядра с документацией, а проверить статус пакета в репозитории своего дистрибутива: Red Hat и другие вендоры часто разносят исправления бэкпортами без изменения версии. Пока обновление не установлено, стоит держать вложенную виртуализацию выключенной для недоверенных гостей.
Источник: thehackernews.com