Open Source im professionellen Einsatz

DFN-CERT-2017-1620 Xen: Mehrere Schwachstellen ermöglichen u.a. das Eskalieren von Privilegien [Linux][Debian]

13.09.2017

Liebe Kolleginnen und Kollegen,

bitte beachten Sie die folgende Sicherheitsmeldung.

Betroffene Software:

Xen 4.4.x
Xen 4.8.x


Betroffene Plattformen:

Debian Linux 8.9 Jessie
Debian Linux 9.1 Stretch



Mehrere Schwachstellen in Xen ermöglichen einem einfach authentisierten
Angreifer im benachbarten Netzwerk das Eskalieren von Privilegien, die
Durchführung verschiedener Denial-of-Service (DoS)-Angriffe und das
Ausspähen von Informationen. Ein mehrfach authentisierter Angreifer im
benachbarten Netzwerk kann zudem ebenfalls Privilegien eskalieren und einen
weiteren Denial-of-Service-Angriff durchführen.

Debian stellt für die stabile Distribution Stretch und die vormals stabile
Distribution Jessie Sicherheitsupdates für 'xen' zur Verfügung.


Patch:

Debian Security Advisory DSA-3969-1

<https://www.debian.org/security/2017/dsa-3969>


CVE-2017-10919: Schwachstelle in Xen ermöglicht Denial-of-Service-Angriff

In allen unterstützten Xen Versionen auf ARM-Systemen existiert eine
Schwachstelle aufgrund fehlender Prüfungen auf Virtual Interrupt Injection.
Ein Gastbenutzer kann dies ausnutzen, indem er SGIs (z.B. IPI) an irgendeine
vCPU sendet, oder durch Konfigurieren eines Timers, um durch einen
maskierten Interrupt ein ungültiges Hardware Register zu lesen oder den Host
zum Absturz bringen. Ein einfach authentisierter Angreifer im benachbarten
Netzwerk kann einen Denial-of-Service (DoS)-Angriff durchführen (XSA-223).


CVE-2017-12855: Schwachstelle in Xen ermöglicht Ausspähen von Informationen

Die '_GTF_{reading,writing}'-Bits werden von Xen gesetzt, um Gastbenutzer
darüber zu informieren, ob ein 'Grant' verwendet wird. Von einem
Gastbenutzer wird erwartet, dass er 'Grant Details' nicht verändert, während
der 'Grant' verwendet wird. Der Gastbenutzer kann jedoch einen 'Grant Entry'
verändern oder wiederverwenden, wenn dieser nicht in Verwendung ist. Unter
bestimmten Umständen kann es passieren, dass Xen die Status-Bits zu früh
freigibt, so dass der Gastbenutzer fälschlich informiert wird, dass ein
'Grant' nicht länger verwendet würde. Ein einfach authentisierter Angreifer
im benachbarten Netzwerk, welcher eine Domäne kontrolliert, kann diese
Schwachstelle ausnutzen, um Informationen eines anderen Gastbenutzers
auszuspähen, falls dieser einen 'Granted Frame' in dem falschen Glauben
verwendet, dass dieser wieder einen sicheren, privaten Status hat (XSA-230).


CVE-2017-12137: Schwachstelle in Xen ermöglicht Privilegieneskalation

Beim 'Mapping' einer 'Grant'-Referenz muss ein Gastbenutzer Xen darüber
informieren, worauf der 'Grant' gemappt werden soll. Für PV-Gastbenutzer
erfolgt das durch Angabe einer existenten linearen Adresse oder eines
L1-Seitentabelleneintrags, welcher zu verändern ist. In keinem dieser
PV-Pfade wird auf einen Abgleich der weitergegebenen Parameter geprüft. Die
lineare Adresse wird bei der Berechnung des zu verwendenden L1-Eintrages
passend abgeschnitten, aber in dem Pfad, der einen direkt nominierten
L1-Eintrag verwendet, erfolgen keine Prüfungen. Dadurch führt Xen ein
fehlerhaft abgeglichenes Update der Seitentabelle durch, wodurch sowohl der
beabsichtigte Eintrag als auch alle nachfolgenden Einträge mit Werten
kompromittiert werden, welche weitgehend vom Gastbenutzer kontrolliert
werden. Wenn der falsch abgeglichene Wert Seitengrenzen überquert, wird
sogar eine beliebige andere Heap-Seite kompromittiert. Ein PV-Gastbenutzer,
als einfach authentisierter Angreifer im benachbarten Netzwerk, kann diese
Schwachstelle ausnutzen, um seine Privilegien auf die des Hosts zu
eskalieren. Von dieser Schwachstelle sind nur x86-Systeme betroffen
(XSA-227).


CVE-2017-12136: Schwachstelle in Xen ermöglicht u.a.
Denial-of-Service-Angriff

