Уязвимость в KVM даёт ARM64-гостям доступ к памяти хоста
В коде KVM ядра Linux для процессоров ARM64 обнаружена уязвимость, из-за которой освобождённая страница памяти хоста остаётся доступной гостевой виртуальной машине. Ошибка, получившая идентификатор CVE-2026-89775, позволяет гостю читать и записывать память ядра хоста, а нашедший её исследователь утверждает, что через неё можно выйти из гостя и выполнить код на основной машине.
Где кроется ошибка
Проблема затрагивает часть KVM, отвечающую за вложенную виртуализацию (nested virtualization) — режим, при котором гость запускает собственный гипервизор и сам может размещать виртуальные машины. На ARM64 этот режим по умолчанию выключен: это экспериментальная опция, включаемая при загрузке, и требует оборудования Armv8.4 с функцией FEAT_NV2. Обычный хост KVM на ARM64, который её не включает, вне зоны атаки.
Когда гость определённым образом организует свою память, расчёт размера даёт нуль, и шаг, который должен очистить устаревшие записи из адресного кэша процессора (инвалидация TLB), пропускается. Освобождённая страница памяти хоста остаётся отображённой и доступной для записи, и гость читает и пишет в неё по 64 бита за раз — без аппаратной ловушки, возвращающей управление хосту.
Исследователь Хёну Ким, раскрывший уязвимость 16 сентября, отмечает, что публичного эксплойта нет и признаков атак не зафиксировано. Хотя записи ядра указывают на присутствие затронутого кода начиная с Linux 6.16, сопровождающий, проверявший исправление, уточнил, что «пропущенная инвалидация начинается лишь с версии 6.17».
Второй путь и охват
Есть и другой сценарий: на системах, где любой пользователь может открыть /dev/kvm, локальный пользователь способен создать гостя и через ту же ошибку получить root. Ким указывает на Red Hat Enterprise Linux, где это устройство по умолчанию открыто всем; уязвимой числится десятая версия, тогда как версии с 6 по 9 — нет. Этот путь по-прежнему требует включённой вложенной виртуализации.
В основной ветке ядра ошибка устранена в Linux 6.18.51, 7.2.5 и 7.3-rc1; дистрибутивы выпускают исправления по своим графикам. Уязвимы, в частности, Ubuntu 26.04 и SID-ветка Debian. Red Hat заявляет, что обходного решения, отвечающего его критериям, нет.
Оценки серьёзности расходятся: производители ставят от 7,8 до 9,3 балла из 10, сходясь на высоком уровне ущерба и локальном характере атаки — по сети её не запустить. На 22 сентября уязвимость не значилась в каталоге эксплуатируемых уязвимостей CISA.
Могут ли арендаторы облаков атаковать инфраструктуру провайдера? У крупнейших площадок нужной конфигурации попросту нет: AWS предлагает вложенную виртуализацию только на инстансах Intel, а Google Cloud исключает из неё свои ARM-машины.
CVE-2026-89775 — уже четвёртый побег из гостя KVM в хост, о котором Ким рассказал в этом году, и больше всего напоминает ITScape — первый публично показанный побег на ARM64, опубликованный им в июне.
Источник: The Hacker News
Комментарии
Войдите, чтобы комментировать.