Eine neu entdeckte Sicherheitslücke in der Kubernetes-Container-Engine CRI-O namens cr8escape könnte von einem Angreifer ausgenutzt werden, um aus Containern auszubrechen und Root-Zugriff auf den Host zu erhalten.

„Der Aufruf von CVE-2022-0811 kann es einem Angreifer ermöglichen, eine Vielzahl von Aktionen auf dem Zielsystem auszuführen, einschließlich der Ausführung von Malware, der Exfiltration von Daten und der lateralen Bewegung über Pods hinweg“, so die CrowdStrike-Forscher John Walker und Manoj Ahuje in einer diese Woche veröffentlichten Analyse.

Als leichtgewichtige Alternative zu Docker ist CRI-O eine Container-Laufzeit-Implementierung des Kubernetes Container Runtime Interface (CRI), mit der Container-Images aus Registries abgerufen und eine mit der Open Container Initiative (OCI) kompatible Laufzeitumgebung wie runC gestartet wird, um Container-Prozesse zu starten und auszuführen.

Die Schwachstelle wird im CVSS Schwachstellen-Scoring-System mit 8.8 bewertet und betrifft die CRI-O Versionen 1.19 und später. Nach dem Bekanntwerden der Schwachstelle wurden Patches veröffentlicht, um die Schwachstelle in der Version 1.23.2 zu beheben, die am 15. März 2022 veröffentlicht wurde.

CVE-2022-0811 ist auf eine Codeänderung zurückzuführen, die in Version 1.19 eingeführt wurde, um die Kernel-Optionen für einen Pod festzulegen. Dies führt zu einem Szenario, in dem ein bösartiger Akteur mit der Berechtigung, einen Pod in einem Kubernetes-Cluster mit der CRI-O-Laufzeitumgebung zu implementieren, den Parameter „kernel.core_pattern“ ausnutzen kann, um Container-Escape und die Ausführung von beliebigem Code als Root auf jedem Knoten im Cluster zu erreichen.

Der Parameter „kernel.core_pattern“ wird verwendet, um einen Musternamen für einen Core Dump festzulegen. Dabei handelt es sich um eine Datei, die den Speicherauszug eines Programms zu einem bestimmten Zeitpunkt enthält und in der Regel als Reaktion auf unerwartete Abstürze oder bei einer abnormalen Beendigung des Prozesses aktiviert wird.

„Wenn das erste Zeichen des Musters ein ‚|‘ [eine Pipe] ist, behandelt der Kernel den Rest des Musters als einen auszuführenden Befehl. Der Kerndump wird in die Standardeingabe dieses Programms statt in eine Datei geschrieben“, heißt es in der Dokumentation des Linux-Kernels.

Wenn diese Option auf ein bösartiges Shell-Skript verweist und einen Kernspeicherauszug auslöst, führt die Schwachstelle zum Aufruf des Skripts und ermöglicht dem Angreifer die Ausführung von Remote-Code und die Übernahme des Nodes.

„Kubernetes ist nicht notwendig, um CVE-2022-8011 aufzurufen“, so die Forscher. „Ein Angreifer auf einem Rechner, auf dem CRI-O installiert ist, kann damit ganz allein Kernel-Parameter setzen.“