Im Programmcode für 'Grant'-Tabellen in Xen besteht eine ausnutzbare
Wettlaufsituation (Race Condition), die dazu führt, dass Einträge unerlaubt
aus der 'free'-Liste entfernt werden können, da bei der Überprüfung, ob es
sich bei dem Eintrag um das Kopf- beziehungsweise Endelement (Head / Tail)
der Liste handelt, kein Sperrmechanismus eingesetzt wird (Locking).
Zusätzlich ist es möglich, gestohlene Einträge mit einem falschen
Verweis-Feld (Link Field) hinzuzufügen, wodurch die Liste ebenfalls
korrumpiert werden kann. Ein einfach authentisierter Angreifer mit
erweiterten Privilegien im benachbarten Netzwerk kann einen
Denial-of-Service (DoS)-Angriff durchführen und möglicherweise seine
Privilegien auf die des Hosts eskalieren (XSA-228).


CVE-2017-12135: Schwachstelle in Xen ermöglicht u.a.
Denial-of-Service-Angriff

Im Programmcode für den Umgang mit Kopieroperationen auf transitiven
'Grants' ist eine Wiederholungslogik implementiert, in der eine Funktion
involviert ist, die sich selbst mit unveränderten Parametern erneut aufruft.
Dies ermöglicht es, unbegrenzt Funktionsaufrufe zu verschachteln (Tail
Call). Zudem führt ein Fehler in der korrekten Durchführung zum Zählen und
Sperren von Referenzen für transitive 'Grants' dazu, dass ein gleichzeitiger
Gebrauch eines transitiven 'Grant' die Referenzen weiterer transitiv
referenzierter 'Grants' offenlegt. Ein einfach authentisierter Angreifer im
benachbarten Netzwerk kann durch das Ausnutzen der Schwachstelle Xen
abstürzen lassen (Denial-of-Service) sowie Referenzen anderer 'Grants'
ausspähen und zusätzlich einen Denial-of-Service-Angriff gegen den Empfänger
des 'Grants' durchzuführen. Das Eskalieren von Privilegien und das Ausspähen
weiterer Informationen kann als Auswirkung der Schwachstelle nicht
ausgeschlossen werden (XSA-226).


CVE-2017-10916: Schwachstelle in Xen ermöglicht Ausspähen von Informationen

In Xen 4.4 und früher auf x86-Systemen existiert eine Schwachstelle. Die
Funktionalitäten Memory Protection Extensions (MPX) und Protection Key (PKU)
stehen für Prozessoren neuerer Bauart zur Verfügung, deren 'State' als 'pro
Thread' festgelegt wird und der sich mit allen anderen XSAVE-States
kontextabhängig ändert. Die Verwendung dieser Funktionalitäten ist aber
vollkommen (PKU) oder möglicherweise (MPX) von den XSTATE-Bits unabhängig.
Dadurch werden States in Virtual Machines zwischen verschiedenen vCPUs
offengelegt, falls diese manuell statt über XSTATE gewechselt werden. Ein
lokaler, einfach authentisierter Angreifer kann aus diesen
Kontrollinformationen Informationen über Zeiger in den Gast-Adressraum
ausspähen. Dadurch wird die Address Space Randomisation (ASR) abgeschwächt
und weitere Angriffe werden vereinfacht (XSA-220).


CVE-2017-10922: Schwachstelle in Xen ermöglicht Denial-of-Service-Angriff

In allen unterstützten Xen Versionen auf x86-Systemen existieren eine Reihe
von Schwachstellen im Kontext von Code Mapping und Unmapping Grant
Referenzen. Das 'grant-table'-Feature in Xen bis Version 4.8.x behandelt
MMIO Region Grant References fehlerhaft, so dass Grants nicht mehr
nachverfolgt werden können. Ein PV Gastbenutzer kann das ausnutzen, um einen
Denial-of-Service (DoS)-Zustand herbeizuführen (XSA-224 Bug 3).


CVE-2017-10921: Schwachstelle in Xen ermöglicht Privilegieneskalation

In allen unterstützten Xen Versionen auf x86-Systemen existieren eine Reihe
von Schwachstellen im Kontext von Code Mapping und Unmapping Grant
Referenzen. Unter bestimmten Umständen, wenn das Mapping mit
'GNTMAP_device_map' und 'GNTMAP_host_map' Flags stattfindet, wird der
Typenzähler bei diesem Vorgang nicht hinreichend erhöht. Beim Unmapping wird
der Typenzähler anschließend fehlerhaft erniedrigt. Auch in diesem Fall
bleibt ein beschreibbares Mapping auf die jeweilige Seite übrig. Ein PV
Gastbenutzer kann das ausnutzen, um ein beschreibbares Mapping seiner
eigenen Pagetable zu erlangen. Ein einfach authentisierter Angreifer im
benachbarten Netzwerk kann so einen Denial-of-Service (DoS)-Zustand
herbeiführen oder im schlimmsten Fall seine Privilegien auf die des
Host-Systems eskalieren (XSA-224 Bug 2).


