Badacze, którzy niedawno zidentyfikowali lukę Fragnesia w jądrze Linux, opublikowali informacje o lukach w QEMU, które pozwalają na uzyskanie dostępu root do środowiska hosta z systemu gościa. Problem został nazwany QEMUtiny, ale identyfikator CVE nie został jeszcze przypisany. Przygotowano exploit, który wykorzystuje dwie luki w kodzie emulacji urządzenia CXL (Compute Express Link).
Obie luki są obecne w kodzie cxl-mailbox-utils.c. Pierwsza luka pojawia się od wydania QEMU 7.1.0 i prowadzi do odczytu pamięci z obszaru poza przydzielonym buforem, ponieważ funkcja cmd_logs_get_log() błędnie interpretuje żądany offset logu CEL jako indeks w tablicy, podczas gdy jest on określany w bajtach. Druga luka pojawia się od QEMU 11.0.0 i prowadzi do przepełnienia bufora w funkcji cmd_features_set_feature() z powodu przetwarzania offsetów dla struktur podczas zapisu atrybutów bez sprawdzenia, czy obliczona wartość „offset + bytes_to_copy” mieści się w rozmiarze wybranej struktury.
W rzeczywistości atak jest możliwy tylko na ostatnią wersję QEMU 11.0.0. Nie ma jeszcze informacji o poprawce, tylko to, że przed ujawnieniem luki, informacje na jej temat zostały przekazane deweloperom QEMU, którzy odpowiedzieli, że wsparcie dla urządzenia CXL w QEMU zostało zaimplementowane nie do użytku w wirtualizacji.
Eksploit został przetestowany z kodem źródłowym QEMU z 11 maja z ostatnim commitem 5e61afe. Działanie exploita opiera się na układzie struktur w pamięci każdej konkretnej wersji QEMU i systemowej libc, ale według badaczy, wykorzystując lukę do skanowania pamięci prowadzącą do odczytu z obszaru poza buforem, można stworzyć uniwersalny exploit działający z różnymi wersjami QEMU.
Źródło: opennet.ru
