Januscape: уязвимость выхода гостей в хост-систему в KVM/x86 (CVE-2026-53359)

Januscape: уязвимость выхода гостей в хост-систему в KVM/x86 (CVE-2026-53359)

Januscape (CVE-2026-53359), это уязвимость «use-after-free» в функции shadow MMU (управления памятью) ядра Linux KVM/x86, обнаруженная и опубликованная исследователем Hyunwoo Kim (@v4bel). Это первая известная уязвимость KVM escape, работающая одинаково на процессорах Intel и AMD без привязки к конкретной архитектуре.

Уязвимость позволяет гостевой виртуальной машине с помощью действий, выполняемых только на уровне гостя, скомпрометировать ядро хост-системы через race condition в обработке shadow page table. Это критически опасно для многотенантных облачных провайдеров (AWS, GCP и подобных), которые предоставляют экземпляры с поддержкой nested virtualization и не могут полностью доверять гостевому коду.

Уязвимость была дремлющей в ядре Linux 16 лет, от коммита 2032a93d66fa (август 2010) до патча 81ccda30b4e8 (июнь 2026). Исследователь подготовил PoC (proof-of-concept), который вызывает kernel panic на хост-системе. Полный exploit код существует в контролируемой среде, но не опубликован.

Два основных сценария атаки: (1) KVM escape, гость может вызвать отказ в обслуживании для других виртуальных машин на том же физическом хосте или завоевать полный контроль над хост-системой с правами root; (2) LPE (локальное повышение привилегий), на дистрибутивах вроде RHEL, где /dev/kvm имеет права 0666, непривилегированный пользователь может достичь root, используя эту уязвимость.

Ключевые факты

  • Уязвимость работает независимо от архитектуры процессора (Intel и AMD), первая такая в истории KVM escape, что упрощает разработку кросс-платформенного злоупотребления
  • Дыра просуществовала в ядре Linux 16 лет (2010, 2026), что указывает на сложность её обнаружения и необходимость регулярного аудита наследуемого кода
  • Мультитенантные облачные инфраструктуры (AWS, GCP) с nested virtualization находятся в критическом риске: один арендатор может нарушить гарантии изоляции для других
  • На многих Linux-дистрибутивах (RHEL) /dev/kvm имеет открытый доступ (0666), превращая уязвимость в надёжный путь локального повышения привилегий из непривилегированной сессии
  • Обязательный патч, коммит 81ccda30b4e8 в ядре Linux; проверка версии и применение обновления критичны для всех, кто запускает KVM с мультитенантными гостями

Почему это важно

Januscape угрожает основополагающему принципу облачных вычислений, гарантии изоляции между арендаторами. Когда один арендатор получает возможность взломать хост-систему, он может не только вывести из строя все остальные машины в рамках гипервизора (DoS), но и получить доступ ко всем их данным и вычислениям. Уязвимость особенно критична для публичных облаков вроде AWS и GCP, где физические хосты делятся между различными клиентами. То, что дыра пролежала в ядре 16 лет, подчеркивает, что даже широко используемый, давно существующий код может скрывать серьёзные проблемы безопасности.

Кому это важно

В первую очередь, операторам облачных провайдеров (AWS, Google Cloud, Azure и другим), которые должны немедленно применить патч 81ccda30b4e8. Системные администраторы корпоративных дата-центров, использующих KVM для виртуализации и предоставляющие доступ гостям, также находятся в зоне риска. Пользователи, арендующие экземпляры на мультитенантных платформах или использующие nested virtualization, должны убедиться, что их хост обновлён. На дистрибутивах вроде RHEL с открытым доступом к /dev/kvm уязвимость угрожает даже локальным непривилегированным пользователям одной машины.

Как это применить

Все, кто запускают x86 KVM хосты с поддержкой nested virtualization и принимают мультитенантных гостей, должны обновить ядро Linux до версии с патчем 81ccda30b4e8 (июнь 2026 или позже). Операционные системы и дистрибутивы выпустят или уже выпустили обновления безопасности, в которые войдёт этот патч. Если вы администратор облачной платформы или корпоративного дата-центра, приоритет, проверить версию ядра на всех хостах, выявить требующие обновления и применить патчи без задержек. На ARM64 архитектуре защита наступит после применения патча для ранее опубликованной уязвимости ITScape (CVE-2026-46316).

Можно ли доверять

Информация поступает от Hyunwoo Kim, признанного исследователя безопасности. Уязвимость сообщена в официальный канал disclosure (linux-distros@vs.openwall.org), embargo истёк, и материалы опубликованы открыто. Использование в Google kvmCTF (специализированное соревнование по взлому KVM) подтверждает практическую значимость уязвимости. Все факты о сроках существования дыры (2010, 2026) подкреплены точными хешами коммитов. Исследователь демонстрирует ответственный подход: PoC опубликован после окончания embargo, а полный exploit код не распространяется в целях ограничения немедленного массового злоупотребления.

Риски и подводные камни

Уязвимость требует прямого доступа к инструментам ядра (модуль kernel) внутри гостевой машины, это возможно, если вы имеете root привилегии на гостевом хосте, что обычно верно в облачных сценариях. Однако на системах, где гостевой пользователь не имеет прав root, уязвимость может быть скомбинирована с другими уязвимостями повышения привилегий (напр. Dirty Frag) для полного воздействия. Поскольку дыра находится в ядре KVM, она независима от QEMU и угрожает даже облачным провайдерам с собственным стеком виртуализации (таким как Kubernetes-подобные системы). На ARM64 архитектуре CVE-2026-53359 не действует, но необходимо срочно обновиться из-за ранее опубликованного ITScape.

«Это первое исследование guest-to-host escape, действующее одинаково на архитектурах Intel и AMD, в отличие от уязвимостей, ограниченных одной архитектурой.»

— Hyunwoo Kim, Januscape documentation