Уязвимость, позволяющая получить доступ к диску хост-системы из гостевого окружения QEMU/KVM

31 декабря 2011 года

В реализации virtio-устройств обнаружена уязвимость, позволяющая организовать из изолированных гостевых систем запись и чтение данных для блочных устройств или LVM-разделов, через отправку SCSI-команд через SG_IO ioctl. Уязвимости подвержены окружения, работающие под управлением QEMU и KVM. Проблеме также подвержен OpenVZ, но только в случае проброса разделов, что обычно не практикуется для окружений на базе OpenVZ. Системы на базе Xen не подвержены проблеме, так как драйвер блочных устройств, используемый в Xen, не поддерживает вызов SG_IO ioctl.

Уязвимость распространяется только на блочные устройства, используемые в работе гостевых систем: например, если в гостевую систему проброшен раздел /dev/sda3, то злоумышленник, имеющий root-права в гостевой системе, может не покидая изолированное окружение получить доступ ко всем данным на диске /dev/sda, включая другие разделы и загрузочный сектор. Для эксплуатации проблемы не нужно прибегать к ухищрениям, все работает "из коробки", например, для чтения загрузочного сектора можно использовать штатную утилиту sg_dd:


sg_dd if=/dev/vda blk_sgio=1 bs=512 count=1 of=output

Суть проблемы касается особенности ядра Linux, связанной с перенаправлением ioctl для логических разделов. В настоящее время в списке рассылки разработчиков ядра Linux уже предложен набор патчей, вводящих отдельный ioctl-вызов scsi_blk_cmd_ioctl, запрещающих проброс SCSI ioctl для разделов и вводящий белый список для ограничения области действия некоторых операций. Линус Торвальдс не одобрил данные патчи для включения в ядро 3.2, так как они содержат слишком значительные изменения, которые опасно принимать накануне релиза 3.2, который ожидается через несколько дней. Поэтому, в настоящее время ищутся более простые альтернативные способы устранения проблемы или рассматривается возможность выпуска внепланового кандидата в релизы ядра 3.2 для дополнительного тестирования патчей.

SELinux не может быть использован для блокирования проблемы, так как он делегирует qemu отправку ioctl для дисков, без привязки к отдельным разделам. Обходным путем решения проблемы является запрет на использование проброса SCSI-команд для устройств virtio-blk. Дополнительно патчи подготовлены для libguestfs и libvirt. Обновление с устранением уязвимости пока доступно только для Red Hat Enterprise Linux, Scientific Linux (Архивная копия от 15 октября 2021 на Wayback Machine) и Cent OS. Статус выпуска обновлений для различных дистрибутивов можно проследить на данных страницах: Ubuntu, Gentoo, Slackware, Mandriva, openSUSE, Fedora (Архивная копия от 18 января 2012 на Wayback Machine) и Debian.

Источники

править
 
 
Creative Commons
Эта статья содержит материалы из статьи «Уязвимость, позволяющая получить доступ к диску хост-системы из гостевого окружения QEMU/KVM», опубликованной OpenNET и распространяющейся на условиях лицензии Creative Commons Attribution (CC BY) — указание автора, источник и лицензию.
 
Эта статья загружена автоматически ботом NewsBots в архив и ещё не проверялась редакторами Викиновостей.
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.

Комментарии

Викиновости и Wikimedia Foundation не несут ответственности за любые материалы и точки зрения, находящиеся на странице и в разделе комментариев.