CVE-2017-10920: Schwachstelle in Xen ermöglicht Privilegieneskalation

In allen unterstützten Xen Versionen auf x86-Systemen existieren eine Reihe
von Schwachstellen im Kontext von Code Mapping und Unmapping Grant
Referenzen. Wenn das Mapping beispielsweise mit 'GNTMAP_device_map' und
'GNTMAP_host_map' Flags stattfindet, aber das Unmapping lediglich mit
'host_map', bleibt der 'device_map'-Anteil erhalten, obwohl der Zähler der
Seitenreferenz erniedrigt wird, als wäre er entfernt worden. Es bleibt ein
beschreibbares Mapping auf die jeweilige Seite übrig. Ein PV Gastbenutzer
kann das ausnutzen, um ein beschreibbares Mapping seiner eigenen Pagetable
zu erlangen. Ein einfach authentisierter Angreifer im benachbarten Netzwerk
kann so einen Denial-of-Service (DoS)-Zustand herbeiführen oder im
schlimmsten Fall seine Privilegien auf die des Host-Systems eskalieren
(XSA-224 Bug 1).


CVE-2017-10918: Schwachstelle in Xen ermöglicht Privilegieneskalation,
Denial-of-Service-Angriff und Ausspähen von Informationen

In Xen Versionen mindestens von Version 3.2 aufwärts auf x86- und
ARM-Systemen existiert eine Schwachstelle bei der Entfernung großer Seiten
(Pages) vom P2M (Physical-to-Machine) Mapping eines Gastes. Hierbei findet
eine Allokation von Speicher statt, um das große Mapping durch ein
individuelles kleineres Mapping zu ersetzen. Wenn diese Allokation etwa
fehlschlägt, werden die Fehler durch Aufrufer ignoriert, wodurch diese
fortsetzen und beispielsweise die referenzierte Seite zur neuen Verwendung
freigeben können. Der Gast behält dadurch ein Mapping auf eine Speicherseite
(Page), auf welche er keinen Zugriff haben sollte. Ein einfach
authentisierter Angreifer im benachbarten Netzwerk kann dies ausnutzen, um
seine Privilegien zu eskalieren, den Host zum Absturz zu bringen
(Denial-of-Service) oder um Informationen auszuspähen. Auf x86-Systemen kann
diese Schwachstelle nur von HVM-Gastbenutzern ausgenutzt werden (XSA-222).


CVE-2017-10917: Schwachstelle in Xen ermöglicht Denial-of-Service-Angriff
und Ausspähen von Informationen

In Xen Versionen 4.4 und aufwärts auf x86- und ARM-Systemen existiert eine
Schwachstelle aufgrund fehlender Prüfungen, ob bestimmte im Rahmen einer
Weiterentwicklung zwischengeschaltete Zeiger nicht den Wert NULL haben. Beim
Abfragen (Polling) von Event Channels können normalerweise beliebige
Port-Nummern spezifiziert werden. Insbesondere besteht nicht die
Anforderung, dass abgefragte Event Channel Ports jemals erzeugt worden sind.
Ein schädlicher oder fehlerhafter Gast kann dadurch bewirken, dass der
Hypervisor auf Adressen zugreift, die er nicht kontrolliert, wodurch es
gewöhnlich zu einem Absturz des Hosts kommt. Ein Informationsleck kann nicht
ausgeschlossen werden. Ein einfach authentisierter Angreifer im benachbarten
Netzwerk kann diese Schwachstelle ausnutzen, um einen Denial-of-Service
(DoS)-Angriff durchzuführen oder, allerdings nur als x86 PV-Gastbenutzer, um
möglicherweise Informationen auszuspähen (XSA-221).


CVE-2017-10915: Schwachstelle in Xen ermöglicht Privilegieneskalation

In allen aktuellen Versionen von Xen auf x86-Systemen existiert zwischen
Ausblenden und Schreibvorgang auf 'Pagetables' von Gastsystemen ein kurzes
Zeitfenster, in dem ein emulierter Schreibvorgang komplett unter Kontrolle
eines (zweiten) Gastsystems ist. Benutzer zweier Gastsysteme können dadurch
in Kombination ihre Privilegien auf die des Xen-Prozesses erweitern.
Möglicherweise ist die Privilegieneskalation auch durch ein einzelnes
HVM-Gastsystem durchführbar (XSA-219).


CVE-2017-10914: Schwachstelle in Xen ermöglicht u.a.
Denial-of-Service-Angriff

