QEMU 고립된 환경을 탈출할 수 있게 하는 취약점

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

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

이미 테스트용 사용할 수있다. рабочий прототип эксплоита, в котором предусмотрен обход ASLR и выполнение кода через перезапись памяти массива main_loop_tlg, включающий список QEMUTimerList с обработчиками, вызываемыми по таймеру.
Уязвимость уже устранена в 페도라 и 수세/오픈수세, но остаётся неисправленной в 데비안, 아치 리눅스 и FreeBSD의. 에 Ubuntu и RHEL проблема не проявляется из-за неиспользования slirp. Уязвимость остаётся неисправленной в последнем выпуске libslirp 4.0 (исправление пока доступно в виде 반점).

출처 : opennet.ru

코멘트를 추가