Обнаружена критическая уязвимость в Xen, KVM и QEMU

Обнаружена критическая уязвимость в Xen, KVM и QEMU

В развиваемом проектом QEMU коде эмуляции контроллера флоппи-дисков (FDC) выявлена критическая уязвимость (CVE-2015-3456), получившая кодовое имя VENOM. Кроме QEMU драйвер также используется в системах виртуализации Xen и KVM. Уязвимость позволяет выйти за пределы гостевой системы и получить управления над базовым хост-окружением.

Пользователь гостевой системы, имеющий доступ к портам ввода/вывода (привилегированный пользователь в Linux и любой пользователь в Windows), может отправить эмулятору контроллера FDC специально оформленную команду, которая приведёт к переполнению буфера и выполнению произвольного кода на стороне гостевой системы с правами сопутствующего процесса QEMU. Если данный процесс выполняется с правами root, то пользователь может обойти ограничения виртуализации и из гостевого окружения получить root-доступ к основной системе.

Проблема проявляется во всех гостевых системах на базе архитектуры x86 и x86-64, выполняемых с использованием гипервизора Xen в режиме полной виртуализации (HVM) и в системах на базе QEMU/KVM. Тип эмулируемого оборудования и настройки запуска QEMU не имеют значения, так как в режимах PIIX и ICH9 создаётся мост для шины ISA, в котором в любом случае доступен виртуальный контроллер флоппи-дисков. Также не имеет значение наличие в гостевой системе файла устройства для доступа к флоппи-диску, так как эксплуатация производится через обращение к портам ввода/вывода.

Обновления с устранением уязвимости уже выпущено для RHEL, CentOS, Ubuntu и Debian. Также доступны патчи к QEMU и Xen. Оценить появление обновлений в других дистрибутивах можно на следующих страницах: Fedora, openSUSE, SLES, Slackware, Gentoo, FreeBSD, NetBSD. В качестве обходного пути защиты в RHEL/CentOS предлагается использовать sVirt и seccomp для ограничения привилегий процесса QEMU и ограничение доступа к ресурсам. В Ubuntu в конфигурации по умолчанию при использовании QEMU с libvirt применяется дополнительная изоляция при помощи AppArmor.

Проблема присутствует с 2004 года и вызвана отсутствием проверки переполнения при записи в FIFO-буфер фиксированного размера, используемый в слое эмуляции FDC для хранения команд контроллера и их параметров. Запись в буфер ведётся побайтово, отражая запись данных в порты ввода/вывода, с последующим увеличением индекса, указывающего на текущую позицию в буфере. После выполнения команды индекс сбрасывается в ноль и для следующей команды буфер заполняется заново. Для некоторых команд, таких как FD_CMD_READ_ID и FD_CMD_DRIVE_SPECIFICATION_COMMAND, в определённых ситуациях сброс индекса не производился или производился с задержкой, что даёт возможность полностью заполнить буфер и осуществить запись за его пределы. 

Claude AI помог запустить Bartlett Lake на обычной Z790-плате

У Intel Bartlett Lake появился ещё один неожиданный шанс на жизнь вне встраиваемых систем. Энтузиаст с ником kryptonfly сумел загрузить Windows на процессоре Bartlett Lake с 12 P-ядрами на материнской плате Asus Z790-AYW OC Wi-Fi, несмотря на то что официальной поддержки таких чипов у массовых плат на чипсетах 600-й и 700-й серий нет.

Об этом сообщили Tom’s Hardware и другие профильные издания со ссылкой на обсуждение на Overclock.net. Самое интересное в этой истории даже не сам запуск, а то, как он был достигнут.

Модер правил BIOS, много экспериментировал и использовал Claude AI как помощника в процессе модификации прошивки. Сначала ему удалось добиться только POST, а затем пришлось отдельно бороться с проблемой инициализации памяти, которая не давала системе пройти дальше стартового этапа и загрузить Windows.

Чтобы обойти это ограничение, kryptonfly фактически заставил плату думать, что отдельные компоненты Bartlett Lake относятся к поддерживаемым Raptor Lake 13-го и 14-го поколений. Именно это и помогло протолкнуть систему дальше стартового экрана и довести дело до полноценной загрузки Windows.

До идеала, впрочем, ещё далеко. У сборки остаются проблемы: например, процессор по-прежнему не даёт нормально заходить в BIOS, поэтому для изменения настроек приходится менять CPU. Но даже в таком виде результат считают серьёзным шагом вперёд: раньше речь шла только о POST, а теперь — уже о рабочей загрузке системы. Сам модер уже смотрит в сторону адаптации решения для других LGA 1700-плат, включая версии Asus Apex и Encore.

Интерес к Bartlett Lake понятен. Это довольно странная и потому любопытная линейка Intel: топовые чипы вроде Core 9 273QPE / 273PQE предлагают до 12 производительных ядер без E-ядер, с частотами до 5,9 ГГц. Формально эти процессоры рассчитаны не на обычные домашние десктопы.

RSS: Новости на портале Anti-Malware.ru