T08 · Insecure Dependencies
Error
- Location
- scripts/docker-compose.yml:4
- Finding
- Mutable Third-Party Container Executes with Access to the Bearer Token and Workspace## Vulnerability Details **File Location**: `scripts/docker-compose.yml:4-17` **Vulnerability Type**: Unpinned third-party container with sensitive credentials and workspace access **Risk Level**: High ### Vulnerable Code ```yaml gomboc-mcp: image: gombocai/mcp:latest container_name: gomboc-mcp-server ports: - "3100:3100" environment: - GOMBOC_PAT=${GOMBOC_PAT} - MCP_PORT=3100 - LOG_LEVEL=info volumes: - ./:/workspace:ro healthcheck: test: ["CMD", "curl", "-f", "http://localhost:3100/health"] interval: 10s timeout: 5s retries: 3 start_period: 20s restart: unless-stopped ``` ### Technical Analysis The recommended deployment executes `gombocai/mcp:latest`, a mutable container image whose contents may change after the Skill has been reviewed. No immutable image digest, source revision, signature-verification policy, or reproducible build information is provided. The container receives the complete `GOMBOC_PAT` bearer token, outbound network access, and read access to the mounted workspace. It also publishes a host port and is configured to restart automatically. The read-only mount prevents direct workspace modification through that mount, but it does not prevent source-code collection or credential exfiltration. This design creates a supply-chain trust boundary in which any future image replacement or registry compromise can alter the effective executable payload without changing the audited Skill package. ### Attack Path 1. An attacker compromises the image publisher, container registry, or credentials used to publish `gombocai/mcp`. 2. The attacker replaces the image associated with the mutable `latest` tag. 3. A user follows the documented command and starts or pulls the Compose service. 4. Docker executes the replaced image and injects `GOMBOC_PAT`. 5. The malicious image reads files under `/workspace`, accesses the bearer token, an ...[truncated 629 chars]
- Remediation
- ## Remediation Suggestions - Pin the image to an immutable SHA-256 digest, for example `gombocai/mcp@sha256:...`. - Publish the container source, build manifest, and reproducible build procedure. - Require container-image signature and provenance verification before execution. - Use a short-lived token restricted to the minimum required API operations and repository scope. - Do not inject the PAT into the container unless the selected operation requires it. - Add `read_only: true`, drop all Linux capabilities, enable `no-new-privileges`, and run as a dedicated non-root user. - Restrict outbound network access to the explicitly required API endpoint. - Remove `restart: unless-stopped` from the default development configuration. - Bind the service only to loopback and document how users can stop and remove it.
