Исследователь Хену Ким обнаружил уязвимость Januscape в гипервизоре KVM, которая позволяет злоумышленнику совершить побег из гостевой виртуальной машины и выполнить код с правами root на хост-системе. Проблема существовала в коде ядра Linux около 16 лет и затрагивает KVM-хосты на x86-архитектуре с процессорами Intel и AMD, не влияя на ARM64.
Суть уязвимости
CVE-2026-53359 в use-after-free при работе с механизмом трансляции адресов памяти. При поиске теневой страницы KVM проверял только номер гостевого фрейма, игнорируя атрибуты страницы. Это позволяло использовать уже освобождённую память, занятую другими объектами ядра, что приводило к повреждению данных. Опубликованный PoC-эксплоит вызывает панику ядра хоста, отключая все виртуальные машины на сервере. Исследователь утверждает, что возможен и полноценный захват системы с правами root, но эксплоит для этого пока не опубликован.Особую опасность баг представляет для мультитенантных облачных сред с включённой вложенной виртуализацией. Для атаки требуются права root внутри гостевой VM и активная nested virtualization, что вынуждает KVM использовать уязвимый код теневых таблиц даже на системах с аппаратной поддержкой EPT или NPT. В некоторых дистрибутивах файл /dev/kvm доступен на запись всем пользователям, позволяя непривилегированному атакующему получить root-доступ на непропатченной системе. Исследователь получил 250 тысяч долларов за обнаружение уязвимости через программу Google kvmCTF.
Исправление состоит из одной строки в функции kvm_mmu_get_child_sp() и уже включено в основную ветку ядра (коммит 81ccda30b4e8 от 19 июня 2026 года). Патч доступен в стабильных версиях ядра 7.1.3, 6.18.38, 6.12.95, 6.6.144, 6.1.177, 5.15.211 и 5.10.260. Debian уже выпустил обновление для testing и unstable, RHEL и его производные ожидают патча от Red Hat, SUSE и openSUSE пока тестируют исправления. Временная мера защиты — отключение вложенной виртуализации параметрами kvm_intel.nested=0 или kvm_amd.nested=0.
Linux / Линукс 🥸