Skip to content

Pin Docker base images by digest (OpenSSF Scorecard: Pinned-Dependencies) #68

Description

@swperb

OpenSSF Scorecard — Pinned-Dependencies (currently 6/10). Our GitHub Actions are already SHA-pinned, but the Docker base images aren't pinned by digest, so a rebuilt upstream tag could silently change what we ship. Pinning them by @sha256:… closes that gap.

What to change

Pin all four FROM lines to the image digest, keeping the tag for readability (tag@sha256:…):

Example:

FROM node:20-bookworm-slim@sha256:<digest> AS build

Get the current digest

Pin to a fresh digest (don't trust a stale one):

docker buildx imagetools inspect node:20-bookworm-slim   --format '{{.Manifest.Digest}}'
docker buildx imagetools inspect debian:bookworm-slim    --format '{{.Manifest.Digest}}'

(Scorecard's last-seen values, as a reference: node sha256:2cf067cfed83d5ea958367df9f966191a942351a2df77d6f0193e162b5febfc0, debian sha256:96e378d7e6531ac9a15ad505478fcc2e69f371b10f5cdf87857c4b8188404716 — but re-fetch, these rotate.)

Done when

  • All four FROM lines use tag@sha256:…
  • CI's docker job still builds green (the Smithery image), and the release docker job logic is unchanged
  • Keep the human-readable tag in front of the digest (don't drop node:20-bookworm-slim)

Bonus: mcp/build-bundle.sh calls npx -y @anthropic-ai/mcpb unpinned — pinning it to a version (@anthropic-ai/mcpb@<version>) tidies the last Scorecard warning, but the Docker pins are the main win.

Difficulty: easy. Great first PR — concrete, low-risk, CI-verified.

Metadata

Metadata

Assignees

No one assigned

    Labels

    dependenciesPull requests that update a dependency filegood first issueGood for newcomershelp wantedExtra attention is needed

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions