Для гипервизора KVM реализована возможность запуска гостевых систем Xen

Жуaн Мaртинс (Joao Martins) изо кoмпaнии Oracle прeдлoжил для oбсуждeния рaзрaбoтчикaми ядрa Linux нaбoр пaтчeй, дoбaвляющий в гипeрвизoр KVM вoзмoжнoсти зaпускa нe мoдифицирoвaнныx гoстeвыx систeм Xen в рeжимe HVM c испoльзoвaниeм всex уж имеющиеся бэкендов (драйверы на стороне хост-окружения (Dom0), применяемые ради обеспечения работы гостевой ОС) и фронтэндов (драйверы держи стороне гостевой ОС (DomU) чтобы взаимодействия с бэкенд-драйверами хост-окружения, хоть (бы) драйверы сетевой, графической и дисковых подсистем). В KVM поддерживание гостевых систем Xen может оказаться полезной в (видах переноса существующих образов гостевых систем с инфраструктур на базе Xen или с целью создания полигонов для тестирования и разработки гостевых систем ради Xen, а также для использования имеющихся паравиртуальных драйверов (PV) Xen. Получи и распишись стороне гипервизора реализация напоминает организмизм, применённый в KVM для запуска вложенных виртуальных машин HyperV. Держи стороне бэкенда предлагается использовать штатные драйверы Xen. В разница от развивавшегося около 10 полет назад модуля xenner, обеспечивающего эмуляцию Xen Dom0 помощью KVM, в предложенном наборе патчей обеспечена маза применения существующих паравиртуальных драйверов Xen (на смену полной эмуляции оборудования, для ввода/вывода, обработки прерываний и взаимодействия с оборудованием бери стороне гостевой системы применяются специальные драйверы, работающие минуя бэкенд-драйверы хост-системы). Сильнее того, кроме бэкнд и фронтэнд драйверов Xen в (видах управления можно использовать штатный инструментарий Xen, где-то как в предложенных для KVM патчах воплощён настольный для их работы UABI. Так, можно запускать не модифицированные версии xenstored, xenstore-list и xenstore-read. Патчи разбиты бери две основные части: Код ради поддержки Xen HVM ABI, позволяющий загружать гостевые системы в режиме HVM лишенный чего применения на стороне гостевой системы паравиртуализированных драйверов. Шифр для поддержки паравиртуальных (PV) драйверов, обеспечивающий переправление гипервызовов, эмулируя поведение PV бэкендов Xen, и реализующий специфичные к Xen механизмы для работы с разделяемой памятью и каналами в (видах уведомления о наступлении различных событий. Особо можно отметить выявление трёх уязвимостей в KVM, которые были исправлены в обновлениях ядра Linux 4.20.8, 4.19.21, 4.14.99 и 4.9.156: CVE-2019-7222 - убыль памяти, позволяющая в гостевой системе, запущенной с использованием вложенной виртуализации, унаследовать доступ к отрывкам памяти ядра хост-системы. Загвоздка вызвана отсутствием очистки памяти раньше использованием в структуре kvm_inject_page_fault; CVE-2019-7221 - сбыточность обращения к уже освобождённой области памяти (use-after-free) в коде эмуляции таймера vmx. Ранимость может быть эксплуатирована из гостевой системы, запущенной с использованием вложенной виртуализации, и потенциально может ввергнуть к выполнению своего кода на стороне хост-системы; CVE-2019-6974 - устройство файлового дескриптора устройства до создания ссылки держи него может применяться для создания условий use-after-free и повышения своих привилегий в системе. Проблему разрешается эксплуатировать на стороне хоста, присутствие наличии у пользователя доступа к /dev/kvm. Первопричина: http://www.opennet.ru/opennews/art.shtml?num=50190