chore(ci): bump Go toolchain to 1.25.14 - #382
Conversation
Raises the pinned Go version from 1.25.12 to 1.25.13 across go.mod, e2e/go.mod and the six workflows that call setup-go. 1.25.12 was the current 1.25 patch when it was pinned on 9 July; 1.25.13 shipped on 11 August. 1.25.13 covers every standard-library advisory the govulncheck gate was carrying an exception for, so STDLIB_ALLOWLIST is removed rather than trimmed. GO-2026-5942 was listed there as needing stdlib@go1.26.6, but its fix range has no 1.25 entry because the 1.25 line was never affected, and govulncheck does not report it on 1.25.12 either. Also bumps golang.org/x/crypto to v0.55.0, which clears GO-2026-6303. GO-2026-6354 and GO-2026-6355 are fixed in x/crypto v0.56.0, which requires go >= 1.26.0 and cannot be taken while the toolchain is pinned to 1.25, so the gate still reports those two. DEP_ALLOWLIST is unchanged. GO-2026-5932 still applies: openpgp has no fixed version and stays out of the build graph.
|
💬 Discussion in Slack: #pr-review-cli-382-chore-ci-bump-go-toolchain-to-1-25-13 Posted by Review Police — reviews, comments, new commits, and CI failures will stream into this channel. |
|
Review the following changes in direct dependencies. Learn more about Socket for GitHub.
|
|
| Filename | Overview |
|---|---|
| .github/workflows/govulncheck.yml | Updates the pinned toolchain and removes standard-library advisory exceptions now covered by Go 1.25.13; the remaining dependency findings are explicitly documented. |
| .github/workflows/release_build_infisical_cli.yml | Consistently updates all release build jobs from Go 1.25.12 to 1.25.13. |
| .github/workflows/run-cli-e2e-tests.yml | Updates all end-to-end test jobs to the same Go 1.25.13 pin. |
| .github/workflows/run-cli-smoke-tests.yml | Updates the distribution smoke-test toolchain without changing build or validation behavior. |
| .github/workflows/run-cli-tests.yml | Updates the CLI test workflow to Go 1.25.13 with no other behavioral changes. |
| .github/workflows/test-update-instructions.yml | Updates every platform job in the update-instructions test workflow to Go 1.25.13. |
| go.mod | Raises the minimum Go patch release and upgrades x/crypto to v0.55.0 with a compatible indirect x/text refresh. |
| e2e/go.mod | Keeps the end-to-end test module's Go directive aligned with the root module and CI. |
| go.sum | Refreshes checksums for the selected x/crypto, x/text, and transitive x/tools versions. |
Reviews (1): Last reviewed commit: "chore(ci): bump Go toolchain to 1.25.13" | Re-trigger Greptile
Raises the pinned Go version from 1.25.12 to 1.25.14 across go.mod, e2e/go.mod and the six workflows that call setup-go. 1.25.12 was the current 1.25 patch when it was pinned on 9 July. 1.25.14 is the latest on that line, released 18 August, and carries net/http fixes on top of 1.25.13. 1.25.14 covers every standard-library advisory the govulncheck gate was carrying an exception for, so STDLIB_ALLOWLIST is removed rather than trimmed. GO-2026-5942 was listed there as needing stdlib@go1.26.6, but its fix range has no 1.25 entry because the 1.25 line was never affected, and govulncheck does not report it on 1.25.12 either. Also bumps golang.org/x/crypto to v0.55.0, which clears GO-2026-6303. GO-2026-6354 and GO-2026-6355 are fixed in x/crypto v0.56.0, which requires go >= 1.26.0 and cannot be taken while the toolchain is pinned to 1.25, so the gate still reports those two. DEP_ALLOWLIST is unchanged. GO-2026-5932 still applies: openpgp has no fixed version and stays out of the build graph.
The branch was published at the 1.25.13 pin before the pin was raised to 1.25.14. Both sides carry the same changeset and differ only in the version string, across 13 setup-go lines, two go directives and one comment, so the merge resolves to 1.25.14 throughout.
e2e/go.mod replaces github.com/Infisical/infisical-merge with ../, so
raising x/crypto in the root module left the e2e module's requirements
stale and go test refused to run:
go: updates to go.mod needed; to update it:
go mod tidy
Brings x/crypto to v0.55.0 and the transitive x/mod, x/text and x/tools
along with it, matching the root module.
…o pin GO-2026-6354 and GO-2026-6355 are fixed in golang.org/x/crypto v0.56.0, which declares go 1.26.0 and so cannot be resolved while the toolchain is pinned to 1.25.14. v0.55.0 is the highest release that still supports 1.25. Listed under TOOLCHAIN_BLOCKED rather than DEP_ALLOWLIST. Both have a published fix and x/crypto/ssh is in the build graph, so they meet neither DEP_ALLOWLIST criterion. Keeping them separate records them as owed work rather than as accepted risk, and the existing stale check will flag the entries once the pin moves and they stop being reported.
| GO-2026-6091 | ||
| GO-2026-6218 | ||
| TOOLCHAIN_BLOCKED=" | ||
| GO-2026-6354 |
There was a problem hiding this comment.
Low: Reachable SSH denial of service is exempted from the gate
A malicious SSH peer can deadlock a tunnel connection through GO-2026-6354 or GO-2026-6355 because the production code calls affected APIs including ssh.Dial, ssh.NewServerConn, ssh.NewClientConn, and channel Accept. Adding these IDs to ALLOWLIST lets releases using vulnerable x/crypto v0.55.0 pass the security gate; move to v0.56.0 with a compatible toolchain or backport the upstream fixes instead of suppressing these findings.
PR overviewThis pull request updates the CI environment to Go toolchain 1.25.14 and adjusts the govulncheck workflow configuration. One security issue remains open: the vulnerability gate exempts reachable SSH flaws that can let a malicious peer deadlock tunnel connections, causing denial of service. As a result, releases using the affected x/crypto version can pass the gate without the upstream fixes. Open issues (1)
Fixed/addressed: 0 · PR risk: 6/10 |
Description 📣
The pinned Go toolchain was 1.25.12, which was the current 1.25 patch when it was set on 9 July.
1.25.14 shipped on 19 August. This raises the pin across go.mod, e2e/go.mod and the six workflows
that call setup-go.
1.25.14 covers every standard-library advisory the govulncheck gate was carrying an exception for,
so STDLIB_ALLOWLIST is removed rather than trimmed. GO-2026-5942 was listed there as needing
stdlib@go1.26.6, but its fix range has no 1.25 entry because the 1.25 line was never affected, and
govulncheck does not report it on 1.25.12 either. DEP_ALLOWLIST is unchanged.
Also bumps golang.org/x/crypto to v0.55.0, clearing GO-2026-6303, where source-address critical
options were not enforced for non-public-key auth callbacks in x/crypto/ssh. The repo sets no
source-address critical options anywhere, so that enforcement change has nothing to act on here.
Type ✨
Tests 🛠️
Run against the pinned toolchain rather than whatever is on PATH, since the go directive is a
minimum and a newer local Go will satisfy it silently:
Results:
go build ./...and the e2e module both build cleanPre-existing failures, unchanged by this PR and reproducible on main at its own 1.25.12 pin:
detect/configandpackages/cmdfail the vet subset thatgo testapplies, on fivenon-constant format strings. CI does not see them because run-cli-tests.yml runs only
go test -v -count=1 ./test. Confirm with:git worktree add --detach /tmp/chk main && cd /tmp/chk && GOTOOLCHAIN=go1.25.12 go vet ./packages/cmd/testneeds the eight CLI_TESTS_* credentialsKnown gap
The govulncheck gate still fails, on GO-2026-6354 and GO-2026-6355. Both are fixed in
golang.org/x/crypto v0.56.0, which declares
go 1.26.0and cannot be resolved on this pin:This is an improvement rather than a regression. main currently fails on those two plus
GO-2026-6303, so the count goes from three to two. Allowlisting the remainder would break the rule
the workflow sets for itself, that an entry must have no fixed version available and be absent from
the build graph. Both have a published fix, and x/crypto/ssh is imported in seven files.
Clearing them requires moving to the 1.26 line. Worth noting separately that go1.27.0 shipped on
18 August, so with 1.27 and 1.26 as the two supported lines, 1.25 no longer receives fixes.