T08 · Insecure Dependencies
- Location
SKILL.md:81- Finding
Mutable and Unverified Container Images Create a Supply-Chain Risk
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md:81-86,SKILL.md:99-107,SKILL.md:121-134,SKILL.md:135-171
Vulnerability Type: Unpinned and partly unofficial container dependencies
Risk Level: HighVulnerable Code
bash docker run -d \ --name grass-node \ --restart unless-stopped \ -e GRASS_USER=your@email.com \ -e GRASS_PASS=yourpassword \ mrcolorrain/grass:latestbash docker run -d \ --name mysterium-node \ --restart unless-stopped \ --cap-add NET_ADMIN \ -p 4449:4449 \ -v ~/.mysterium:/root/.mysterium \ mysteriumnetwork/myst:latest \ service --agreed-terms-and-conditionsbash docker run -d \ --name storj-node \ --restart unless-stopped \ -p 28967:28967 \ -p 14002:14002 \ -e WALLET="0xYOUR_ETH_WALLET" \ -e EMAIL="your@email.com" \ -e ADDRESS="YOUR_PUBLIC_IP:28967" \ -e STORAGE="500GB" \ -v /path/to/storj/data:/app/identity \ -v /path/to/storj/storage:/app/config \ storjlabs/storagenode:latestyaml services: grass: image: mrcolorrain/grass:latest container_name: grass-node restart: unless-stopped environment: - GRASS_USER=${GRASS_EMAIL} - GRASS_PASS=${GRASS_PASSWORD} mysterium: image: mysteriumnetwork/myst:latest container_name: mysterium-node restart: unless-stopped cap_add: - NET_ADMIN ports: - "4449:4449" volumes: - mysterium_data:/root/.mysterium command: service --agreed-terms-and-conditions honeygain: image: honeygain/honeygain:latest container_name: honeygain-node restart: unless-stopped environment: - HONEYGAIN_EMAIL=${HONEYGAIN_EMAIL} - HONEYGAIN_PASS=${HONEYGAIN_PASSWORD} - HONEYGAIN_DEVICE=homelab-01Technical Analysis
All documented container images use the mutable
latesttag rather than i ...[truncated 2294 chars]- Remediation
View remediation
Remediation Suggestions
- Replace every
latestreference with a reviewed version and immutable SHA-256 digest, for example:yaml image: vendor/image:reviewed-version@sha256:EXPECTED_DIGEST - Confirm each image against the platform vendor's official documentation and registry namespace.
- Do not recommend the personal-namespace Grass image until its source repository, Dockerfile, build pipeline, ownership, and resulting digest have been independently verified.
- Verify image signatures with a mechanism such as Sigstore Cosign and enforce signature policies in deployment tooling.
- Review image SBOMs and scan pinned images for known vulnerabilities before deployment.
- Configure controlled update procedures rather than automatically adopting newly published images.
- Drop Linux capabilities by default and retain
NET_ADMINonly where documented as strictly necessary. - Run containers as non-root where supported and apply read-only filesystems, seccomp, AppArmor or SELinux policies, resource limits, and isolated Docker networks.
- Replace every
