Container escape → host

SkillCloud & infra

Break out of a container to the host. Load when you have a shell in a container/pod and want the node: privileged container, mounted docker.sock, dangerous capabilities, hostPath, or "escape the container". Signals: /.dockerenv, cgroup shows docker/k8s, CAP_SYS_ADMIN, mounted socket.

Instructions available. Your AI can read the instructions. Execution depends on the setup they require.

Add ahel to your AI once: Claude, ChatGPT, Cursor, Claude Code or Codex. Then ask it to use this.

Then ask your AI: use the Container escape → host skill

What this skill tells your AI

The instructions your AI receives, as published by noorqureshi/sploitagent in skills/cloud/cloud-container-escape/SKILL.md and read by ahel’s review.

When it applies

You have code execution inside a container and want the underlying host (and from there, other containers / the cluster / cloud creds).

Why it works

Containers are isolation by configuration, not a hard boundary. Privileged mode, extra capabilities, mounted host resources, or an exposed Docker socket give processes inside the container direct control over the host kernel/daemon.

Method

  1. Confirm & enumerate: /.dockerenv, /proc/1/cgroup; run amicontained/deepce to list capabilities, seccomp, and mounts.
  2. Exploit the misconfig:
    • Docker socket mounted (/var/run/docker.sock): docker -H unix://... run -v /:/host ... → mount host FS as root → escape.
    • Privileged / CAP_SYS_ADMIN: mount the host disk, or use the classic release_agent cgroup notify_on_release trick to run a command on the host.
    • hostPath / host mounts: write to host filesystem (cron, ssh keys, kubelet config).
    • hostPID: access host processes; nsenter into PID 1's namespaces.
  3. From the host: grab cloud metadata creds (→ cloud-imds-ssrf), pivot to other containers/nodes (→ cloud-kubernetes).

Gotchas

  • Enumerate capabilities/mounts first — the escape depends entirely on which misconfig exists.
  • Kernel-exploit escapes are last-resort and risky on live targets; prefer the config-based paths.
  • On bug bounty, a proven mount of the host FS is enough — don't disrupt the node.

Verify success

Command execution or file read/write on the host (outside the container namespace) — e.g. host /etc/shadow, other containers, or the kubelet/cloud creds.

References

deepce/amicontained; "Understanding Docker container escapes" (Trail of Bits); HackTricks.

Signals

GitHub stars
20
Forks
7
Last commit
Sep 2026
Advanced
Item type
skill
Key
cloud-container-escape
Source
github.com/noorqureshi/sploitagent