QEMU w wersji 4.0.0 i wcześniejszych jest podatne na OS command injection poprzez komendę QMP migrate, co umożliwia zdalnemu atakującemu wykonanie kodu, wywołanie odmowy usługi lub ujawnienie informacji. Podatność dotyczy sytuacji, w której interfejs QMP jest dostępny zdalnie przez niezabezpieczony socket TCP.
▸ Pokaż oryginał (EN)
The QMP migrate command in QEMU version 4.0.0 and earlier is vulnerable to OS command injection, which allows the remote attacker to achieve code execution, denial of service, or information disclosure by sending a crafted QMP command to the listening server. Note: This has been disputed as a non-issue since QEMU's -qmp interface is meant to be used by trusted users. If one is able to access this interface via a tcp socket open to the internet, then it is an insecure configuration issue
Interfejs QMP (QEMU Machine Protocol) nasłuchuje na porcie TCP i przyjmuje komendy zarządzające maszyną wirtualną. Atakujący może wysłać spreparowaną komendę QMP migrate zawierającą złośliwy payload, który jest przekazywany do systemu operacyjnego hosta bez odpowiedniej sanityzacji danych wejściowych. Skutkuje to wykonaniem dowolnych poleceń systemowych w kontekście procesu QEMU na hoście. Należy jednak zaznaczyć, że producent kwestionuje wagę podatności, wskazując, iż interfejs QMP jest przeznaczony wyłącznie dla zaufanych użytkowników, a jego ekspozycja na internet stanowi błąd konfiguracyjny.
Zdalny atakujący może uzyskać pełną kontrolę nad hostem poprzez wykonanie dowolnego kodu (RCE), wywołać odmowę usługi (DoS) lub doprowadzić do ujawnienia poufnych informacji z systemu hosta.
Należy zastosować patche dostępne u producenta zgodnie z referencjami. Niezależnie od aktualizacji, interfejs QMP (-qmp) nigdy nie powinien być dostępny przez niezabezpieczony socket TCP — należy ograniczyć dostęp wyłącznie do zaufanych, lokalnych użytkowników, stosując reguły firewall lub komunikację przez Unix socket.
QEMU w wersji 4.0.0 i wcześniejszych — wyłącznie w konfiguracjach, gdzie interfejs QMP jest udostępniony przez socket TCP dostępny zdalnie (np. otwarty na internet).
Producent (społeczność QEMU) zakwestionował klasyfikację podatności jako błędu, argumentując że interfejs QMP jest z założenia przeznaczony dla zaufanych użytkowników, a jego ekspozycja na internet to błąd konfiguracyjny, nie podatność oprogramowania. Podatność została opisana przez badacza fakhrizulkifli, którego analiza jest dostępna w referencjach.
CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:HQemu
APPQemu≤ 4.0.0
Powiązane podatności
NULL pointer dereference w emulacji urządzenia rocker w QEMU
Command injection w QEMU poprzez komendę QMP guest_exec
Buffer overflow w QEMU — funkcja load_image w device_tree.c
QEMU: przepełnienie liczby całkowitej w obsłudze pakietów sieciowych (CWE-190)
QEMU VirtFS/9pfs — nieuprawniony dostęp do systemu plików hosta