zurück zum Artikel

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

Container

(Bild: dpa, Christian Charisius)

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

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 [1]. Docker Inc. hat Version 18.09.2 von Docker [2] 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 [3] 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 [4] zeigt auch diese Lücke, dass man beim Einsatz von privilegierten Containern äußerte Vorsicht walten lassen sollte. (mls [5])


URL dieses Artikels:
http://www.heise.de/-4306487

Links in diesem Artikel:
[1] https://github.com/opencontainers/runc/commit/0a8e4117e7f715d5fbeef398405813ce8e88558b
[2] https://docs.docker.com/engine/release-notes/
[3] https://seclists.org/oss-sec/2019/q1/119
[4] https://www.heise.de/meldung/Sicherheitsforscher-brechen-aus-Docker-Container-aus-4276108.html
[5] mailto:mls@ct.de