Details der kritischen Schwachstelle () im SLIRP-Handler, der standardmäßig in QEMU verwendet wird, um einen Kommunikationskanal zwischen dem virtuellen Netzwerkadapter im Gastsystem und dem Netzwerk-Backend auf der QEMU-Seite bereitzustellen. Das Problem betrifft auch Virtualisierungssysteme auf Basis von KVM (im ) und VirtualBox, die das SLIRP-Backend von QEMU verwenden, sowie Anwendungen, die den Netzwerk-Stack im Benutzerraum nutzen, (TCP/IP-Emulator).
Die Schwachstelle ermöglicht die Ausführung von Code auf der Host-Systemseite mit den Rechten des QEMU-Prozesshandlers, wenn vom Gastsystem ein speziell gestaltetes, sehr großes Netzwerkpaket gesendet wird, für das eine Fragmentierung erforderlich ist. Aufgrund eines Fehlers in der Funktion ip_reass(), die beim Neuaufbau eingehender Pakete aufgerufen wird, kann das erste Fragment nicht im zugewiesenen Puffer Platz finden, und sein Schwanz wird in die nachfolgenden Speicherbereiche geschrieben.
Um bereits Ein funktionierender Exploit-Prototyp, der bereitgestellt wird, um ASLR zu umgehen und Code durch Überschreiben des Speichers des Arrays main_loop_tlg auszuführen, welches die QEMUTimerList mit den zeitgesteuerten Handlers enthält.
Die Schwachstelle wurde bereits behoben in und , bleibt jedoch unbehandelt in , und In und das Problem tritt nicht auf, da slirp nicht verwendet wird. Die Schwachstelle bleibt in der neuesten Version ungepatcht. (der Fix ist vorläufig verfügbar als ).
Quelle: opennet.ru
