Security hardening: pin the go install @latest tool fetches in CI and setup-dev.sh #267
Labels
No labels
breaking
bug
documentation
enhancement
epic
good first issue
help wanted
refactoring
resolution/duplicate
resolution/invalid
resolution/wontfix
security
severity/critical
severity/high
severity/low
severity/medium
status/abandoned
status/blocked
status/needs-decision
status/needs-info
status/needs-verification
testing
upstream
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
sixfold-space/madtea#267
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
CI installs its analysis tools from a moving
@latest:.forgejo/workflows/ci.yml:228staticcheck,:292govulncheck,:379gosecscripts/setup-dev.sh:221-225gopls, staticcheck, govulncheck, gosec, goreleaserA compromised upstream at
@latestruns arbitrary code in CI (and on a contributor's dev machine). Blast radius in CI is limited - the container carries no secrets and the checkout is anonymous with no write token, so the worst case is a poisoned build result rather than credential theft - but it's a supply-chain hygiene gap. Note the same file already pinsmodernize@v0.22.0, so the pattern is inconsistent.Fix: pin each tool to a specific released version (a tag is the minimum; a module version + go.sum-style trust is better where the installer supports it). Never a downgrade - pin to the current latest release of each.
Acceptance: no
@latestingo installlines across CI workflows andsetup-dev.sh; pinned versions are the current releases.