Im Programmcode zum Ausblenden von 'Grant'-Referenzen in allen Versionen von
Xen auf x86- und ARM-Systemen existiert eine Schwachstelle. In diesem
zweiten untersuchten Fall wird der 'Maptrack Entry' eines 'Grants'
möglicherweise doppelt freigegeben. Die Auswirkungen sind hier nicht
vollständig klar. Neben einem Denial-of-Service (DoS)-Angriff auf das
Gastsystem sind auch das Ausspähen von Informationen oder die Eskalation von
Privilegien denkbar. Auf x86-Architekturen sind nur Systeme mit entweder PV-
oder HVM-Gastbenutzern verwundbar (XSA-218 Bug 2).


CVE-2017-10913: Schwachstelle in Xen ermöglicht Privilegieneskalation oder
Ausspähen von Informationen

Im Programmcode zum Ausblenden von 'Grant'-Referenzen in allen Versionen von
Xen auf x86- und ARM-Systemen existiert eine Schwachstelle. Falls ein
'Grant' doppelt von einer Backend-Domäne eingeblendet wurde und diese zwei
gleichzeitige Aufrufe zum Ausblenden des 'Grants' erhält, wird diese
Information zu früh an das Frontend weitergegeben. Dadurch erhält ein
einfach authentisierter Angreifer im benachbarten Netzwerk ein kleines
Zeitfenster, in dem er auf Frontend-Speicher zugreifen kann. Dadurch können
Informationen ausgespäht oder die Privilegien vom Backend auf das Frontend
erweitert werden. Auf x86-Architekturen sind nur Systeme mit entweder PV-
oder HVM-Gastbenutzern verwundbar (XSA-218 Bug 1).


CVE-2017-10912: Schwachstelle in Xen ermöglicht Privilegieneskalation,
Denial-of-Service-Angriff und Ausspähen von Informationen

In allen aktuellen Versionen von Xen auf x86-Systemen existiert eine
Schwachstelle. Domänen, welche die Kontrolle über andere Domänen haben, sind
dazu in der Lage, Speicherseiten der kontrollierten Domäne selbst
einzublenden. Beim Ausblenden solch einer Speicherseite kann es zu einem
kritischen Wettlauf kommen, falls der Translation Lookaside Buffer (TLB)
nicht sofort bereinigt wird. Benutzer zweier Gastsysteme können zusammen als
einfach authentisierte Angreifer im benachbarten Netzwerk auf den gesamten
Systemspeicher eines dritten Gastsystems zugreifen, indem sie eine
Speicherseite an dieses System transferieren. Dadurch können sie
Informationen ausspähen, ihre Privilegien eskalieren oder das Hostsystem zum
Absturz bringen. Es sind alle Versionen von Xen verwundbar, bei denen sowohl
HVM- als auch PV-Gastsysteme eingesetzt werden (XSA-217).


Referenzen:

Dieses Advisory finden Sie auch im DFN-CERT Portal unter:
<https://portal.cert.dfn.de/adv/DFN-CERT-2017-1620/>

Schwachstelle CVE-2017-10912 (NVD):
<http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2017-10912>

Schwachstelle CVE-2017-10913 (NVD):
<http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2017-10913>

Schwachstelle CVE-2017-10914 (NVD):
<http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2017-10914>

Schwachstelle CVE-2017-10915 (NVD):
<http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2017-10915>

Schwachstelle CVE-2017-10916 (NVD):
<http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2017-10916>

Schwachstelle CVE-2017-10917 (NVD):
<http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2017-10917>

Schwachstelle CVE-2017-10918 (NVD):
<http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2017-10918>

Schwachstelle CVE-2017-10919 (NVD):
<http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2017-10919>

Schwachstelle CVE-2017-10920 (NVD):
<http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2017-10920>

Schwachstelle CVE-2017-10921 (NVD):
<http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2017-10921>

Schwachstelle CVE-2017-10922 (NVD):
<http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2017-10922>

Schwachstelle CVE-2017-12135 (NVD):
<http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2017-12135>

Schwachstelle CVE-2017-12136 (NVD):
<http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2017-12136>

Schwachstelle CVE-2017-12137 (NVD):
<http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2017-12137>

Schwachstelle CVE-2017-12855 (NVD):
<http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2017-12855>

Debian Security Advisory DSA-3969-1:
<https://www.debian.org/security/2017/dsa-3969>


(c) DFN-CERT Services GmbH, all rights reserved!
Die Weiterverbreitung ist mit Hinweis auf den Copyrightinhaber innerhalb der
eigenen Einrichtung erlaubt. Eine darüber hinausgehende Verbreitung bedarf
des schriftlichen Einverständnisses des Rechteinhabers.

Ausgabe 10/2017

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

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