
Proof-of-Concept-Exploit für die Offenlegung von Kubernetes-Service-Account-Tokens über hostPath-Mounts; enthält eine verwundbare Pod-YAML und ein Python-Skript zum Token-Diebstahl.
# vulnerable-pod.yaml - Pod that mounts /var/run/secrets/kubernetes.io/serviceaccount into a hostPath
apiVersion: v1
kind: Pod
metadata:
name: sa-token-leak
spec:
containers:
- name: app
image: nginx
volumeMounts:
- mountPath: /var/run/secrets/kubernetes.io/serviceaccount
name: sa-token
volumes:
- name: sa-token
hostPath:
path: /var/run/secrets/kubernetes.io/serviceaccount # Writable by container? Not needed.
type: Directory
Ein Pod mountet das Verzeichnis des Kubernetes-Service-Account-Tokens über hostPath anstelle des standardmäßigen projizierten Volumes. Dadurch wird das Token für andere Pods auf demselben Knoten zugänglich, sofern diese das Host-Dateisystem lesen können, was Lateral Movement und die Kompromittierung des Clusters ermöglicht.
hostPath umgeht die In‑Memory-Token-Projektion und macht das Token zu einer dauerhaften Datei auf dem Knoten.Stellen Sie den verwundbaren Pod bereit und führen Sie dann von einem anderen Pod mit Host-Zugriff Folgendes aus:
python exploit_sa_token.py
Das Token wird ausgelesen und kann zur Authentifizierung am API-Server verwendet werden.