Как CVE-2026-89775 открывает ARM64-гостю память хоста?

Уязвимость CVE-2026-89775 обнаружена в коде KVM основного ядра Linux для процессоров ARM64. KVM представляет собой подсистему ядра, с помощью которой создают и запускают виртуальные машины. Ошибка относится к обработке вложенной виртуализации: освобождённая страница памяти хоста может остаться доступной гостевой системе. В результате гость получает возможность читать и изменять память ядра хоста, а при успешной эксплуатации — покинуть виртуальную машину и выполнить код в основной системе.
Как CVE-2026-89775 открывает ARM64-гостю память хоста?
Изображение носит иллюстративный характер

Атака начинается со специально подготовленной схемы гостевой памяти. Из-за ошибки вычисление размера возвращает ноль, после чего KVM пропускает необходимую очистку TLB, кэша адресных преобразований процессора. Устаревшая запись сохраняется даже после освобождения соответствующей страницы памяти хоста. Страница остаётся отображённой в гостевую систему и доступной для записи. Злоумышленник может читать и менять её по 64 бита за операцию. Аппаратного перехвата при таких обращениях не происходит, поэтому процессор не передаёт управление хосту и тот не получает обычного сигнала о недопустимом доступе.
Для описанного сценария нужен ARM64-хост с включённой вложенной виртуализацией, позволяющей одной виртуальной машине запускать собственный гипервизор и другие ВМ. В ARM64 этот режим по умолчанию отключён, считается экспериментальным, активируется при загрузке и требует оборудования Armv8.4 с функцией FEAT_NV2. Обычный сервер KVM, на котором вложенную виртуализацию никогда не включали, не входит в известный маршрут атаки. Именно это условие заметно сужает число реально уязвимых установок.
Исследователь безопасности Hyunwoo Kim сообщил об ошибке 16 сентября. По его словам, она позволяет «вырваться из гостевой виртуальной машины, перейти на хост и запустить код в основной системе». Возможен и локальный вариант повышения привилегий. Если непривилегированный пользователь вправе открыть устройство /dev/kvm, через которое программы создают виртуальные машины, он может запустить вредоносного гостя, задействовать ту же ошибку вложенной виртуализации и получить права root. Требование включённого вложенного режима при этом сохраняется.
Kim отдельно указал на Red Hat Enterprise Linux, где /dev/kvm по умолчанию доступен всем пользователям. По оценке Red Hat, уязвимо ядро Red Hat Enterprise Linux 10, тогда как выпуски RHEL 6–9 не затронуты. Для систем без возможности немедленно обновить ядро Red Hat не нашла меры, которая отвечала бы критериям полноценного обходного решения. Фактическим ограничителем остаётся конфигурация: ARM64, KVM и заранее включённая вложенная виртуализация.
С нижней границей затронутых версий возникло расхождение. Официальная запись Linux сообщает, что проблемный код присутствует начиная с Linux 6.16. Автор исправления привязал его к более позднему изменению ядра, а сопровождающий, проверявший патч, уточнил: «пропущенная инвалидация начинается только с v6.17». При таком прочтении в Linux 6.16 уже есть связанный код, но ещё нет поведения, необходимого для эксплуатации. Реальная уязвимость с сохранением устаревшего отображения начинается в Linux 6.17.
В основном дереве Linux исправление вошло в 6.18.51, 7.2.5 и 7.3-rc1. Дистрибутивы переносят патч по собственным графикам. Оценки опасности у поставщиков лежат между 7,8 и 9,3 балла из 10: последствия считают тяжёлыми, но вектор атаки классифицируют как локальный, то есть напрямую через сеть ошибку запустить нельзя. Разница в баллах связана с оценкой сложности эксплуатации. Ubuntu показывает 9,3, одновременно присваивая проблеме собственный приоритет medium, то есть средний.
По состоянию на 22 сентября Ubuntu 26.04 уязвима, включая её ядра для AWS, Azure и GCP. Обычное ядро Ubuntu 24.04 LTS не затронуто, однако более новые hardware-enablement-ядра 6.17 и 7.0 подвержены ошибке. В Amazon Linux исправление для пакета AL2023 kernel6.18 ещё ожидалось; остальные ядра Amazon Linux не считались уязвимыми. У Debian выпуски bookworm и trixie безопасны, поскольку соответствующего кода в них нет, sid исправлен в пакете 7.2.6-1, а forky остаётся уязвимым.
Для облаков риск выглядит тревожно: арендатор теоретически способен выйти из ВМ и добраться до системы провайдера. Но необходимая конфигурация отсутствует в стандартных ARM-предложениях двух крупнейших площадок, упомянутых в оценке. Amazon Web Services (AWS) заявляет поддержку вложенной виртуализации только для экземпляров на Intel. Google Cloud прямо исключает ARM-виртуальные машины из числа систем с такой поддержкой. Это не означает полной неуязвимости инфраструктуры AWS или Google Cloud; речь лишь о том, что стандартные ARM-сервисы не открывают конкретный путь, необходимый CVE-2026-89775.
На 22 сентября публичного эксплойта не существовало, сведения о применении ошибки в атаках отсутствовали. CVE-2026-89775 не входила в каталог реально эксплуатируемых уязвимостей американского Cybersecurity and Infrastructure Security Agency (CISA), а прогнозируемая вероятность эксплуатации оценивалась менее чем в 1%. Низкий прогноз не отменяет возможности полного захвата хоста там, где совпали аппаратная платформа, версия ядра, права доступа к KVM и экспериментальная настройка вложенной виртуализации.
CVE-2026-89775 стала четвёртым раскрытым Hyunwoo Kim за этот год способом побега из гостевой KVM-системы на хост. В июне он опубликовал ITScape, близкую по характеру ошибку ARM64 KVM, назвав её «первым публично показанным побегом из ARM64 KVM». В июле появилась Januscape для x86-версии KVM, в августе — ещё одна x86-уязвимость Zapscape. Четвёртая работа, раскрытая 16 сентября, снова касается ARM64: оставшееся после освобождения отображение памяти даёт гостю чтение и запись в ядро хоста, поэтому на затронутых машинах требуется ядро с исправлением от разработчиков Linux либо патч конкретного дистрибутива.


Новое на сайте

Ссылка