Sicherheitslücke, die das Verlassen der isolierten QEMU-Umgebung ermöglicht

Offengelegt Details zu kritischen Sicherheitslücken (CVE-2019-14378) im Standard-SLIRP-Handler, der in QEMU verwendet wird, um einen Kommunikationskanal zwischen dem virtuellen Netzwerkadapter im Gastsystem und dem Netzwerk-Backend auf der QEMU-Seite einzurichten. Das Problem betrifft auch KVM-basierte Virtualisierungssysteme (in Benutzermodus) und Virtualbox, die das Slirp-Backend von QEMU nutzen, sowie Anwendungen, die den User-Space-Networking-Stack nutzen libSLIRP (TCP/IP-Emulator).

Die Schwachstelle ermöglicht die Ausführung von Code auf der Seite des Hostsystems mit den Rechten eines QEMU-Handler-Prozesses, wenn ein speziell entwickeltes, sehr großes Netzwerkpaket vom Gastsystem gesendet wird, was eine Fragmentierung erfordert. Aufgrund eines Fehlers in der Funktion ip_reass(), die beim Zusammensetzen eingehender Pakete aufgerufen wird, passt das erste Fragment möglicherweise nicht in den zugewiesenen Puffer und sein Ende wird in Speicherbereiche neben dem Puffer geschrieben.

Schon zum Testen ist verfügbar ein funktionierender Prototyp des Exploits, der die Umgehung von ASLR und die Ausführung von Code durch Überschreiben des Speichers des main_loop_tlg-Arrays ermöglicht, einschließlich einer QEMUTimerList mit vom Timer aufgerufenen Handlern.
Die Schwachstelle wurde bereits behoben Fedora и SUSE/openSUSE, bleibt aber unkorrigiert in Debian, Arch Linux и FreeBSD. In Ubuntu и RHEL Das Problem tritt nicht auf, da Slirp nicht verwendet wird. Die Sicherheitslücke bleibt in der neuesten Version unbehoben libslirp 4.0 (Der Fix ist derzeit verfügbar als Patch).

Source: opennet.ru

Kommentar hinzufügen