The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

Уязвимость, позволяющая выйти из изолированного окружения QEMU

23.08.2019 11:11

Раскрыты детали критической уязвимости (CVE-2019-14378) в обработчике SLIRP, по умолчанию применяемом в QEMU для организации канала связи между виртуальным сетевым адаптером в гостевой системе и сетевым бэкендом на стороне QEMU. Проблема также затрагивает системы виртуализации на базе KVM (в режиме Usermode) и Virtualbox, в которых используются бэкенд slirp из QEMU, а также приложения, применяющие сетевой стек в пространстве пользователя libSLIRP (эмулятор TCP/IP).

Уязвимость позволяет добиться выполнения кода на стороне хост-системы с правами процесса-обработчика QEMU при отправки со стороны гостевой системы специально оформленного очень большого сетевого пакета, для которого требуется проведение фрагментации. Из-за ошибки в функции ip_reass(), вызываемой при пересборке входящих пакетов, первый фрагмент может не уместиться в выделенный буфер и его хвост будет записан в следующие за буфером области памяти.

Для тестирования уже доступен рабочий прототип эксплоита, в котором предусмотрен обход ASLR и выполнение кода через перезапись памяти массива main_loop_tlg, включающий список QEMUTimerList с обработчиками, вызываемыми по таймеру. Уязвимость уже устранена в Fedora и SUSE/openSUSE, но остаётся неисправленной в Debian, Arch Linux и FreeBSD. В Ubuntu и RHEL проблема не проявляется из-за неиспользования slirp. Уязвимость остаётся неисправленной в последнем выпуске libslirp 4.0 (исправление пока доступно в виде патча).



  1. Главная ссылка к новости (https://blog.bi0s.in/2019/08/2...)
  2. OpenNews: Выпуск эмулятора QEMU 4.1
  3. OpenNews: Критическая уязвимость, позволяющая выполнить код вне гостевой системы в Xen, KVM, VirtualBox и QEMU
  4. OpenNews: Уязвимость в устройстве QEMU PCNET позволяет выполнить код вне гостевой системы
  5. OpenNews: Уязвимость в IDE-подсистеме QEMU позволяет скомпрометировать Xen, KVM и VirtualBox
  6. OpenNews: QEMU/KVM и Xen подвержены уязвимости в коде эмуляции VGA
Лицензия: CC-BY
Тип: Проблемы безопасности
Ключевые слова: https, chrome
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение (32) Ajax | 1 уровень | Линейный | Раскрыть всё | RSS
  • 1.1, Аноним (1), 11:20, 23/08/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +15 +/
    Короче говоря, пора уже привыкнуть к тому, что виртуализация не есть изоляция.
     
     
  • 2.2, mumu (ok), 11:26, 23/08/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Да. Думаю практически у всех (за редким исключением) вся безопасность построена на том, что нельзя выйти из контейнера в хостовую систему.
    А сейчас уже приходится делать чуть ли не по отдельному датацентру на каждую DMZ. Это капец как накладно и мало кто такое может потянуть.
     
     
  • 3.7, Аноним (7), 12:11, 23/08/2019 [^] [^^] [^^^] [ответить]  
  • +7 +/
    по этому нужно виртуалку запускать в виртуалке. что бы ломателю не скучно было
     
     
  • 4.24, Корец (?), 18:39, 23/08/2019 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Я же говорил, что вместо процов надо ставить FPGA! Во-первых, можно будет исправлять любые аппаратные уязвимости, а во-вторых, можно будет реализовать аппаратные контейнеры.
     
     
  • 5.26, Hewlett Packard (?), 23:12, 23/08/2019 [^] [^^] [^^^] [ответить]  
  • +/
    И цены на аккумуляторы упадут еще сильнее, их ведь, если во всей мобильной технике заменить CPU на FPGA, потребуется в десятки раз больше.
     
  • 3.8, Тупой погроммист (?), 12:22, 23/08/2019 [^] [^^] [^^^] [ответить]  
  • +6 +/
    SLIRP на серверах с виртуалками не используют - он медленный и не может слушать порты (без дополнительной настройки). Он для тех, кому лень настроить бридж (домашние пользователи) или нет возможности настроить систему из под рута (CI). Вообщем, тут мимо.
    P.S. Redhat-овский buildah & podman (рекламируемый как "более безопасный docker"), кстати, тоже по-дефолту SLIRP для контейнеров использует.
     
     
  • 4.14, mumu (ok), 13:18, 23/08/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Где одно там и другое. Тут важен сам факт такой возможности и что это не что-то там заоблачное. Уязвимость в vmxnet3 многих заставила пересмотреть всю архитектуру ИБ и наплодить буферных зон там, где их раньше не было.
    Когда все топили за виртуализацию году в 2006-м вообще никто предположить не мог (ну или я один такой наивный был), что выход из гостевой VM физически возможен. Это казалось святым граалем в плане изоляции недоверенных сред.
     
     
  • 5.15, пох. (?), 13:38, 23/08/2019 [^] [^^] [^^^] [ответить]  
  • +/
    один. Мы и в 2008м физически разделяли закрытые и открытые сервисы - не просто не смешивая их на соседних виртуалках, а вообще в разных стойках и на разном сетевом оборудовании (да, никаких "грязных" вланов на том же свитче, на котором крутятся внутренние сервисы)

    > Это казалось святым граалем в плане изоляции недоверенных сред.

    ну надеюсь теперь-то поняли, что это просто еще один презерватив, надетый на свечку?

     
     
  • 6.17, mumu (ok), 14:32, 23/08/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    С SDN и всякой гиперконвергентностью всё стало гораздо запутанней. Не буду же я отдельный Cisco ACI под разные среды поднимать. Ладно, суёшь в целые отдельные тенанты. А потом такой радостно читаешь ньюз на опеннете: "Выход за границы tenant-а"...
    И зачем нужен vmware NSX, если всё железными коммутами отбивать. Тут приходится идти на компромиссы.
     
     
  • 7.18, пох. (?), 14:38, 23/08/2019 [^] [^^] [^^^] [ответить]  
  • +/
    > А потом такой радостно читаешь ньюз на опеннете: "Выход за границы tenant-а"...

    ну вот по этой причине - презервативов на свечке должно быть поболее одного.

    (причем при большом желании все равно поимеют, так или иначе)

     
  • 7.25, mickvav (?), 19:14, 23/08/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Imho, тут так - виртуалки - неплохой способ отделить незлонамеренных бакланов друг от друга. Не более.
     
     
  • 8.27, пох. (?), 09:19, 24/08/2019 [^] [^^] [^^^] [ответить]  
  • +/
    днем-то он мирный абрикос, а ночью - дикий урюк поломали очередной врот-пресс... текст свёрнут, показать
     
  • 7.31, G0Dzilla (ok), 13:12, 25/08/2019 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Вы на полном серьезе считаете вмтварь виртуализацией? Мне страшно за вас.
     
  • 2.3, leap42 (ok), 11:33, 23/08/2019 [^] [^^] [^^^] [ответить]  
  • +/
    так это давно понятно, поэтому связка из libvirt+qemu+kvm легко и приятно подхватывает SELinux или AppArmor. буквально надо 2 строчки в конфиге поправить для суровой изоляции.
     
  • 2.6, Аноним (6), 11:45, 23/08/2019 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Вполне себе изоляция с определенным степенем надежности.
    Одна серьезная уязвимость в qemu в раз полгода - лучше, нежели поддержка зоопарка вроде бы изолированных серверов с потенциальными аппаратными уязвимостям, которые пофиксятся только апдейтом железа.
     
     
  • 3.29, Аноним (-), 20:17, 24/08/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Дыры в qemu не отменяют аппаратных дыр.
    Виртуализация не решает никаких проблем безопасности, только создаёт дополнительные.
    Другой вопрос, что иногда без виртуализации прикладные проблемы решать неудобно. Поэтому приходится мириться с дополнительными потенциальными проблемами в безопасности.
     
  • 2.10, Leo90 (?), 12:29, 23/08/2019 [^] [^^] [^^^] [ответить]  
  • –2 +/
    ага, как не пытаются просто закрыть глаза и писать свой г-код без оглядки на безопастноить, да и вобще, без оглядки, все никак не получится..
     

  • 1.4, advisor (ok), 11:40, 23/08/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/
    о хоть где-то плюс убунты. а то я уже хотел уходить с нее.
     
  • 1.5, Аноним (5), 11:44, 23/08/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    > Из-за ошибки в функции ip_reass(),

    А вот называли бы функции менее ругательно -- и ошибки поди не допустили бы:)

     
     
  • 2.9, пох. (?), 12:22, 23/08/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    наоборот - так она прошла бы sjw контроль, и была бы и в убунте тоже
     

  • 1.11, Аноним (11), 13:05, 23/08/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Нет бесплатного сыра. Дешево, в адекекватные сроки (не 10 лет), безопасно. Выберете что-то одно.
     
     
  • 2.13, Аноним (13), 13:15, 23/08/2019 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Бесплатный сыр ЕСТЬ — в нетоварной экономике, например в opensource.
     
     
  • 3.22, OpenEcho (?), 16:53, 23/08/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >например в opensource

    Где все более менее крупные проекты живут за счет вливаний от большого бизнеса, а как известно, - кто девушку поит, то ее и танцует

     
     
  • 4.28, пох. (?), 09:23, 24/08/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    а некрупные выживают на donate и тааакой рекламе, с которой уже даже гугель борется, потому что она позорит его бизнес.

    А о "нетоварной экономике" рассказывают только те, кто бесплатный сыр потом жрет с лопаты, не слишком брезгуя.

     
     
  • 5.30, Аноним (-), 22:00, 24/08/2019 [^] [^^] [^^^] [ответить]  
  • +/
    > потому что она позорит его бизнес.

    Ну вот, как говорят мудрые люди, и на старуху найдется проруха.

     

  • 1.12, Аноним (12), 13:13, 23/08/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Proxmox уязвим?
     
     
  • 2.16, Мертвые_опята (?), 14:16, 23/08/2019 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Не должен. В продакшене slirp не используют
     

  • 1.19, анонн (ok), 15:02, 23/08/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    > но остаётся неисправленной в Debian, Arch Linux и FreeBSD

    [code]
    # ipfw list|head
    00100 reass ip from any to any in
    [/code]
    Удачи проэксплуатировать.

     
     
  • 2.32, Аноним (32), 01:21, 26/08/2019 [^] [^^] [^^^] [ответить]  
  • +/
    На, жри кактус: https://www.opennet.ru/opennews/art.shtml?num=39674
     
     
  • 3.33, анонн (ok), 12:23, 26/08/2019 [^] [^^] [^^^] [ответить]  
  • +/
    > На, жри кактус: https://www.opennet.ru/opennews/art.shtml?num=39674

    Т.е. ты не в курсе, чем TCP-фрагментация "out-of-order" отличается от фрагментации "больших" IP-пакетов или к чему эта ссылка (которую ты похоже даже и не читал толком)?
    > It is possible to defend to these attacks by doing traffic normalization
    > using a firewall.  This can be done by including the following /etc/pf.conf
    > configuration:
    > scrub in all

    Кстати, уязвимости только этого года у "некактосов":
    https://www.cvedetails.com/cve/CVE-2019-11683/
    https://www.cvedetails.com/cve/CVE-2019-11479/
    https://www.cvedetails.com/cve/CVE-2019-11815/
    но ты продолжай, продолжай.

     

  • 1.20, Дон Ягон (ok), 15:11, 23/08/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Не могу не вспомнить прекрасное:
    "You are absolutely deluded, if not stupid, if you think that a
    worldwide collection of software engineers who can't write operating
    systems or applications without security holes, can then turn around
    and suddenly write virtualization layers without security holes."

    (https://marc.info/?l=openbsd-misc&m=119318909016582)

     
  • 1.21, Аноним (21), 16:19, 23/08/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    В CentOS 7 эксплойт таки работает: процесс qemu падает.
     
     
  • 2.23, Аноним (23), 16:58, 23/08/2019 [^] [^^] [^^^] [ответить]  
  • +/
    А калькулятор/другое тестовое приложение запускается?
     
     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Спонсоры:
    Слёрм
    Inferno Solutions
    Hosting by Ihor
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2019 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру