Sicherheitsanfälligkeit in Docker, die einem das Verlassen des Containers ermöglicht;

Im Tool zur Verwaltung isolierter Linux-Container mit Docker wurde eine Schwachstelle (CVE-2018-15664), die unter bestimmten Umständen den Zugriff auf die Host-Umgebung aus dem Container ermöglicht, wenn die Möglichkeit besteht, eigene Images im System auszuführen oder auf einen laufenden Container zuzugreifen. Das Problem tritt in allen Docker-Versionen auf und bleibt ungelöst (vorgeschlagen, aber bisher nicht angenommen, Patch, das die Aussetzung des Containers während der Ausführung von Dateisystemoperationen implementiert).

Die Schwachstelle ermöglicht das Extrahieren von Dateien aus dem Container in beliebige Teile des Dateisystems der Host-Systemumgebung durch Ausführen des Befehls „docker cp“. Das Extrahieren von Dateien erfolgt mit Root-Rechten, was die Möglichkeit bietet, beliebige Dateien in der Host-Umgebung zu lesen oder zu schreiben, was ausreichend ist, um Kontrolle über das Host-System zu erlangen (zum Beispiel könnte man /etc/shadow überschreiben).

Ein Angriff kann nur in dem Moment erfolgen, in dem der Administrator den Befehl „docker cp“ ausführt, um Dateien in einen Container zu kopieren oder aus ihm heraus. Daher muss der Angreifer den Docker-Administrator auf irgendeine Weise davon überzeugen, diese Operation durchzuführen, und den bei der Kopie verwendeten Pfad vorhersagen. Andererseits kann ein Angriff beispielsweise durchgeführt werden, wenn Cloud-Dienste Mittel bereitstellen, um Konfigurationsdateien in einen Container zu kopieren, die mit dem Befehl „docker cp“ erstellt wurden.

Das Problem wird durch einen Mangel in der Funktion FollowSymlinkInScope, die den absoluten Pfad im Haupt-Dateisystem basierend auf dem relativen Pfad berechnet, der die Position des Containers berücksichtigt, verursacht. Während der Ausführung des Befehls „docker cp“ tritt kurzfristig ein Race Conditionauf, bei dem der Pfad bereits überprüft wurde, die Operation jedoch noch nicht ausgeführt wurde. Da die Kopie im Kontext des Haupt-Dateisystems des Hosts erfolgt, kann in diesem kurzen Zeitraum der Link zu einem anderen Pfad verändert werden, wodurch der Datenkopiervorgang an einen beliebigen Ort im Dateisystem außerhalb des Containers initiiert wird.

Da das zeitliche Fenster für die Manifestation des Race Conditions stark begrenzt ist im vorbereiteten Prototyp des Exploits, konnten bei der Durchführung von Kopieroperationen aus dem Container in weniger als 1 % der Fälle erfolgreiche Angriffe erzielt werden, indem symbolische Links im verwendeten Pfad zyklisch ersetzt wurden (ein erfolgreicher Angriff wurde nach etwa 10 Sekunden ununterbrochener Versuche, eine Datei mit dem Befehl „docker cp“ zu kopieren, durchgeführt).

Bei der Durchführung der Kopieroperation in den Container kann ein wiederholbarer Angriff zur Überschreibung der Datei im Host-System bereits in wenigen Iterationen erreicht werden. Die Möglichkeit des Angriffs hängt damit zusammen, dass bei der Kopie in den Container das Konzept "chrootarchive" verwendet wird, gemäß dem der Prozess archive.go das Archiv nicht im chroot-Wurzelverzeichnis des Containers, sondern im chroot übergeordneten Verzeichnis des Zielpfades, das dem Angreifer unterliegt, extrahiert und dabei die Ausführung des Containers nicht stoppt (chroot wird als Hinweis zur Ausnutzung des Race Conditions verwendet).

Quelle: opennet.ru

Kaufen Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Server 🔥 Kaufen Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Server | ProHoster