Skip to content

Update dependencies and CI, keep Go 1.25 - #8

Merged
umputun merged 2 commits into
masterfrom
bump-vulnerable-deps
Nov 9, 2026
Merged

umputun merged 2 commits into
masterfrom
bump-vulnerable-deps

Conversation

@paskal

@paskal paskal commented Nov 8, 2026

Copy link
Copy Markdown
Contributor

Summary

Updates every required module to its newest release that still builds with Go 1.25, and brings the CI workflow up to date. This clears all 16 open Dependabot alerts (7 critical). Before this change, govulncheck ./... reported 10 vulnerabilities reachable from this module's code; after it, 2 remain, as described below.

Dependencies

Security-relevant updates:

Module From To Reason
golang.org/x/crypto v0.50.0 v0.55.0 SSH advisories, reached via SSHTestContainer.connect and testcontainers DockerContainer.Terminate
golang.org/x/text v0.36.0 v0.41.0 infinite loop on invalid input, reached via NewMongoTestContainerE
github.com/moby/go-archive v0.2.0 v0.3.3 crafted tar archive can write outside the extraction directory
github.com/klauspost/compress v1.18.5 v1.20.3 panic on two-block frames, reached via MongoTestContainer.Close; Dependabot alert GHSA-259r-337f-4rfw
github.com/moby/sys/user v0.4.0 v0.5.0 Dependabot alert GHSA-mjcv-p78q-w5fw

The other required modules, direct and indirect, move to their newest compatible releases as well; go.mod shows the versions.

The go directive stays at 1.25.0. Held back because their next release requires Go 1.26: testcontainers-go v0.45.0, golang.org/x/crypto v0.56.0+, x/sys, x/sync, x/text, opentelemetry v1.47.0, gopsutil v4.26.9+, go-winio v0.6.3+.

CI

  • Go version comes from go.mod: the workflow reads the go directive and installs the latest patch of that minor version (check-latest: true), so CI follows the module's minimum Go minor version without a hard-coded version.
  • actions/checkout v4 -> v7, actions/setup-go v5 -> v7, golangci-lint-action v7 -> v9 (Node 24 runtime), golangci-lint v2.6 -> v2.15.
  • The push trigger lists branches and tags as ["**"] instead of empty keys.
  • Shell variables flagged by actionlint are quoted.

Not fixed here

GO-2026-6354 and GO-2026-6355 (SSH DoS on deadlocked channels, reached via SSHTestContainer.connect) are fixed in golang.org/x/crypto v0.56.0, which requires Go 1.26. Raising the minimum Go version is left for a separate decision.

Verification

  • go test -race ./... with Go 1.25.14 passes, including the Docker-backed container tests.
  • golangci-lint run (v2.15) reports no issues; actionlint reports none for the workflow.
  • govulncheck ./... reports 2 reachable vulnerabilities (the two above), down from 10.

Updates every required module to its newest release that still builds
with Go 1.25. This clears all 16 open Dependabot alerts and 8 of the 10
vulnerabilities govulncheck reports as reachable from this module:

- golang.org/x/crypto v0.50.0 -> v0.55.0: SSH advisories, reached via
  SSHTestContainer.connect and testcontainers DockerContainer.Terminate
- golang.org/x/text v0.36.0 -> v0.41.0: infinite loop on invalid input,
  reached via NewMongoTestContainerE
- github.com/moby/go-archive v0.2.0 -> v0.3.3: crafted tar archive can
  write outside the extraction directory
- github.com/klauspost/compress v1.18.5 -> v1.20.3: panic on two-block
  frames, reached via MongoTestContainer.Close
- github.com/moby/sys/user v0.4.0 -> v0.5.0: Dependabot alert

Held back because their next release requires Go 1.26:
testcontainers-go v0.45.0, golang.org/x/crypto v0.56.0+, x/sys, x/sync,
x/text, opentelemetry v1.47.0, gopsutil v4.26.9+, go-winio v0.6.3+.
GO-2026-6354 and GO-2026-6355 (SSH DoS on deadlocked channels) remain
open for that reason: the fix is in x/crypto v0.56.0.
- setup-go installs the latest patch of the Go version declared in
  go.mod instead of a hard-coded "1.25", so CI follows the module's
  minimum Go minor version
- checkout v4 -> v7, setup-go v5 -> v7, golangci-lint-action v7 -> v9
  (node 24 runtime), golangci-lint v2.6 -> v2.15
- push trigger lists branches and tags as ["**"] instead of empty keys
- quote shell variables flagged by actionlint

@umputun umputun left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm

@umputun
umputun merged commit 932a836 into master Nov 9, 2026
7 checks passed
@umputun
umputun deleted the bump-vulnerable-deps branch November 9, 2026 17:07
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