Уязвимость в KVM даёт ARM64-гостям доступ к памяти хоста

· Безопасность
Ошибка CVE-2026-89775 в коде вложенной виртуализации ядра Linux для ARM64 позволяет гостевой машине читать и записывать память хоста, а по словам исследователя — выйти из гостя и выполнить код на самой машине.

cover.svg

В коде 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

Комментарии

Войдите, чтобы комментировать.

  • Пока нет комментариев.