Summary
Two related supply-chain hygiene issues:
1. No CI gate before release
release.yml triggers on any v* tag push and runs GoReleaser immediately with no CI preflight verification. A tag pushed from a commit that never passed tests will produce and distribute release binaries.
2. Floating action tags
CI workflows use mutable floating action tags (actions/checkout@v4, actions/setup-go@v5) instead of commit SHA pins. All other repos in the org pin actions to full commit SHAs. The project's own severity.md classifies unpinned CI actions on mutable tags as HIGH severity supply-chain risk.
Expected behavior
- Release preflight: Before GoReleaser runs, verify that Build and Test CI checks passed on the tagged commit (matching the pattern in
unbound-force/unbound-force/.github/workflows/release.yml lines 78-110)
- Pin actions: Replace floating tags with full commit SHAs (e.g.,
actions/checkout@v4 -> actions/checkout@<commit-sha>)
Location
.github/workflows/release.yml
.github/workflows/ci.yml
Summary
Two related supply-chain hygiene issues:
1. No CI gate before release
release.ymltriggers on anyv*tag push and runs GoReleaser immediately with no CI preflight verification. A tag pushed from a commit that never passed tests will produce and distribute release binaries.2. Floating action tags
CI workflows use mutable floating action tags (
actions/checkout@v4,actions/setup-go@v5) instead of commit SHA pins. All other repos in the org pin actions to full commit SHAs. The project's ownseverity.mdclassifies unpinned CI actions on mutable tags as HIGH severity supply-chain risk.Expected behavior
unbound-force/unbound-force/.github/workflows/release.ymllines 78-110)actions/checkout@v4->actions/checkout@<commit-sha>)Location
.github/workflows/release.yml.github/workflows/ci.yml