Menü
Alert!
Security

Lücke in Container-Runtime runc ermöglicht Host-Übernahme

Eine Sicherheitslücke in der Container-Runtime runc ermöglicht es Angreifern, aus privilegierten Containern auszubrechen und Root-Rechte zu erlangen.

vorlesen Drucken Kommentare lesen 7 Beiträge

(Bild: dpa, Christian Charisius)

Angreifern ist es aufgrund einer Lücke in runc, der Container-Runtime von Docker, Kubernetes, containerd und weiteren Container-Systemen, möglich, aus privilegierten Containern auszubrechen und den Host zu übernehmen. Die runc-Entwickler haben inzwischen einen Patch bereitgestellt. Docker Inc. hat Version 18.09.2 von Docker veröffentlicht, die das Problem beseitigt. Anwender sollten ihre Container-Runtimes schnellstmöglich aktualisieren.

Vor der Lücke schützen die Standardkonfigurationen von AppArmor und SELinux nicht, wohl aber Namespaces, die so konfiguriert sind, dass der Root-User des Hostsystems nicht in den Container gemappt ist. Diese (eigentlich korrekte) Konfiguration von Namespaces ist nicht überall der Fall.

Laut der zugehörigen CVE-2019-5736 können Angreifer aus einem laufenden Container heraus das runc-Binary überschreiben. Der Linux-Kernel setzt für jeden Prozess den symbolischen Link /proc/self/exe, der auf das Binary verweist, das für den Prozess gestartet wurde. Wenn nun ein Angreifer innerhalb des Containers etwa /bin/bash durch ein Shell-Skript ersetzt, das auf #!/proc/self/exe verweist, zeigt dieser symbolische Link auf das runc-Binary.

Schafft der Angreifer es nun, dieses Binary über dessen Filedescriptor unterhalb von /proc/self/fd zu überschreiben, kann er eigenen Code ausführen. Da runc mit Root-Rechten läuft, hat der Angreifer sofort volle Kontrolle über das Hostsystem. Voraussetzung für den Angriff sind die Möglichkeit, Programme innerhalb des Containers als Root auszuführen, sowie falsch konfigurierte Container-Namespaces.

Wie bereits die Lücke beim "Docker-Spielplatz" Play with Docker zeigt auch diese Lücke, dass man beim Einsatz von privilegierten Containern äußerte Vorsicht walten lassen sollte. (mls)