Kubernetes-Schwachstelle könnte Windows-Übernahme ermöglichen
Sicherheitsexperten haben Informationen zu einer gefährlichen Sicherheitslücke in Kubernetes veröffentlicht, die bereits behoben wurde. Diese Lücke könnte es einem Angreifer unter bestimmten Bedingungen ermöglichen, aus der Ferne einen schädlichen Code mit zusätzlichen Rechten auszuführen.
Sicherheitsforscher bei Akamai haben die aktuelle Sicherheitslücke in Kubernetes gefunden. Sie erklären, dass die Schwachstelle es einem Angreifer ermöglicht, schädlichen Code mit SYSTEM-Rechten auf allen Windows-Endpunkten innerhalb eines Kubernetes-Clusters auszuführen. Um die Schwachstelle auszunutzen, müsste der Angreifer bösartige YAML-Dateien auf dem Cluster einrichten.
Die Schwachstelle ist unter dem Namen CVE-2023-5528 bekannt und hat einen CVSS-Score von 7.2. Sie betrifft alle Versionen von kubelet ab Version 1.8.0. Diese wurde durch Updates behoben, die am 14. November 2023 in den Versionen kubelet v1.28.4, kubelet v1.27.8, kubelet v1.26.11 und kubelet v1.25.16 veröffentlicht wurden.
Kubernetes-Verantwortliche haben in einem veröffentlichten Advisory darauf hingewiesen, dass dieses Sicherheitsproblem auftritt, wenn ein Benutzer Pods und persistente Volumes auf Windows-Knoten erstellen kann, was ihm potenziell Admin-Rechte auf diesen Knoten verschaffen könnte. Dies betrifft jedoch nur Kubernetes-Cluster, die ein bestimmtes In-Tree-Storage-Plugin für Windows-Knoten verwenden. Eine erfolgreiche Ausnutzung dieser Schwachstelle könnte allerdings zu einer vollständigen Übernahme aller Windows-Knoten in einem Cluster führen.
Das Problem rührt von der Verwendung „unsicherer Funktionsaufrufe und mangelnder Bereinigung von Benutzereingaben“ her und bezieht sich auf eine Funktion namens Kubernetes-Volumes, die speziell einen Volume-Typ nutzt, der als Local Volume bekannt ist und es Benutzern ermöglicht, Festplattenpartitionen in einem Pod zu mounten, indem sie ein PersistentVolume angeben oder erstellen.
Wenn ein Pod erstellt wird, der ein lokales Volume enthält, führt der Kubelet-Service schließlich die Funktion ‚MountSensitive()‘ aus. Darin gibt es einen Befehlszeilenaufruf zu ‚exec.command‘, der einen symbolischen Link zwischen dem Speicherort des Volumes auf dem Knoten und dem Speicherort innerhalb des Pods erstellt.
Diese Konfiguration bietet eine Schwachstelle, die von einem Angreifer ausgenutzt werden kann, indem er ein PersistentVolume mit einem speziell gestalteten Pfadparameter in der YAML-Datei erstellt. Dadurch wird die Befehlsinjektion und -ausführung durch Verwendung des Befehlstrennzeichens „&&“ ausgelöst.
Um diese Möglichkeit der Injektion zu beseitigen, hat das Kubernetes-Team beschlossen, den Befehlsaufruf zu entfernen und durch eine native GO-Funktion zu ersetzen, die die gleiche Operation ‚os.Symlink()‘ ausführt, wie von Peled über den implementierten Patch erklärt wurde.
Der Fall überschneidet sich zeitlich mit der Ausnutzung einer kritischen Sicherheitslücke (CVE-2024-0778, CVSS-Score: 9.8) im Auslaufmodell einer Zhejiang Uniview ISC-Kamera (Modell 2500-S). Cyberkriminelle verbreiten damit eine Mirai-Botnetz-Variante namens NetKiller, die sich Bereiche ihrer Infrastruktur mit Condi teilt – einem anderen Botnetz.
„Der Condi-Botnet-Quellcode wurde zwischen dem 17. August und dem 12. Oktober 2023 öffentlich auf Github veröffentlicht“, so Akamai. „In Anbetracht der Tatsache, dass der Condi-Quellcode nun schon seit Monaten verfügbar ist, ist es wahrscheinlich, dass andere Bedrohungsakteure […] ihn verwenden.“