T08 · Insecure Dependencies
- Location
SKILL.md:105- Finding
Unpinned Third-Party Repository and Container Execution
- Content
View full analysis
(Apache-2.0), check out a release tag, and read its `docker-compose.yml` - it declares the images and ports that will run. From that checkout: ```bash docker compose up # open http://localhost:4321, complete /setup, then Settings → Payments ``` For production it deploys to Cloudflare Workers inside the free tier for typical funnel volumes, with the Postgres as the only real line item. ``` ### Technical Analysis The skill instructs users to clone an external repository, select an unspecified release tag, and execute the repository's Docker Compose configuration. It does not specify: - An immutable, reviewed Git commit hash - An exact release version - Cryptographic checksums or signed-release verification - Digest-pinned container images - A required security review of image sources, volume mounts, privileges, ports, and environment variables A release tag is not necessarily immutable. Repository maintainers or an attacker who compromises the upstream project may alter tags, Compose files, referenced images, or setup components after this skill has been audited. Container image tags can likewise be reassigned to different image contents. Executing `docker compose up` creates a code-execution path from third-party repository content to the user's host. The effective permissions depend on the generated Compose configuration and local Docker environment. Potentially dangerous configurations could include privileged containers, host filesystem mounts, Docker socket access, host networking, exposed services, or access to secrets supplied through environment variables. This is classified as **T08: Insecure Dependencies** because the skill introduces an unverified third-party repository and its c ...[truncated 1948 chars]- Remediation
View remediation
test "$(git rev-parse HEAD)" = "" ``` 3. Require signed release or commit verification and document the trusted signer identity and fingerprint. 4. Pin every container image in `docker-compose.yml` by immutable digest, for example: ```yaml image: example/application@sha256: ``` 5. Publish checksums or attestations for the reviewed Compose file and relevant configuration files. 6. Instruct users to inspect the Compose configuration before execution: ```bash docker compose config ``` 7. Require review for privileged mode, added Linux capabilities, host networking, writable host mounts, Docker socket mounts, exposed ports, device access, and secrets passed through environment variables. 8. Apply least privilege by using non-root containers, read-only filesystems, dropped capabilities, restricted networks, and narrowly scoped secrets. 9. Recommend testing in an isolated virtual machine or sandbox before production deployment. 10. Use automated dependency and image scanning, signed images, provenance attestations, and a documented update-review process. ]]>
