Skip to content

fix: build against Go 1.26.6 to clear four reachable stdlib advisories - #37

Merged
patramsey merged 1 commit into
mainfrom
fix/go-1.26.6-stdlib-vulns
Aug 18, 2026
Merged

fix: build against Go 1.26.6 to clear four reachable stdlib advisories#37
patramsey merged 1 commit into
mainfrom
fix/go-1.26.6-stdlib-vulns

Conversation

@patramsey

Copy link
Copy Markdown
Owner

What broke

The Vulnerabilities job failed on main at 70571c8 — the merge of #36, which changed nothing but .goreleaser.yaml. The diff wasn't the cause.

govulncheck found four standard-library advisories reachable from this binary, all fixed in go1.26.6:

Advisory Issue Example trace
GO-2026-6218 quadratic complexity in net/url.resolvePath gen.NewZoneCheckRequestWithBodyurl.URL.Parse
GO-2026-6090 unbounded post-handshake messages in crypto/tls retryTransport.RoundTriptls.Conn.HandshakeContext
GO-2026-5972 recursion depth in encoding/asn1 Spinner.Stopsync.Once.Doasn1.Unmarshal
GO-2026-5026 ASCII-only Punycode labels in net/http IDNA handling gen.Client.ZoneCheckhttp.Client.Do

Three were filed 2026-08-13 at 21:43 UTC, roughly nineteen hours after that branch's last green run. The code stood still and the advisory database moved — which is the argument for running this on every push rather than only when something changes.

The fix

setup-go resolves the toolchain from the go directive in go.mod, and the job sets GOTOOLCHAIN=local, so CI builds against exactly that patch release and reports every stdlib advisory filed against it. Bumping the directive to 1.26.6 is both the fix and the reason that directive carries a patch version at all.

The govulncheck step now says so in a comment, so the next person to see this fail looks at the standard library before hunting through a diff that isn't at fault.

Verification

Run locally on go1.26.6:

  • govulncheck ./...No vulnerabilities found. The two remaining findings are in modules we require but don't call.
  • go test -count=1 ./... → all 18 packages pass
  • make lint → 0 issues
  • make verify-generate → generated code up to date
  • go mod tidy → no further changes (the release job's before hook runs this)

Note

This raises the minimum build requirement to Go 1.26.6, documented in CONTRIBUTING.md. Anyone on GOTOOLCHAIN=auto (the default) downloads it transparently; the pin only bites where a toolchain is fixed, as in CI.

Nothing here changes runtime behavior — same code, newer compiler.

CI's Vulnerabilities job went red on main at 70571c8 — a commit that
touched only .goreleaser.yaml. The diff was not the cause. govulncheck
found four standard-library advisories reachable from this binary, all
fixed in go1.26.6:

  GO-2026-6218  quadratic complexity in net/url.resolvePath
  GO-2026-6090  unbounded post-handshake messages in crypto/tls
  GO-2026-5972  recursion depth in encoding/asn1
  GO-2026-5026  ASCII-only Punycode labels in net/http's IDNA handling

Three were filed on 2026-08-13 at 21:43 UTC, about nineteen hours after
that branch's last green run. So the code stood still and the advisory
database moved — which is the whole point of running this on every push
rather than only when something changes.

setup-go resolves the toolchain from the `go` directive in go.mod, and
the job sets GOTOOLCHAIN=local, so CI builds against exactly that patch
release. Bumping the directive to 1.26.6 is therefore both the fix and
the reason the directive carries a patch version in the first place; the
govulncheck step now says so, so the next person to see this fail looks
at the stdlib before hunting through a diff that is not at fault.

Verified locally on go1.26.6: govulncheck reports no vulnerabilities,
the remaining two findings being in modules we require but do not call.
Tests, lint, verify-generate, and go mod tidy are all clean.

Raises the minimum build requirement to Go 1.26.6.
@patramsey
patramsey merged commit d9fa1d2 into main Aug 18, 2026
3 checks passed
@patramsey
patramsey deleted the fix/go-1.26.6-stdlib-vulns branch August 18, 2026 03:13
@codecov

codecov Bot commented Aug 18, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

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