Skip to content

fix(security): bump Go to 1.26.10 - #1749

Open
kawacukennedy wants to merge 1 commit into
floatpane:masterfrom
kawacukennedy:fix/go-1.26.10
Open

kawacukennedy wants to merge 1 commit into
floatpane:masterfrom
kawacukennedy:fix/go-1.26.10

Conversation

@kawacukennedy

Copy link
Copy Markdown
Contributor

What?

Bump the pinned Go toolchain from 1.26.9 to 1.26.10:

  • go.mod: go 1.26.9 → go 1.26.10
  • All workflow setup-go pins that hard-code go-version: "1.26.9" (benchmarks, bot-build, ci, integration, nightly, release-rc, release, security) → 1.26.10.

Why?

The Security workflow's govulncheck job currently fails on master with a reachable standard-library advisory:

Vulnerability #1: GO-2026-6809
    Distrust compromised intermediate certificates in crypto/x509
  Standard library
    Found in: crypto/x509@go1.26.9
    Fixed in: crypto/x509@go1.26.10
  Example traces found:
    #1: fetcher/fetcher.go:932:35: fetcher.FetchEmailBodyFromMailbox calls
        pkcs7.PKCS7.VerifyWithChain, which eventually calls x509.Certificate.Verify

GO-2026-6809 was published after 1.26.9 and fixed in go1.26.10. Because email body fetching reaches x509.Certificate.Verify via pkcs7.PKCS7.VerifyWithChain, govulncheck classifies it as your code is affected rather than a module-only finding — so this is a genuine code path, not just a version warning.

The Security workflow pins the toolchain via actions/setup-go's go-version, so bumping go.mod alone is not sufficient; the workflow pins need to move in lockstep. This matches how the previous bump (1.26.7 → 1.26.9) was done.

Verification

With Go 1.26.10:

$ govulncheck ./...
=== Symbol Results ===

No vulnerabilities found.

Also ran, all green: go build ./..., go vet ./..., go test ./..., and golangci-lint run ./... (0 issues).

Fixes #1748

govulncheck (the Security workflow) fails on master with a
standard-library advisory:

  Vulnerability floatpane#1: GO-2026-6809
    Distrust compromised intermediate certificates in crypto/x509
    Found in: crypto/x509@go1.26.9
    Fixed in: crypto/x509@go1.26.10
    Trace: fetcher.FetchEmailBodyFromMailbox -> pkcs7.PKCS7.VerifyWithChain
           -> x509.Certificate.Verify

Since go.mod pinned go 1.26.9 and the fix shipped in go1.26.10, bump
the module's Go directive and the workflow setup-go pins accordingly.

govulncheck ./... now reports "No vulnerabilities found".
@kawacukennedy
kawacukennedy requested a review from a team as a code owner October 21, 2026 06:36
@floatpanebot floatpanebot added size/S Diff: 11–50 lines bug Something isn't working ci CI / build pipeline labels Oct 21, 2026

@floatpanebot floatpanebot 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.

Hi @kawacukennedy! Please fix the following issues with your PR:

  • Title: Is too long (48 characters). The PR title must be strictly under 40 characters.

@floatpanebot floatpanebot added the dependencies Dependency updates label Oct 21, 2026
@floatpanebot

Copy link
Copy Markdown
Member

Benchmark report — no significant change

Metrics worse: 0 · better: 0 (threshold: ±3%).

benchstat output
goos: linux
goarch: amd64
pkg: github.com/floatpane/matcha/backend
cpu: AMD EPYC 9V45 96-Core Processor                
                           │   old.txt    │               new.txt                │
                           │    sec/op    │    sec/op      vs base               │
ParseSearchQuery_Simple-4    1.514µ ± 53%   1.919µ ± 432%        ~ (p=0.310 n=6)
ParseSearchQuery_Complex-4   4.606µ ± 26%   3.299µ ±  39%  -28.38% (p=0.026 n=6)
TokenizeSearchQuery-4        2.190µ ± 85%   2.139µ ±  34%        ~ (p=0.699 n=6)
geomean                      2.481µ         2.384µ          -3.91%

                           │  old.txt   │              new.txt               │
                           │    B/op    │    B/op     vs base                │
ParseSearchQuery_Simple-4    26.00 ± 0%   26.00 ± 0%       ~ (p=1.000 n=6) ¹
ParseSearchQuery_Complex-4   762.0 ± 0%   762.0 ± 0%       ~ (p=1.000 n=6) ¹
TokenizeSearchQuery-4        176.0 ± 0%   176.0 ± 0%       ~ (p=1.000 n=6) ¹
geomean                      151.6        151.6       +0.00%
¹ all samples are equal

                           │  old.txt   │              new.txt               │
                           │ allocs/op  │ allocs/op   vs base                │
ParseSearchQuery_Simple-4    2.000 ± 0%   2.000 ± 0%       ~ (p=1.000 n=6) ¹
ParseSearchQuery_Complex-4   23.00 ± 0%   23.00 ± 0%       ~ (p=1.000 n=6) ¹
TokenizeSearchQuery-4        9.000 ± 0%   9.000 ± 0%       ~ (p=1.000 n=6) ¹
geomean                      7.453        7.453       +0.00%
¹ all samples are equal

pkg: github.com/floatpane/matcha/tui
                    │   old.txt    │              new.txt               │
                    │    sec/op    │    sec/op     vs base              │
LogPanelView-4        92.78µ ± 13%   94.38µ ± 12%       ~ (p=0.485 n=6)
SearchOverlayView-4   94.20µ ± 11%   95.02µ ± 10%       ~ (p=0.818 n=6)
InboxConstruction-4   551.0µ ± 15%   499.0µ ± 14%       ~ (p=0.310 n=6)
geomean               168.9µ         164.8µ        -2.41%

                    │    old.txt    │               new.txt               │
                    │     B/op      │     B/op       vs base              │
LogPanelView-4        44.67Ki ± 51%   44.67Ki ± 51%       ~ (p=1.000 n=6)
SearchOverlayView-4   44.67Ki ± 26%   33.19Ki ± 69%       ~ (p=0.491 n=6)
InboxConstruction-4   874.6Ki ±  0%   874.4Ki ±  0%       ~ (p=0.121 n=6)
geomean               120.4Ki         109.0Ki        -9.43%

                    │   old.txt   │              new.txt              │
                    │  allocs/op  │  allocs/op   vs base              │
LogPanelView-4         714.0 ± 0%    714.0 ± 0%       ~ (p=1.000 n=6)
SearchOverlayView-4    925.0 ± 0%    924.0 ± 0%       ~ (p=0.719 n=6)
InboxConstruction-4   3.484k ± 0%   3.482k ± 0%       ~ (p=0.130 n=6)
geomean               1.320k        1.319k       -0.06%

auto-generated by benchmarks.yml

@kawacukennedy kawacukennedy changed the title fix(security): bump Go to 1.26.10 (GO-2026-6809) fix(security): bump Go to 1.26.10 Oct 21, 2026
@floatpanebot
floatpanebot dismissed their stale review October 21, 2026 06:41

Formatting issues have been resolved. Thank you!

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working ci CI / build pipeline dependencies Dependency updates size/S Diff: 11–50 lines

Projects

None yet

Development

Successfully merging this pull request may close these issues.

govulncheck fails: GO-2026-6809 in Go stdlib (crypto/x509); need go 1.26.10

2 participants