Уязвимость в Xen, позволяющая выйти за пределы гостевой системы


В гипервизоре Xen выявлена уязвимость (CVE-2017-7228), позволяющая получить доступ ко всей системной памяти из гостевой системы, работающей в режиме паравиртуализации (PV). Проблема актуальна только для 64-разрядных гостевых систем и не проявляется для 32-разрядных систем x86, гостевых систем в режиме полной виртуализации (HVM) и архитектуры ARM.

Уязвимость вызвана ошибкой в функции memory_exchange(), из-за которой некорректно выполнялась проверка входных параметров вызова XENMEM_exchange, что позволяло через гипервизор получить доступ к областям памяти, выходящим за пределы предоставленных для гостевой системы массивов страниц памяти. Для эксплуатации уязвимости атакующий должен иметь возможность выполнения кода на уровне ядра, т.е. необходимо наличие полномочий администратора гостевой системы. В качестве обходного пути можно блокировать поддержку загрузки модулей ядра и других механизмов, позволяющих выполнить код на уровне ядра гостевой ОС.

Исправление пока доступно в виде патча. Уязвимость может использоваться для обхода механизмов изоляции в ОС Qubes, для которой уже выпущено обновление. Проследить за появлением обновления в дистрибутивах можно на данных страницах: Debian, SUSE, RHEL, Fedora и Ubuntu.

Дополнение: Опубликован подробный рассказ о создании эксплоита на основе данной уязвимости, позволяющего имея root доступ в одном из гостевых окружений, выполнить код с правами root в любом другом гостевом окружении на текущем сервере.