szczegóły krytycznej podatności () w obsłudze SLIRP, domyślnie wykorzystywanej w QEMU do tworzenia kanału komunikacji między wirtualnym adapterem sieciowym w systemie gościa a backendem sieciowym po stronie QEMU. Problem dotyczy również systemów wirtualizacyjnych opartych na KVM (w trybie ) oraz Virtualbox, w których wykorzystuje się backend slirp z QEMU, a także aplikacji używających stosu sieciowego w przestrzeni użytkownika (emulator TCP/IP).
Podatność umożliwia wykonanie kodu po stronie systemu gospodarza z prawami procesu-obserwatora QEMU podczas wysyłania ze strony systemu gościa specjalnie sformatowanego bardzo dużego pakietu sieciowego, który wymaga fragmentacji. Z powodu błędu w funkcji ip_reass(), wywoływanej przy rekonstrukcji przychodzących pakietów, pierwszy fragment może nie zmieścić się w przydzielonym buforze, a jego koniec zostanie zapisany w następnych obszarach pamięci po bufrowaniu.
Aby przetestować już roboczy prototyp exploita, w którym przewidziano obejście ASLR oraz wykonanie kodu poprzez nadpisanie pamięci tablicy main_loop_tlg, obejmującej listę QEMUTimerList z wywołującymi się handlerami na podstawie timera.
Podatność została już naprawiona w i , ale pozostaje nienaprawiona w , i . W i problem nie występuje z powodu braku korzystania z slirp. Podatność pozostaje nienaprawiona w najnowszej wersji (poprawka dostępna jest na razie w postaci ).
Źródło: opennet.ru
