Open Source im professionellen Einsatz

QEMU und Xen: Höhere Rechte für Gast

Virtualisierung ist heute extrem weit verbreitet. Eine von vielen Möglichkeiten ist  QEMU im Zusammenspiel mit Xen, nämlich als Device Model innerhalb von Xen. In diesem Zusammenhang wurde nun eine kritische Sicherheitslücke entdeckt.

QEMU implemeniert I/O-Port Schreib-und Lese-Lookups über eine spezielle Dispatch-Tabelle, was über eine entsprechende Dispatch-Funktion im Code implementiert ist. Diese Funktion erwartet als Argument eine uint32_t Integer-Variable. Innerhalt der Funktion selbst wird diese Variable dann nicht mehr überprüft sondern direkt verwendet. Dies ist insofern problematisch, da die Dispatch-Tabelle selbst nur 2^16 I/O-Port-Einträge besitzt.
Solange QEMU als Standalone-Emulator verwendet wird, ist dies unproblematisch, da der I/O-Port-Zugriff dann nur von CPU-Instruktion von QEMU selbst kommt.  Diese sind immer 16-Bit, so dass der Lookup keine Schwierigkeiten macht.  Allerdings kommt es zu Problemen, wenn QEMU als Device-Model innerhalb von Xen verwendet wird. In diesem Fall werden nämlich I/O-Anfragen von dem Hypervisor generiert und dann von QEMU wieder gelesen. In diesem Fall, handelt es sich dann um 64-Bit-Adressen, so dass es bei dem Lookup zu einem Overflow kommen kann. Das kann dann geschehen, wenn das Gast-System Out-of-Range-IO-Anfragen generiert.  

Aufgrund dieser Schwachstelle ist ein Angreifer innerhalb des Gast-Systems in der Lage an höhere Rechte zu gelangen.

comments powered by Disqus

Ausgabe 11/2017

Digitale Ausgabe: Preis € 6,40
(inkl. 19% MwSt.)

Stellenmarkt

Artikelserien und interessante Workshops aus dem Magazin können Sie hier als Bundle erwerben.