Skip to content

fix(deps): bump x/text to v0.39.0 to clear GO-2026-5970 - #302

Merged
v0lkan merged 1 commit into
mainfrom
fix/govulncheck-x-text
Jul 26, 2026
Merged

fix(deps): bump x/text to v0.39.0 to clear GO-2026-5970#302
v0lkan merged 1 commit into
mainfrom
fix/govulncheck-x-text

Conversation

@v0lkan

@v0lkan v0lkan commented Jul 26, 2026

Copy link
Copy Markdown
Member

CI on main fails at the "Go - Lint" job, which runs make audit and so includes govulncheck. The failure is not caused by a code change. Run #300 (2026-07-18) passed and run #301 (2026-07-25) failed, but the merge in between never touched go.mod or go.sum, and golang.org/x/text was v0.37.0 on both sides. The advisory was published in the interval, so the build broke on a timer rather than on a commit.

GO-2026-5970 is an infinite loop on invalid input in golang.org/x/text. It is called rather than merely present, reached through recovery.sendShardsToKeepers -> net.Post -> norm.Form.*, so govulncheck exits non-zero and takes the job with it.

Bumps x/text v0.37.0 -> v0.39.0, which fixes it, and x/net v0.55.0 -> v0.56.0 to clear the uncalled GO-2026-5942 in the same pass. go mod tidy transitively lifts x/crypto to v0.53.0, x/sys to v0.46.0, and x/term to v0.44.0. No application code changes.

One finding is deliberately left behind. GO-2026-5932 reports that golang.org/x/crypto/openpgp is unmaintained and unsafe by design, with no fixed version: the package is deprecated, not patched, so no bump can clear it. It arrives transitively and SPIKE does not call it, so govulncheck exits 0 with it present.

That makes Round 1's "zero vulnerabilities total, not merely zero called" criterion unreachable, so the spec amends it rather than silently missing it. The standing bar is now zero called vulnerabilities plus a recorded justification for every uncalled one left in place, with clearing uncalled findings still preferred wherever a fixed version exists.

Verified with the same command CI runs: make audit exits 0, make test passes on the upgraded graph, and go build ./... is clean.

Spec: specs/vuln-remediation.md

CI on main fails at the "Go - Lint" job, which runs `make audit` and so
includes govulncheck. The failure is not caused by a code change. Run
#300 (2026-07-18) passed and run #301 (2026-07-25) failed, but the merge
in between never touched go.mod or go.sum, and golang.org/x/text was
v0.37.0 on both sides. The advisory was published in the interval, so
the build broke on a timer rather than on a commit.

GO-2026-5970 is an infinite loop on invalid input in golang.org/x/text.
It is called rather than merely present, reached through
recovery.sendShardsToKeepers -> net.Post -> norm.Form.*, so govulncheck
exits non-zero and takes the job with it.

Bumps x/text v0.37.0 -> v0.39.0, which fixes it, and x/net v0.55.0 ->
v0.56.0 to clear the uncalled GO-2026-5942 in the same pass. `go mod
tidy` transitively lifts x/crypto to v0.53.0, x/sys to v0.46.0, and
x/term to v0.44.0. No application code changes.

One finding is deliberately left behind. GO-2026-5932 reports that
golang.org/x/crypto/openpgp is unmaintained and unsafe by design, with
no fixed version: the package is deprecated, not patched, so no bump can
clear it. It arrives transitively and SPIKE does not call it, so
govulncheck exits 0 with it present.

That makes Round 1's "zero vulnerabilities total, not merely zero
called" criterion unreachable, so the spec amends it rather than
silently missing it. The standing bar is now zero *called*
vulnerabilities plus a recorded justification for every uncalled one
left in place, with clearing uncalled findings still preferred wherever
a fixed version exists.

Verified with the same command CI runs: `make audit` exits 0, `make
test` passes on the upgraded graph, and `go build ./...` is clean.

Spec: specs/vuln-remediation.md
Signed-off-by: Volkan Özçelik <volkan.ozcelik@broadcom.com>
@v0lkan v0lkan self-assigned this Jul 26, 2026
@v0lkan
v0lkan merged commit f6b8aa9 into main Jul 26, 2026
14 checks passed
@v0lkan
v0lkan deleted the fix/govulncheck-x-text branch July 26, 2026 03:02
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.

1 participant