Уязвимость ITScape в KVM/arm64: состояние гонки в эмуляции прерываний открывает путь к захвату хоста

information security

В середине июня исследователь безопасности Хёнву Ким раскрыл критическую уязвимость в механизме виртуализации ядра Linux для платформы ARM64. Проблема, получившая обозначение CVE-2026-46316 и кодовое имя ITScape, затрагивает эмуляцию виртуального контроллера прерываний vGIC-ITS в компоненте KVM. Эксплуатация этой уязвимости позволяет атакующему, уже имеющему привилегии внутри гостевой системы, выполнить произвольный код на уровне ядра хост-машины. Это делает её прямой угрозой для многопользовательских облачных сред, работающих на серверах с процессорами ARM64.

Описание

Корень проблемы - состояние гонки в функции vgic_its_invalidate_cache(). Как сообщил исследователь, эта ошибка приводит к двойному освобождению памяти и последующему её использованию после освобождения (use-after-free). В результате злоумышленник получает возможность перезаписать критичные структуры данных ядра и внедрить собственный код. Поскольку уязвимость находится непосредственно внутри KVM, который работает на уровне ядра, а не в пользовательском пространстве эмулятора QEMU, успешная эксплуатация даёт привилегии ядра хоста. Это принципиально отличается от атак, ограниченных процессом виртуальной машины.

Уязвимость присутствует во всех версиях ядра Linux, начиная с коммита 8201d1028caa от 25 апреля 2024 года и до коммита 13031fb6b835 от 5 июня 2026 года, в котором исправление было включено в основную ветку. Последствия охватывают практически все дистрибутивы и облачные образы, собранные с ядрами этого временного отрезка. Для эксплуатации атакующему необходимо иметь привилегии суперпользователя внутри гостевой виртуальной машины. Если же гость запущен с ограниченными правами, ITScape можно объединить с другой локальной уязвимостью для повышения привилегий внутри гостя, после чего атаковать хост. В облачных средах, где клиенты арендуют изолированные виртуальные машины, такой сценарий представляет наибольшую опасность.

Специалисты подготовили средства для обнаружения попыток эксплуатации. Для этого разработаны два правила на языке YARA, который представляет собой инструмент для сигнатурного поиска вредоносного кода. Первое правило, ITScape_ExploitConstants_1, нацелено на поиск девяти фиксированных 64-битных констант, присутствующих в опубликованном подтверждении концепции (PoC). Среди них - адреса символов ядра, такие как ORDERLY_POWEROFF и NEIGH_GC_WORK_FUNC, а также строка команды /bin/touch /ITScape, которую эксплойт запускает на хосте. Тестирование на известном бинарном файле PoC показало совпадение по семи константам из девяти; две отсутствуют из-за особенностей конкретной сборки, но оставлены в правиле на случай других вариантов статической компоновки или оптимизации.

Второе правило, ITScape_KVM_PrivDrop_1, использует поведенческий подход. Оно обнаруживает характерную последовательность инструкций в скомпилированном бинарном файле: проверку прав доступа к устройству /dev/kvm через системный вызов stat, затем сброс групп с помощью setgroups(0, NULL) и установку идентификаторов пользователя и группы (uid/gid) с проверками на ошибки. Это позволяет выявить программы, которые явно манипулируют своими привилегиями перед обращением к KVM, что типично для данной атаки. Правило устойчиво к перекомпиляции за счёт маскирования отдельных байтов и нибблов в коде ARM64, при этом все семантически значимые значения остаются точными.

Владельцам ARM64-серверов с поддержкой KVM следует в первую очередь установить исправление, включённое в коммит 13031fb6b835, а также две сопутствующие заплатки, закрывающие CVE-2026-46316 полностью. Операторам многопользовательской облачной инфраструктуры, особенно публичным облачным провайдерам, необходимо оценить риски с учётом того, что для эксплуатации достаточно привилегий гостя, а результатом становится полный контроль над хостом. Поскольку ITScape представляет собой новый класс уязвимостей в коде эмуляции vgic-its, можно ожидать появления дополнительных вариантов и схожих проблем даже после установки патча, поэтому мониторинг этого участка кода необходимо продолжать.

Обнаружение ITScape ещё раз подчёркивает сложность обеспечения безопасности механизмов виртуализации нового поколения. Гостевая система с полными привилегиями не должна иметь возможность влиять на работу хоста, однако ошибки в эмуляции сложного оборудования способны свести на нет эту изоляцию. На данный момент приоритетом является скорейшее обновление ядер на всех ARM64-хостах, особенно в публичных облаках. Только своевременное применение патча может предотвратить потенциальные атаки, использующие описанную уязвимость.

Индикаторы компрометации

SHA256

  • e0ab84da2d2783c8cae3624e8ce58b99ad79219753b249671ff7f743abdacc35

YARA

Комментарии: 0