CVE-2024-10220: Kritische Sicherheitslücke in Kubernetes durch gitRepo-Volume

Table of Contents

Am 20. November 2024 wurde CVE-2024-10220 öffentlich bekanntgegeben, eine Sicherheitslücke in Kubernetes, die als kritisch eingestuft wurde. Sie betrifft das gitRepo-Volume, ein veraltetes Feature, das es Angreifern ermöglichen könnte, beliebige Befehle außerhalb der Container-Grenzen auszuführen. Im Folgenden eine detaillierte Analyse dieser Schwachstelle, ihrer Auswirkungen und wie sie behoben werden kann.

Die Sicherheitslücke erlaubt es Angreifern, mithilfe der gitRepo-Volume-Funktion von Kubernetes beliebige Befehle auszuführen. Das Problem liegt darin, dass das Verzeichnis .git/hooks innerhalb eines geklonten Repositories genutzt werden kann, um Skripte außerhalb des Containers auszuführen. Dies birgt erhebliche Risiken für die Integrität und Vertraulichkeit eines Clusters.

Betroffen sind Kubernetes-Versionen, die das gitRepo-Volume unterstützen und keine Patches enthalten, die diese Schwachstelle schließen.

Die Sicherheitslücke betrifft die folgenden Kubernetes-Versionen:

  • kubelet v1.30.0 bis v1.30.2
  • kubelet v1.29.0 bis v1.29.6
  • kubelet ≤ v1.28.11

Diese Versionen nutzen den fehlerhaften Mechanismus zur Verarbeitung von gitRepo-Volumes, wodurch die Schwachstelle ausgenutzt werden kann.

Bewertung der Sicherheitslücke

  • Schweregrad: Hoch
  • CVSS-Score: 8.1 (CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N)
  • Vektor: Angriffe sind über das Netzwerk möglich, erfordern niedrige Berechtigungen und keine Benutzerinteraktion.

Empfohlene Maßnahmen zur Behebung

1. Update auf eine sichere Version

Die Schwachstelle wurde in den folgenden Kubernetes-Versionen behoben:

  • kubelet master/v1.31.0
  • kubelet v1.30.3
  • kubelet v1.29.7
  • kubelet v1.28.12

Ein Update auf eine dieser Versionen wird dringend empfohlen. Die Patches begrenzen die Tiefe des Verzeichnisses, das durch gitRepo-Volumes geklont werden kann, auf eine Ebene, wodurch der Zugriff auf .git/hooks verhindert wird.

2. Abschaffung des gitRepo-Volumes

Da gitRepo-Volumes als veraltet gelten, wird empfohlen, stattdessen Init-Container zu verwenden, um Repositories zu klonen. Anschließend können die geklonten Verzeichnisse in den Ziel-Container eingebunden werden.

Erkennung von Angriffen

Zur Überprüfung, ob ein Cluster anfällig ist oder möglicherweise bereits angegriffen wurde, kann folgender Befehl verwendet werden:

kubectl get pods --all-namespaces -o json | jq '.items[] | select(.spec.volumes[].gitRepo.directory | endswith("/.git")) | {name: .metadata.name, namespace: .metadata.namespace}'

Hinweis:

Einige Benutzer berichten über Kompatibilitätsprobleme mit älteren jq-Versionen. Eine alternative Abfrage ohne endswith() lautet:

kubectl get pods --all-namespaces -o json | jq '.items[] | select(.spec.volumes[].gitRepo.directory) | {name: .metadata.name, namespace: .metadata.namespace}'

Falls keine Einträge ausgegeben werden, ist Ihr Cluster nicht betroffen.

Mitigation durch präventive Sicherheitsmaßnahmen

  1. Zugriffsrechte minimieren: Stellen Sie sicher, dass nur autorisierte Benutzer Pods erstellen dürfen.
  2. Überwachung einrichten: Implementieren Sie kontinuierliches Monitoring, um ungewöhnliche Aktivitäten in Kubernetes-Clustern zu erkennen.
  3. Veraltete Funktionen deaktivieren: Entfernen Sie ungenutzte oder veraltete Kubernetes-Funktionen, wie gitRepo.

Related Posts

Kritische Sicherheitslücke in Nexus Repository 2 – Remote Code Execution (CVE-2024-5082)

Sonatype hat eine schwere Sicherheitslücke in Nexus Repository Manager 2.x entdeckt, die potenziell gefährliche Auswirkungen auf Nutzer dieser Software haben könnte. Die Schwachstelle CVE-2024-5082 ermöglicht es Angreifern, durch das Veröffentlichen speziell präparierter Maven-Artefakte auf betroffene Systeme Remote Code Execution (RCE) auszuführen. Die Lücke betrifft alle Versionen von Nexus Repository 2.x bis einschließlich Version 2.15.1.

Read More

Authentifizierungs Bypass Sicherheitslücke in Apache Tomcat: CVE-2024-52316

Am 18. November 2024 wurde eine kritische Schwachstelle in Apache Tomcat bekannt (CVE-2024-52316), die eine Umgehung der Authentifizierung ermöglicht. Die Schwachstelle betrifft Benutzer, die eine benutzerdefinierte Jakarta-Authentication-Komponente (ehemals JASPIC) verwenden. Wenn diese Komponente während des Authentifizierungsprozesses eine Ausnahme auslöst, ohne explizit einen HTTP-Fehlerstatus zu setzen, kann die Authentifizierung fälschlicherweise als erfolgreich angesehen werden.

Read More

Kritische RCE Sicherheitslücke in GitHub CLI (CVE-2024-52308)

Am 14. November 2024 wurde eine schwerwiegende Sicherheitslücke in der GitHub CLI (GH CLI) bekannt gegeben, die Angreifern unter bestimmten Umständen Remote Code Execution (RCE) ermöglicht. Die Schwachstelle betrifft die Funktionen gh codespace ssh und gh codespace logs, wenn diese mit einem bösartigen Codespace-SSH-Server interagieren.

Read More