Уязвимость в устройстве QEMU PCNET позволяет выполнить код вне гостевой системы

Обнаружена уязвимость в устройстве QEMU PCNET

В коде эмуляции Ethernet-адаптера AMD PCnet, поставляемого в составе QEMU, выявлена критическая уязвимость (CVE-2015-3209), позволяющая выйти за пределы гостевого окружения, выполняемого с использованием компонентов эмуляции аппаратных устройств. В случае успешной эксплуатации злоумышленник может выполнить свой код с правами процесса qemu на стороне хост-системы.

Проблема выявлена участниками группы Zero, созданной компанией Google для предотвращения атак, совершаемых с использованием ранее неизвестных уязвимостей.

Уязвимость вызвана некорректной обработкой в драйвере разбитых на несколько частей TMD-пакетов, суммарных размер которых превышает 4096 байт. По отдельности размер пакета не может превышать размер буфера, установленный в 4096 байт, но проблема возникает при использовании возможности дробления пакета. В этом случае отправив первую часть размером 4096 байт, отправка второй части перепишет область памяти за границей буфера, в том числе позволит переписать ячейки памяти, в которых хранится указатель с адресом возврата управления.

Кроме QEMU уязвимость проявляется в Xen, KVM (qemu-kvm) и других системах виртуализации, использующих компоненты QEMU. В частности, уязвимы конфигурации Xen, выполняющие гостевые системы в режиме HVM с применением виртуального сетевого интерфейса на базе драйвера pcnet. Следует отметить, что драйвер pcnet не используется в Xen по умолчанию и требует явной активации ("model=pcnet" в настройках VIF). Гостевые системы, работающие в режиме паравиртуализации Xen (PV) проблеме не подвержены. Проблема также не проявляется при использовании модели изолированного запуска устройств QEMU (qemu-dm stubdomain, например, при указании в настройках "device_model_stubdomain_override=1"). Опасность проблемы в Fedora/RHEL/CentOS существенно снижена благодаря SELinux. В Ubuntu понижение опасности в конфигурации по умолчанию при использовании QEMU с libvirt достигается за счет дополнительной изоляции при помощи AppArmor.

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

Подпишитесь на новости

Android 17 запретит приложениям внезапно орать в фоне

Google решила покончить с одной из самых мерзких мобильных неожиданностей: когда давно свёрнутое приложение или забытая вкладка браузера внезапно начинает воспроизводить звук. В Android 17 для этого появился системный механизм Background Audio Hardening.

Теперь приложение сможет включать аудио, запрашивать аудиофокус и менять громкость только при видимом на экране интерфейсе либо при корректно запущенной foreground-службе.

Ограничение действует на все приложения в Android 17, даже если они пока не адаптированы под API 37.

Если программа попытается шуметь из неподходящего фонового состояния, система просто проигнорирует её запрос. Воспроизведение и изменение громкости будут заблокированы без ошибки или падения приложения, а запрос аудиофокуса завершится отказом.

Как объясняет Google, нововведение должно остановить случайный запуск звука. Например, приложение могло зависнуть из-за проблем с сетью, быть заморожено системой, а затем очнуться через несколько часов и внезапно продолжить воспроизведение. Другой сценарий — потерянная медиасессия, которая продолжает жить уже без видимого интерфейса и понятной кнопки остановки.

Изменение работает на уровне всей операционной системы, поэтому это не специальное лекарство для Chrome, YouTube или сайтов с наглым автовоспроизведением. Под новые правила попадут браузеры, игры, медиаплееры и остальные приложения.

Побочный эффект тоже имеется. Программы, которым действительно нужно играть музыку или подкасты при выключенном экране, должны правильно использовать foreground-службу для медиавоспроизведения. Разработчикам с кривой реализацией придётся переписать код, иначе Android молча прикрутит им громкость.

Google также предусмотрела тестирование через ADB: защиту можно включить, отключить или перевести в жёсткий режим, при котором некорректные обращения к аудиоинтерфейсам вызывают явные ошибки.

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