Build artifacts tagged with commit SHA, git tag, or semantic version; Docker images use SHA not latest
Why it matters
Docker images tagged exclusively as latest make it impossible to pinpoint which code version is running in production, roll back to a known-good build, or audit what changed between deployments. SLSA Build-L2 requires traceable artifact provenance; SSDF DS.1 requires unique build identifiers. Without SHA or semantic version tagging, a failed deployment becomes a debugging exercise because latest is overwritten with each push — the previous good build is gone.
Severity rationale
High because mutable `latest` tags eliminate the ability to pin or roll back to a specific artifact, making incident recovery slower and deployment audits impossible.
Remediation
Tag Docker images with the commit SHA or semantic version in your CI/CD workflow. Never push latest as the only tag.
# .github/workflows/deploy.yml
- name: Build and push image
run: |
COMMIT_SHA=${{ github.sha }}
docker build -t myregistry/myapp:${COMMIT_SHA:0:7} .
docker push myregistry/myapp:${COMMIT_SHA:0:7}
For semver-based projects:
- run: |
VERSION=$(npm pkg get version | tr -d '"')
docker build -t myregistry/myapp:${VERSION} .
docker push myregistry/myapp:${VERSION}
Update your deployment manifests or Helm values to reference the specific tag, not latest. Store the mapping of version → commit in release notes or GitHub Releases.
DetectionPro
The detection method for this pattern is part of AuditBuffet Pro.
The full method (what to look for, pass and fail conditions, and how results get reported) ships inside the Deployment Readiness Audit. The pattern definition, severity rationale, and remediation remain openly licensed under CC-BY-4.0.
External references
- iso-25010:2011 · reliability.maturity — Maturity — repeatable, versioned build and release process
- slsa:1.0 · Build L2 — Versioned, reproducible build artifacts
- ssdf:800-218 · DS.1 — Store all forms of code based on the principle of least privilege
- soc2:2017 · CC8.1 — Change management
Taxons
History
- 2026-04-18·v1.0.0·Initial import from deployment-readiness·automated
- 2026-07-06·v1.0.1·Add SOC 2 TSC mapping (CC8.1) from the verified compliance crosswalk register (docs/compliance/).·by soc2-mapping-enrichment-ship-2