
hostPathマウントを介したKubernetesサービスアカウントトークン漏えいの概念実証エクスプロイト。脆弱なPod YAMLとPython製トークン窃取スクリプトを含む。
# 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
ポッドが、デフォルトの projected ボリュームの代わりに hostPath 経由で Kubernetes service account トークンのディレクトリをマウントします。同一ノード上の他のポッドがホストのファイルシステムを読み取れる場合、トークンが露出し、横展開(ラテラルムーブメント)やクラスターの侵害が可能になります。
hostPath で SA トークンのディレクトリをマウントすると、インメモリのトークン投影がバイパスされ、トークンがノード上の永続ファイルになります。脆弱なポッドをデプロイし、次にホストアクセス権を持つ別のポッドから以下を実行します:
python exploit_sa_token.py
トークンは読み取られ、API サーバーへの認証に使用できます。