Skip to content

build: use Go 1.27.3 to fix GO-2026-6809 - #58

Merged
monody0007 merged 2 commits into
mainfrom
build/go1.27.3-x509
Oct 23, 2026
Merged

monody0007 merged 2 commits into
mainfrom
build/go1.27.3-x509

Conversation

@monody0007

Copy link
Copy Markdown
Contributor

Why

govulncheck reports GO-2026-6809 (CVE-2026-111943, crypto/x509 Certificate.Verify, fixed in Go 1.27.3) as reachable with Go 1.27.2: internal/server/server.go:252 limitedTLSConn.ConnectionState calls tls.Conn.HandshakeContext, which eventually calls x509.Certificate.Verify. Both govulncheck jobs in release-candidate fail on it, which blocks every PR.

What

  • go.mod: toolchain go1.27.2 -> toolchain go1.27.3. The go 1.27.1 floor is unchanged: it comes from tailscale.com, and a standard library fix is delivered through the toolchain directive.
  • Staticcheck: v0.8.1 could not read Go 1.27.2 or 1.27.3 export data. Staticcheck 2026.2.2 (v0.8.2) reads Go 1.27.3 export data and reports nothing on all three OSes, so the Go 1.27.1 exception is removed: STATICCHECK_VERSION: v0.8.2, the job uses go-version-file: go.mod, and the GOTOOLCHAIN overrides in the workflow and scripts/check.sh are gone.
  • AGENTS.md, CONTRIBUTING.md and docs/platforms.md describe the new toolchain; the changelog gets an Unreleased Security entry. Historical entries are unchanged.

Verification

Run locally with go1.27.3 selected from go.mod:

  • govulncheck ./... (v1.6.0 as pinned in CI, and v1.8.0): No vulnerabilities found. The same scan with Go 1.27.2 reports GO-2026-6809.
  • scripts/check.sh with staticcheck v0.8.2: all steps passed (build, vet on three OSes, gofmt, tidy, staticcheck on three OSes, manifest and notices checks, go test -count=1 ./...).

govulncheck reports GO-2026-6809 (crypto/x509 Certificate.Verify, fixed
in Go 1.27.3) as reachable from internal/server through
tls.Conn.HandshakeContext when built with Go 1.27.2, which fails both
govulncheck jobs in release-candidate.

Raise the toolchain directive to go1.27.3. The go directive stays at
1.27.1: that floor comes from tailscale.com, and a standard library fix
is delivered through the toolchain directive.

Staticcheck 2026.2.2 (v0.8.2) reads Go 1.27.3 export data, so the
Go 1.27.1 exception for that job is removed: pin v0.8.2, use
go-version-file: go.mod, and drop the GOTOOLCHAIN overrides in
scripts/check.sh. Update AGENTS.md, CONTRIBUTING.md, docs/platforms.md
and the changelog to match.
@monody0007
monody0007 requested a review from a team as a code owner October 23, 2026 07:53
…9 fix

Go 1.27.1 and 1.27.2 still compile the module but keep the vulnerable
crypto/x509 code when automatic toolchain selection is turned off.
@monody0007
monody0007 merged commit 7179f01 into main Oct 23, 2026
18 checks passed
@monody0007
monody0007 deleted the build/go1.27.3-x509 branch October 23, 2026 08:43
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