Guide for setting up secured VS Code dev containers for coding agents. Use when creating or hardening a DevContainer to sandbox Claude Code or other coding agents, configuring Docker socket proxies, handling VS Code IPC escape vectors, setting up git worktree support, or verifying security controls. Covers threat model, three-layer defence architecture, Node.js/pnpm setup, and verification testing.
76
95%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Low
Low-risk findings worth noting
Low
Low-risk findings.
2 low severity findings. Worth noting, but not necessarily harmful.
The skill exposes the agent to untrusted, user-generated content from public third-party sources, creating a risk of indirect prompt injection. This includes browsing arbitrary URLs, reading social media posts or forum comments, and analyzing content from unknown websites.
The skill's startup commands (see NODE-SETUP.md and the Docker Compose command in SECURITY-HARDENING.md) explicitly curl and pipe the external URL https://claude.ai/install.sh into bash at container startup, which fetches and executes untrusted third-party code that can materially influence agent behavior.
The skill fetches instructions or code from an external URL at runtime, and the fetched content directly controls the agent’s prompts or executes code. This dynamic dependency allows the external source to modify the agent’s behavior without any changes to the skill itself.
The devcontainer startup command performs a runtime fetch-and-execute of remote code via "curl -fsSL https://claude.ai/install.sh | bash", which runs external code during container start and is relied on to install the claude CLI, so it directly executes remote code at runtime.
@devcontainers/cli
dependency · 2 sites
The script uses `npx -y @devcontainers/cli` which auto-downloads and executes the package at runtime without version pinning, constituting a runtime fetch-and-execute of an external dependency.
scripts/run-integration-tests.sh
36
npx -y @devcontainers/cli exec --workspace-folder "$WORKSPACE" "$@"
scripts/run-integration-tests.sh
57
UP_OUTPUT=$(npx -y @devcontainers/cli up --workspace-folder "$WORKSPACE" 2>&1) || {