T05 · Unauthorized Access and Privilege Escalation
- Location
nodes.md:59- Finding
Privileged Kubernetes Node Debugging Exposes the Host Filesystem and Namespaces
- Content
View full analysis
-it --image=busybox # node filesystem at /host, host namespaces chroot /host # then the usual tools crictl ps -a && crictl logs # container runtime view when kubectl cannot reach it journalctl -u kubelet -n 200 --no-pager # kubelet's own story df -h /var/lib/kubelet /var/lib/containerd && dmesg -T | tail -50 ``` The same privileged node-debug technique also appears in `commands.md:43`: ```bash kubectl debug node/ -it --image=busybox # node shell without SSH; host fs at /host ``` ### Technical Analysis `kubectl debug node/` creates a node-debugging pod with access to host namespaces and mounts the node filesystem at `/host`. Running `chroot /host` then changes the apparent root filesystem to that of the Kubernetes node. This access can expose: - Kubelet and node credentials. - Container runtime sockets and configuration. - Files belonging to other pods. - Mounted Secret material and ServiceAccount tokens. - Host logs and process information. - Host configuration that can be modified to affect all workloads on the node. Node-level diagnostics are consistent with the Skill's declared troubleshooting purpose. However, entering the complete host filesystem exceeds the minimum privilege required for many routine investigations. The documented flow does not impose a mandatory production-context check, explicit user authorization, read-only limitation, or command allowlist before invoking `chroot`. Exploitation requires the invoking Kubernetes identity already to have permission to create the node-debug pod. The documentation does not itself grant this permission, but it directs the Agent to exercise it at its full pri ...[truncated 1022 chars]- Remediation
View remediation
