
Exploit de prova de conceito para divulgação de token de conta de serviço do Kubernetes por meio de montagens hostPath; inclui YAML de pod vulnerável e script Python de roubo de token.
# 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
Um pod monta o diretório do token da conta de serviço do Kubernetes via hostPath em vez do volume projetado padrão. Isso expõe o token a outros pods no mesmo nó, caso eles consigam ler o sistema de arquivos do host, permitindo movimento lateral e comprometimento do cluster.
hostPath para montar o diretório do token da conta de serviço ignora a projeção do token em memória e torna o token um arquivo persistente no nó.Implante o pod vulnerável e, em seguida, a partir de outro pod com acesso ao host, execute:
python exploit_sa_token.py
O token é lido e pode ser usado para autenticar no servidor da API.