[HIGH] Docker socket mounted into Forgejo Runner and Wings containers #14

Open
opened 2026-05-05 15:43:32 -05:00 by pjennings · 0 comments
Owner

Labels: area:security, area:containers, priority:high, type:bug

Description

Two containers mount the Docker socket directly:

  1. Forgejo Runner on apps2: /var/run/docker.sock:/var/run/docker.sock
  2. Pelican Wings on gs1: /var/run/docker.sock:/var/run/docker.sock

Combined with the runner's --privileged flag (separate CRITICAL issue), this grants full host Docker control.

Impact

Container escape to host. Any code running in these containers can create/stop/delete any container, read container environment variables (including secrets), and mount host filesystem volumes.

  1. Wings: This is architecturally necessary for game server management. Use a Docker socket proxy (Tecnativa/docker-socket-proxy) to restrict API access to only what Wings needs (containers: list/create/stop, volumes: list/create)
  2. Forgejo Runner: Replace socket mounting with Docker-in-Docker (dind) for proper isolation
**Labels:** `area:security`, `area:containers`, `priority:high`, `type:bug` ## Description Two containers mount the Docker socket directly: 1. **Forgejo Runner** on apps2: `/var/run/docker.sock:/var/run/docker.sock` 2. **Pelican Wings** on gs1: `/var/run/docker.sock:/var/run/docker.sock` Combined with the runner's `--privileged` flag (separate CRITICAL issue), this grants full host Docker control. ## Impact Container escape to host. Any code running in these containers can create/stop/delete any container, read container environment variables (including secrets), and mount host filesystem volumes. ## Recommended Fix 1. **Wings**: This is architecturally necessary for game server management. Use a Docker socket proxy (Tecnativa/docker-socket-proxy) to restrict API access to only what Wings needs (containers: list/create/stop, volumes: list/create) 2. **Forgejo Runner**: Replace socket mounting with Docker-in-Docker (dind) for proper isolation
Sign in to join this conversation.
No description provided.