Docker Escape Playground
A container mounts the host's Docker socket. Use it to spin up a privileged container and step onto the host itself.
A container with the host's Docker socket mounted inside it. That socket is the Docker daemon's full API, and the daemon runs as root on the host — so this is not really an escape so much as walking through a door that was left open.
How to use it
- Notice the mounted socket.
- Use it to start a privileged container.
- Reach the host filesystem from inside it.
What to take away
Socket access is root on the host
Anyone who can talk to the Docker socket can start a container mounting / with full privileges. Mounting it into a container grants that container root on the host.
Containers are not a security boundary by default
They isolate by convention and configuration. --privileged, host namespaces and sensitive mounts each remove what isolation there is.
Frequently asked questions
Why do so many tools mount the Docker socket?
CI runners and monitoring agents genuinely need to manage containers. It is convenient and it is exactly as dangerous as giving them root — use a rootless daemon or a proxy that restricts the API.
How do I harden containers?
Run as non-root, drop capabilities, use read-only filesystems, avoid --privileged, never mount the socket, and apply seccomp and AppArmor profiles.
Where this fits in the course
This security lab pairs with Path 16 — Advanced — see all 26 learning paths.
It runs entirely in your browser: nothing is uploaded, no account is needed, and it is free.
Related
- Cloud IAM Misconfig Playground — A role holds one deceptively small permission. Chain it into full account takeover through iam:PassRole.
- Linux Privesc Playground — Enumerate SUID binaries on a simulated box and find the one GTFOBins turns straight into a root shell.
- Leaked Secret Hunt — A public GitHub repo dump. Find the hardcoded API key an automated scanner would catch in minutes — before an attacker does.
- Dependency / SBOM Risk Checker — Paste a dependency list and flag ones matching a known-vulnerable version range.