Zapscape, новая уязвимость ядра Linux, может позволить злоумышленнику с привилегиями ядра внутри гостевой виртуальной машины (ВМ) L1 обойти изоляцию KVM и выполнить код на хосте. Риск возникает, когда вложенная виртуализация доступна ненадежным гостям. Уязвимость отслеживается как CVE-2026-64561 и затрагивает блок управления теневой памятью (MMU) KVM/x86, который управляет таблицами теневых страниц, используемыми для трансляции вложенной гостевой памяти. Исследователь безопасности Хёну Ким, который раскрыл ошибку, сказал, что продемонстрированный путь эксплойта может запускать команды на хосте с привилегиями ядра или root. Исходное исправление было объединено, и администраторы, использующие хосты KVM, которые предоставляют вложенную виртуализацию ненадежным гостям, должны обновиться до исправленного стабильного ядра или пакета поставщика, который поддерживает резервное копирование исправления. Требуемая привилегия ядра L1 обычно означает гостевой root. Системы Intel также требуют, чтобы длина страницы EPT 4 и 5 была доступна гостю L1. У AMD нет эквивалентного условия. Zapscape — это ошибка порядка проверки устаревшего корня в теневой бухгалтерии KVM, которая может привести к использованию после освобождения. Во время обработки сбоев страниц, инициированных гостем, KVM может вернуть страницы MMU и сделать недействительной теневую корневую страницу MMU, которая все еще используется путем обработки сбоев. Поскольку путь не проверяет корень еще раз, KVM может продолжить работу с недействительным корнем.
В технической статье Ким описал проблему как использование после освобождения в рекурсивном пути zap, используемом, когда KVM восстанавливает теневые страницы. KVM проверил, не устарел ли текущий корень, прежде чем сделать доступными дополнительные страницы MMU. Затем Reclaim может сделать недействительным тот же самый корень, но KVM продолжает путь ошибки и создает под ним дочерние теневые страницы. Эти дочерние страницы унаследовали недопустимое состояние от родительской и по-прежнему находились в списке активных страниц MMU KVM. Последующая очистка может прикрепить одну и ту же ссылку на список одновременно к двум спискам, а затем освободить страницу, пока остаются устаревшие ссылки на список, создавая висячую ссылку и запись без поста. Публичное доказательство концепции Кима использует этот примитив для построения полной цепочки, которая создает корневой файл с именем /Zapscape на хосте, на котором работает уязвимый KVM. Проверка концепции нацелена на вложенный AMD SVM/NPT в Linux 7.1.3. Ким рекомендует запускать его под управлением QEMU TCG для безопасного тестирования. QEMU не является уязвимым компонентом. Ким сказал, что ошибка находится во встроенном KVM и срабатывает независимо от эмуляции QEMU. Отчет Кима от 6 августа включает публичное доказательство концепции, но не утверждает, что уязвимость была использована в реальных условиях.
Ким также охарактеризовал его как «не боевой эксплойт, который запускается немедленно» в облачных средах, заявив, что для реального использования потребуется перенести действия L1 в модуль гостевого ядра и адаптировать эксплойт к конфигурации ядра хоста и внутренней памяти. В Национальной базе данных уязвимостей Linux 5.9 и более поздних версий указан как уязвимые до исправленных стабильных выпусков, включая 6.6.148, 6.12.101, 6.18.42, 7.1.6 и 7.2-rc5. Red Hat в своем сообщении присвоила предварительную оценку CVSS 7,0 и классифицировала проблему как CWE-825, или разыменование указателя с истекшим сроком действия. Статус пакета зависит от трекера каждого поставщика Linux, а не только от строк исходной версии. Red Hat предупреждает, что ее пакеты часто содержат исправления, перенесенные обратно, без перехода на новую исходную версию. По состоянию на 6 августа 2026 года трекер Debian перечислил пакеты ядра Bullseye, bookworm и trixie, включая их репозитории безопасности, как уязвимые. В нем также указано, что forky уязвим, а sid — как исправлено в версии 7.1.6-1. Согласно графику раскрытия информации, Ким сообщил о проблеме на адрес security@kernel.org 11 июля 2026 года. Патч был опубликован и объединен 21 июля, проблема была внесена в список дистрибутивов linux 1 августа в рамках пятидневного эмбарго, а CVE-2026-64561 был назначен 4 августа. Публичное раскрытие последовало 6 августа. Исправление было объединено как фиксация. 2abd5287f083, перемещает проверку устаревшего корня после make_mmu_pages_available().
Если восстановление делает текущий корень недействительным, KVM теперь перезапускает ошибку с помощью RET_PF_RETRY вместо того, чтобы продолжать сопоставление или выборку под недопустимым корнем. Раскрытие информации следует за более ранними работами Кима по KVM, включая Januscape (CVE-2026-53359), отдельную проблему теневого MMU KVM/x86, освещенную The Hacker News в июле, и ITScape (CVE-2026-46316), побег KVM/arm64, опубликованный в июне.
