Im Toolkit zum Verwalten isolierter Linux-Docker-Container
Die Sicherheitslücke ermöglicht das Extrahieren von Dateien aus einem Container in einen beliebigen Teil des Dateisystems des Hostsystems, wenn der Befehl „docker cp“ ausgeführt wird. Die Dateiextraktion erfolgt mit Root-Rechten, was es ermöglicht, beliebige Dateien in der Host-Umgebung zu lesen oder zu schreiben, was ausreicht, um die Kontrolle über das Host-System zu erlangen (Sie können beispielsweise /etc/shadow überschreiben).
Der Angriff kann nur durchgeführt werden, wenn der Administrator den Befehl „docker cp“ ausführt, um Dateien in oder aus dem Container zu kopieren. Daher muss der Angreifer den Docker-Administrator irgendwie von der Notwendigkeit überzeugen, diesen Vorgang auszuführen und den beim Kopieren verwendeten Pfad vorherzusagen. Andererseits kann ein Angriff beispielsweise dann erfolgen, wenn Cloud-Dienste Tools zum Kopieren von Konfigurationsdateien in einen Container bereitstellen, der mit dem Befehl „docker cp“ erstellt wurde.
Das Problem wird durch einen Fehler in der Anwendung der Funktion verursacht
Da das Zeitfenster für das Eintreten einer Rennbedingung in einem vorbereiteten Zustand sehr begrenzt ist
Durch die Durchführung eines Kopiervorgangs in einen Container können Sie in nur wenigen Iterationen einen wiederholbaren Dateiüberschreibangriff auf das Hostsystem durchführen. Die Angriffsmöglichkeit besteht darin, dass beim Kopieren in einen Container das „chrootarchive“-Konzept zum Einsatz kommt, wonach der archive.go-Prozess das Archiv nicht in die Chroot des Container-Roots, sondern in die Chroot des Containers extrahiert Das übergeordnete Verzeichnis des Zielpfads wird vom Angreifer kontrolliert und stoppt die Ausführung des Containers nicht (Chroot wird als Zeichen für die Ausnutzung von Race Conditions verwendet).
Source: opennet.ru