Luka pozwalająca na wyjście z izolowanego środowiska QEMU

Ujawnił szczegóły krytycznej luki w zabezpieczeniach (CVE-2019-14378) w domyślnym programie obsługi SLIRP używanym w QEMU do ustanowienia kanału komunikacyjnego pomiędzy wirtualną kartą sieciową w systemie gościa a zapleczem sieciowym po stronie QEMU. Problem dotyczy również systemów wirtualizacji opartych na KVM (w formacie Tryb użytkownika) i Virtualbox, które korzystają z backendu slirp z QEMU, a także aplikacje korzystające ze stosu sieciowego w przestrzeni użytkownika bibliotekaSLIRP (emulator TCP/IP).

Luka umożliwia wykonanie kodu po stronie systemu hosta z prawami procesu obsługi QEMU, gdy z systemu gościa zostanie wysłany specjalnie zaprojektowany, bardzo duży pakiet sieciowy, który wymaga fragmentacji. Z powodu błędu w funkcji ip_reass(), wywoływanej podczas ponownego składania przychodzących pakietów, pierwszy fragment może nie zmieścić się w przydzielonym buforze, a jego koniec zostanie zapisany w obszarach pamięci obok bufora.

Już do testów dostępny działający prototyp exploita, który umożliwia ominięcie ASLR i wykonanie kodu poprzez nadpisanie pamięci tablicy main_loop_tlg, zawierającej QEMUTimerList z procedurami obsługi wywoływanymi przez timer.
Luka została już naprawiona Fedora и SUSE/openSUSE, ale pozostaje nieskorygowany Debian, Arch Linux и FreeBSD, Ubuntu и RHEL Problem nie pojawia się, ponieważ nie używasz slirpa. W najnowszej wersji luka pozostaje nienaprawiona biblioteka libslirp 4.0 (poprawka jest obecnie dostępna jako skrawek).

Źródło: opennet.ru

Dodaj komentarz