Уязвимост, позволяваща излизането от изолирана среда QEMU

Разкрити детайли на критична уязвимост (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 (поправката засега е налична под формата на пач).

Източник: opennet.ru

Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри 🔥 Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри | ProHoster