Information über eine Schwachstelle im Betriebssystem Qubes veröffentlicht, das einen Hypervisor für die strenge Isolation von Anwendungen und Betriebssystemkomponenten verwendet (jede Anwendungsklasse und Systemdienste arbeiten in separaten virtuellen Maschinen). Wenn ein Angreifer eine der virtuellen Maschinen kompromittiert, ermöglicht die Schwachstelle das Umgehen der Isolation, die Ausführung beliebiger Befehle im Host-Umfeld (Dom0) und die Übernahme des gesamten Betriebssystems. Das Problem tritt auf, wenn der Benutzer das Dienstprogramm „qvm-copy-to-vm“ verwendet, um eine Datei aus dem Host-Umfeld in die vom Angreifer kontrollierte virtuelle Maschine zu kopieren. Die Schwachstelle wurde mit dem Update des Pakets qubes-core-dom0-linux 4.3.22 behoben.
Das Problem besteht im Dienstprogramm „qvm-copy-to-vm“ und wird durch unsachgemäße Fehlerbehandlung verursacht, die bei Anfragen an die virtuelle Maschine zurückgegeben wird. Der Kern der Schwachstelle besteht darin, dass das Dienstprogramm qvm-copy-to-vm zur Anzeige von Fehlerinformationen die Programme kdialog oder zenity aufruft, indem es die Funktion system() verwendet und Informationen über die fehlgeschlagene Datei als Optionen in die Befehlszeile einfügt. Dabei beschränkt sich die Bereinigung des Dateinamens auf das Entfernen von Nicht-ASCII-Zeichen und doppelten Anführungszeichen, ohne auf das Vorhandensein von Sonderzeichen zu prüfen, die von der Befehlszeile interpretiert werden, wie „`“ und „$“.
Nachdem die Dateiübertragung aus dem Hosts-System abgeschlossen ist, sendet der Handler auf der Seite der virtuellen Maschine eine Bestätigung der Operation zurück, in der unter anderem der Name der zuletzt empfangenen Datei angegeben ist. Der Angriff beschränkt sich darauf, einen Fehlercode anstelle einer Bestätigung zurückzugeben und für die Datei, die nicht kopiert werden konnte, einen Namen mit von der Befehlszeile verarbeiteten Sonderzeichen anzugeben. Nach dem Erhalt des Fehlers wird der Handler im Host-Umfeld den Befehl system() verwenden, um das Dienstprogramm zur Anzeige des Fehlermeldungsdialogs zu starten, und wird in der Befehlszeile den von dem Angreifer angegebenen Dateinamen übergeben (wenn beispielsweise „file`id`“ angegeben wird, wird auf der Host-Seite der Befehl id ausgeführt).
Quelle: opennet.ru
