Skip to content

Attest image SBOM via referrers so it verifies with the standard commands - #83

Merged
nickmarden merged 1 commit into
mainfrom
sbom-attest-referrers
Jul 27, 2026
Merged

Attest image SBOM via referrers so it verifies with the standard commands#83
nickmarden merged 1 commit into
mainfrom
sbom-attest-referrers

Conversation

@nickmarden

Copy link
Copy Markdown
Contributor

Follow-up polish on workstream D, verified against the actual v0.4.10 release.

What v0.4.10 proved (all green)

  • Image signature: verified
  • Chart signature: verified
  • Image SLSA provenance: verified ✅ (cosign verify-attestation --type slsaprovenance1 and gh attestation verify)
  • Image SBOM: attached but not discoverable by cosign verify-attestation

The inconsistency

actions/attest-build-provenance writes to the OCI referrers store; my SBOM used cosign attest, which writes to the legacy .att tag. cosign verify-attestation reads referrers, so it found the provenance and missed the SBOM, even though cosign download attestation shows the SBOM is attached (https://spdx.dev/Document). The SECURITY.md SBOM-verify command therefore didn't work.

Fix

Attest the SBOM with actions/attest-sbom (push-to-registry: true) instead of cosign attest, so SBOM and provenance share the referrers store and both verify with the same cosign verify-attestation / gh attestation verify commands. anchore/sbom-action still generates the SPDX SBOM; only the attest mechanism changes. No egress/permission changes (referrers use the sigstore + api.github.com hosts already allowed).

Validation

Tag-only, so it validates on the next release. After that, cosign verify-attestation should find both the SBOM and the provenance on the image, matching the SECURITY.md commands.

The SBOM was attached with `cosign attest`, which writes to the legacy
`.att` tag, while provenance uses actions/attest-build-provenance (OCI
referrers). cosign verify-attestation reads referrers, so it found the
provenance but never the SBOM, even though it was attached (the documented
`cosign verify-attestation --type spdxjson` command failed on v0.4.10).

Switch the SBOM to actions/attest-sbom (push-to-registry) so SBOM and
provenance share the referrers store and verify with the same commands.
@codecov-commenter

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

@github-actions

Copy link
Copy Markdown

Docker Image Built

docker pull ghcr.io/tight-line/ballast:pr-83-d9577f0

Helm (values override)

image:
  repository: ghcr.io/tight-line/ballast
  tag: "pr-83-d9577f0"

Image expires ~15 days after PR closes.

@nickmarden
nickmarden merged commit d5946cf into main Jul 27, 2026
10 checks passed
@nickmarden
nickmarden deleted the sbom-attest-referrers branch July 27, 2026 23:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants