Новая уязвимость в коде виртуализации KVM ядра Linux для процессоров ARM64 может привести к тому, что освобожденный участок памяти хоста станет доступен гостевой виртуальной машине на хостах с включенной вложенной виртуализацией.
Ошибка, отслеживаемая как CVE-2026-89775, позволяет гостю читать и записывать память ядра хоста, а исследователь, обнаруживший ее, утверждает, что она может быть использована для побега из гостевой среды и выполнения кода на хост-машине.
Затронутый код является частью основного ядра Linux для ARM64 и исправлен в версиях Linux 6.18.51, 7.2.5 и 7.3-rc1.
Вложенная виртуализация позволяет гостю запускать собственный гипервизор, что дает ему возможность размещать виртуальные машины. На ARM64 она отключена по умолчанию. Это экспериментальный режим загрузки, требующий аппаратного обеспечения Armv8.4 с функцией FEAT_NV2, поэтому обычный хост KVM на ARM64, который никогда не включает его, находится вне зоны риска.
Уязвимость находится в части KVM, отвечающей за вложенную виртуализацию на ARM64. Когда гость определенным образом организует свою память, расчет размера оказывается нулевым, и пропускается шаг, который должен очищать устаревшие записи из кэша адресов процессора (инвалидация TLB).
Страница памяти хоста, которая была освобождена, остается отображенной и доступной для записи, и гость может читать и записывать ее по 64 бита за раз, без аппаратного прерывания для передачи управления хосту.
Хёнву Ким, исследователь безопасности, сообщивший об уязвимости и раскрывший ее 16 сентября, говорит, что гость может использовать это для побега на хост, вырвавшись из своей виртуальной машины для выполнения кода на базовой машине. Эксплойт-код не опубликован, и нет никаких признаков того, что уязвимость использовалась в атаке.
Собственная запись ядра указывает, что затронутый код присутствует с версии Linux 6.16. Однако автор отметил исправление в более позднем изменении, а сопровождающий, который проверил и протестировал его, заявил, что «пропущенная инвалидация начинается только с v6.17». По его словам, хост на 6.16 содержит код, но не то поведение, которое нужно злоумышленнику.
Существует второй способ злоупотребления уязвимостью. В системах, где любой пользователь может открыть /dev/kvm — устройство, которое программа использует для создания виртуальной машины — локальный пользователь может создать гостя и использовать ту же ошибку для получения прав root, говорит Ким.
Он указывает на Red Hat Enterprise Linux, где это устройство по умолчанию открыто для всех пользователей. Red Hat указывает, что ее ядро версии 10 затронуто, а версии с 6 по 9 — нет. Этот путь все еще требует, чтобы хост имел включенную вложенную виртуализацию.
В основном коде уязвимость исправлена в Linux 6.18.51, 7.2.5 и 7.3-rc1. Дистрибутивы поставляют исправление по собственному графику, и статус отличается в зависимости от выпуска.
Для хостов, которые еще не могут быть пропатчены, Red Hat заявляет, что никакие меры по смягчению последствий не соответствуют ее критериям для обходного пути. Единственное, в чем можно быть уверенным, — это в масштабе: атака нацелена только на хосты с включенной вложенной виртуализацией, которая по умолчанию отключена на ARM64.
Поставщики оценивают уязвимость от 7,8 до 9,3 балла из 10. Они сходятся во мнении, что воздействие высоко, а атака локальна, то есть ее нельзя запустить по сети. Расхождение отражает, насколько сложной каждый поставщик считает эксплуатацию уязвимости, а Ubuntu, показывающая показатель 9,3, устанавливает свой собственный приоритет как средний.
По состоянию на 22 сентября уязвимость не входила в каталог эксплуатируемых уязвимостей CISA США, а ее прогнозируемый балл эксплуатации составлял менее 1%.
Раскрытие информации поднимает вопрос о том, могут ли арендаторы облачных сервисов использовать эту уязвимость для взлома машин провайдера. У крупнейших провайдеров необходимая конфигурация не предлагается: Amazon Web Services предлагает экземпляры на базе Intel для вложенной виртуализации, а Google Cloud исключает свои ARM-виртуальные машины из нее.
Это не дает полного иммунитета этим платформам, но конкретный путь, который использует эта уязвимость, не реализован в их стандартных предложениях ARM.
CVE-2026-89775 — четвертый случай побега из гостевой среды KVM в хост, раскрытый Кимом в этом году. Два из них были в x86-версии KVM: Januscape в июле и Zapscape в августе. Наиболее похожей на нее является ITScape, побег из KVM на ARM64, опубликованный им в июне, который он назвал первым подобным побегом, публично продемонстрированным на ARM64.
Всегда имейте в виду, что редакции могут придерживаться предвзятых взглядов в освещении новостей.
Автор – Swati Khandelwal




