Bump golang.org/x/net and golang.org/x/text in api - #787
Merged
Conversation
CVE-2026-46600 requires golang.org/x/net >= 0.56.0 and CVE-2026-56852 requires golang.org/x/text >= 0.39.0 on the api module. Both go to the current release rather than the stated minimum so the next scan does not force a repeat bump. The module graph pulls x/crypto, x/sync and x/sys forward with them. Verified locally with Go 1.26.7: go mod verify passes, and go build ./... is clean under GOOS=linux GOARCH=amd64 CGO_ENABLED=0, matching the flags in api/Dockerfile.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Bumps the two
apidependencies that the Go toolchain bump in #785 could not reach.These were deliberately excluded from #785 because they need a regenerated
go.sum, and Gowas not installed on the machine that PR was prepared on. It is now, so this PR closes that
gap — and unlike the previous four, this one is build-verified.
Changes
golang.org/x/netgolang.org/x/textgolang.org/x/cryptogolang.org/x/syncgolang.org/x/sysWhy past the stated minimum
The scan asks for
x/net>= 0.56.0 andx/text>= 0.39.0. Both go to the current releaseinstead. Stopping at the minimum is what forces a second bump the following week — the same
trap #637 hit, where three CVEs needed >= 1.26.4 and two needed >= 1.26.5. The extra headroom
costs nothing here and the build is verified below.
x/crypto,x/syncandx/sysmoved because the module graph requires them, not by choice.They are included so
go.modandgo.sumstay internally consistent —go mod tidywouldproduce this regardless.
Testing
Run locally with Go 1.26.7, using the exact flags from
api/Dockerfile(
GOOS=linux GOARCH=amd64 CGO_ENABLED=0):go mod verifygo build ./...go vet ./...go vetfails, but it fails identically on unmodifiedcwbi-dev, so it is pre-existingand unrelated to this change. I verified by stashing the
go.mod/go.sumedits and re-running:That is a duplicate JSON tag in
api/models/download.go— thestatus_idkey is declaredtwice on the same struct, so one silently wins during marshalling. Worth fixing, but it is not
this PR's to fix and bundling it would muddy a security change. Flagging it rather than
touching it.
Still gate on
cwbi-test-build-push-api; a local build is not a substitute for the real imagebuild.
Related issues
Deliberately
Refs, notCloses. Both issues also listpg_featureserv, which is not fixedby this PR — #786 removes it, and the deployed service has to be deprovisioned before either
issue is genuinely resolved.
Refs USACE/cumulus-issue-tracking#30, refs USACE/cumulus-issue-tracking#39
go/stdlib,golang.org/x/netapiandasync_listenerdone (#785 + this).async_geoprocess/async_packagerdone in #783. Remaining:pg_featureserv.golang.org/x/textapidone here.async_geoprocess/async_packagerdone in #783. Remaining:pg_featureserv.Once #786 merges and the service is deprovisioned, both can be closed by hand.
What this leaves
After this, the only
fix:code-repowork still outstanding is:h24.3.0 -> 4.4.1, MEDIUM) — theasync_packagerhalf is a pin insetup.cfg; theasync_geoprocesshalf lives inUSACE/cumulus-geoproc, a separate repo.github.com/aws/aws-sdk-gov1, MEDIUM/LOW) — no upstream fix exists.Never patched on the v1 line; the fix is only in the v2 encryption client. Arrives indirectly
via
go-simple-asyncer. Either drop the dependency or risk-accept — the vulnerables3cryptopackage is not imported anywhere, so risk acceptance looks defensible, but itshould be written down rather than left implicit.