Skip to content

chore: bump Go toolchain to 1.26.5 for GO-2026-5856 - #683

Merged
unclesp1d3r merged 2 commits into
mainfrom
chore/bump-go-toolchain-1.26.5
Jul 17, 2026
Merged

chore: bump Go toolchain to 1.26.5 for GO-2026-5856#683
unclesp1d3r merged 2 commits into
mainfrom
chore/bump-go-toolchain-1.26.5

Conversation

@unclesp1d3r

Copy link
Copy Markdown
Member

Summary

govulncheck is failing the Security workflow on every open PR (#682, #681, #680, #655) because GO-2026-5856 — a crypto/tls Encrypted Client Hello privacy leak in the Go standard library — is reachable from sanitizer.SanitizeXML via io.ReadAll and is present in go1.26.4. The fix shipped in go1.26.5.

Changes

  • Bump go.mod toolchain from go1.26.4 to go1.26.5
  • Bump the mise.toml Go pin (and mise.lock) to match
  • Migrate the errors.As call in internal/config/config.go to Go 1.26's errors.AsType, flagged by the modernize pass under the new toolchain. The intentionally discarded match value carries a targeted, explained //nolint:errcheck (the repo enables check-blank); no linter configuration was changed.

Test plan

  • just ci-check passes locally (lint, modernize, tests, race detector)
  • govulncheck ./... reports no vulnerabilities under go1.26.5
  • CI Security workflow green on this PR

AI Disclosure

Used Claude Code (Fable 5) to diagnose the govulncheck failure and draft this change. All changes reviewed and verified locally per AI_POLICY.md.

govulncheck fails on every open PR because GO-2026-5856 (crypto/tls
Encrypted Client Hello privacy leak) is reachable from
sanitizer.SanitizeXML via io.ReadAll and is present in go1.26.4.
Fixed in go1.26.5, so bump the go.mod toolchain and the mise pin.

The newer toolchain's modernize pass also flags the errors.As call in
internal/config; migrate it to errors.AsType with a targeted errcheck
suppression (check-blank flags the intentionally discarded match value).

Signed-off-by: UncleSp1d3r <unclesp1d3r@evilbitlabs.io>
Copilot AI review requested due to automatic review settings July 17, 2026 02:42
@dosubot dosubot Bot added size:XS This PR changes 0-9 lines, ignoring generated files. dependencies Pull requests that update a dependency file go Pull requests that update go code security Security-related features and issues labels Jul 17, 2026
@coderabbitai

coderabbitai Bot commented Jul 17, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Repository YAML (base), Repository UI (inherited), Organization UI (inherited)

Review profile: ASSERTIVE

Plan: Pro

Run ID: 5d3f3e0b-b447-4346-835b-b7ef0d62420a

📥 Commits

Reviewing files that changed from the base of the PR and between b8fc482 and 4f71b4e.

⛔ Files ignored due to path filters (1)
  • mise.lock is excluded by !**/*.lock
📒 Files selected for processing (3)
  • go.mod
  • internal/config/config.go
  • mise.toml
🔗 Linked repositories identified

CodeRabbit considers these linked repositories for cross-repo context during reviews:

  • EvilBit-Labs/opnConfigGenerator (manual)

Summary by CodeRabbit

  • Bug Fixes

    • Improved handling of missing configuration files so they remain non-blocking while other configuration errors continue to be reported.
  • Chores

    • Updated the supported Go toolchain to version 1.26.5.

Walkthrough

The change updates Go toolchain pins from 1.26.4 to 1.26.5 and changes Viper missing-config detection to use errors.AsType, preserving existing error-handling behavior.

Changes

Configuration and toolchain updates

Layer / File(s) Summary
Viper config error matching
internal/config/config.go
LoadConfigWithViper uses errors.AsType to identify missing configuration files while returning other read errors.
Go toolchain version alignment
go.mod, mise.toml
The configured Go toolchain version is updated to 1.26.5 in both files.

Estimated code review effort: 2 (Simple) | ~10 minutes

Suggested labels: type:bug

Suggested reviewers: copilot

Poem

Viper checks the errors with care,
Go’s toolchain climbs through the air.
Pins align bright,
Configs read right,
And audits find a tidy pair.

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title uses conventional commit format and accurately summarizes the Go toolchain bump and security fix.
Description check ✅ Passed The description includes a clear summary, changes, test plan, and disclosure, though several template sections are left unfilled.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Go Exported-Symbol Godoc ✅ Passed The patch only changes LoadConfigWithViper’s body, and that exported function’s doc comment is present and starts with its name; all exported declarations in the file are documented.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
✨ Simplify code
  • Create PR with simplified code
  • Commit simplified code in branch chore/bump-go-toolchain-1.26.5

Comment @coderabbitai help to get the list of available commands.

@mergify

mergify Bot commented Jul 17, 2026

Copy link
Copy Markdown
Contributor

Merge Protections

🔴 1 of 4 protections blocking · waiting on 🙋 you

Protection Waiting on
🔴 🚦 Auto-queue 🙋 you
🟢 Enforce conventional commit
🟢 Full CI must pass
🟢 Do not merge outdated PRs

🔴 🚦 Auto-queue

Waiting for

  • -files ~= ^(?!\.github/workflows/)
This rule is failing.

When all merge protections are satisfied and these conditions match, this pull request will be queued automatically.

  • any of:
    • all of:
      • author = dosubot[bot]
      • base = main
      • label != do-not-merge
    • all of:
      • -files ~= ^(?!\.github/workflows/)
      • author = dependabot[bot]
      • base = main
      • label != do-not-merge
    • all of:
      • author = dependabot[bot]
      • base = main
      • label != do-not-merge

Show 3 satisfied protections

🟢 Enforce conventional commit

Require conventional commit format per https://www.conventionalcommits.org/en/v1.0.0/. Skipped for dependabot and dosubot.

  • title ~= ^(fix|feat|docs|style|refactor|perf|test|build|ci|chore|revert)(?:\(.+\))?!?:

🟢 Full CI must pass

All CI checks must pass. Activates for non-bot authors, or dependabot when files exist outside .github/workflows/.

  • check-success = Build
  • check-success = Coverage
  • check-success = Integration Tests
  • check-success = Lint
  • check-success = Test (macos-latest, stable)
  • check-success = Test (ubuntu-latest, stable)
  • check-success = Test (windows-latest, stable)

🟢 Do not merge outdated PRs

Make sure PRs are within 10 commits of the base branch before merging

  • #commits-behind <= 10

@coderabbitai coderabbitai Bot added the type:bug Bug or defect that needs fixing label Jul 17, 2026

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR updates the repository’s Go toolchain to go1.26.5 to address GO-2026-5856 (a crypto/tls ECH privacy leak) that is currently causing govulncheck failures in the Security workflow, and aligns local tool pins accordingly.

Changes:

  • Bump the Go toolchain from go1.26.4go1.26.5 in go.mod.
  • Update the mise Go pin and lockfile to match 1.26.5.
  • Modernize a config-file-not-found detection branch to use Go 1.26’s errors.AsType.

Reviewed changes

Copilot reviewed 3 out of 4 changed files in this pull request and generated 1 comment.

File Description
go.mod Updates the module toolchain directive to go1.26.5 to pick up the stdlib security fix.
mise.toml Pins go = "1.26.5" for consistent local/dev tooling.
mise.lock Updates Go download URLs and checksums for all supported platforms to 1.26.5.
internal/config/config.go Switches errors.As usage to errors.AsType for typed matching under the new toolchain.

Comment thread internal/config/config.go
Copilot AI review requested due to automatic review settings July 17, 2026 02:45
@unclesp1d3r

Copy link
Copy Markdown
Member Author

@Mergifyio queue

@mergify

mergify Bot commented Jul 17, 2026

Copy link
Copy Markdown
Contributor

Merge Queue Status

  • 🟠 Waiting for queue conditions
  • ⏳ Enter queue
  • ⏳ Run checks
  • ⏳ Merge
Waiting for
  • -closed [📌 queue requirement]
  • any of: [🔀 queue conditions]
    • all of: [📌 queue conditions of queue rule default]
      • github-code-owner-review-satisfied [🛡 GitHub repository ruleset rule Main]
      • github-code-owner-review-satisfied [🛡 GitHub repository ruleset rule ossf_best_practices]
    • all of: [📌 queue conditions of queue rule dependabot-workflows]
      • -files ~= ^(?!\.github/workflows/)
      • github-code-owner-review-satisfied [🛡 GitHub repository ruleset rule Main]
      • github-code-owner-review-satisfied [🛡 GitHub repository ruleset rule ossf_best_practices]
    • all of: [📌 queue conditions of queue rule dependabot]
      • github-code-owner-review-satisfied [🛡 GitHub repository ruleset rule Main]
      • github-code-owner-review-satisfied [🛡 GitHub repository ruleset rule ossf_best_practices]
    • all of: [📌 queue conditions of queue rule dosubot]
      • github-code-owner-review-satisfied [🛡 GitHub repository ruleset rule Main]
      • github-code-owner-review-satisfied [🛡 GitHub repository ruleset rule ossf_best_practices]
All conditions
  • -closed [📌 queue requirement]
  • any of [🔀 queue conditions]:
    • all of [📌 queue conditions of queue rule default]:
      • github-code-owner-review-satisfied [🛡 GitHub repository ruleset rule Main]
      • github-code-owner-review-satisfied [🛡 GitHub repository ruleset rule ossf_best_practices]
      • github-review-approved [🛡 GitHub repository ruleset rule Main]
      • github-review-approved [🛡 GitHub repository ruleset rule ossf_best_practices]
      • all of [🛡 Merge Protections rule Do not merge outdated PRs]:
        • #commits-behind <= 10
      • all of [🛡 Merge Protections rule Enforce conventional commit]:
        • title ~= ^(fix|feat|docs|style|refactor|perf|test|build|ci|chore|revert)(?:\(.+\))?!?:
      • all of [🛡 Merge Protections rule Full CI must pass]:
        • check-success = Build
        • check-success = Coverage
        • check-success = Integration Tests
        • check-success = Lint
        • check-success = Test (macos-latest, stable)
        • check-success = Test (ubuntu-latest, stable)
        • check-success = Test (windows-latest, stable)
      • any of [🛡 GitHub repository ruleset rule Main]:
        • check-success = @mergify/Mergify Merge Protections
        • check-neutral = @mergify/Mergify Merge Protections
        • check-skipped = @mergify/Mergify Merge Protections
    • all of [📌 queue conditions of queue rule dependabot-workflows]:
      • -files ~= ^(?!\.github/workflows/)
      • author = dependabot[bot]
      • github-code-owner-review-satisfied [🛡 GitHub repository ruleset rule Main]
      • github-code-owner-review-satisfied [🛡 GitHub repository ruleset rule ossf_best_practices]
      • base = main
      • github-review-approved [🛡 GitHub repository ruleset rule Main]
      • github-review-approved [🛡 GitHub repository ruleset rule ossf_best_practices]
      • label != do-not-merge
      • all of [🛡 Merge Protections rule Do not merge outdated PRs]:
        • #commits-behind <= 10
      • all of [🛡 Merge Protections rule Enforce conventional commit]:
        • title ~= ^(fix|feat|docs|style|refactor|perf|test|build|ci|chore|revert)(?:\(.+\))?!?:
      • all of [🛡 Merge Protections rule Full CI must pass]:
        • check-success = Build
        • check-success = Coverage
        • check-success = Integration Tests
        • check-success = Lint
        • check-success = Test (macos-latest, stable)
        • check-success = Test (ubuntu-latest, stable)
        • check-success = Test (windows-latest, stable)
      • any of [🛡 GitHub repository ruleset rule Main]:
        • check-success = @mergify/Mergify Merge Protections
        • check-neutral = @mergify/Mergify Merge Protections
        • check-skipped = @mergify/Mergify Merge Protections
    • all of [📌 queue conditions of queue rule dependabot]:
      • author = dependabot[bot]
      • github-code-owner-review-satisfied [🛡 GitHub repository ruleset rule Main]
      • github-code-owner-review-satisfied [🛡 GitHub repository ruleset rule ossf_best_practices]
      • base = main
      • github-review-approved [🛡 GitHub repository ruleset rule Main]
      • github-review-approved [🛡 GitHub repository ruleset rule ossf_best_practices]
      • label != do-not-merge
      • all of [🛡 Merge Protections rule Do not merge outdated PRs]:
        • #commits-behind <= 10
      • all of [🛡 Merge Protections rule Enforce conventional commit]:
        • title ~= ^(fix|feat|docs|style|refactor|perf|test|build|ci|chore|revert)(?:\(.+\))?!?:
      • all of [🛡 Merge Protections rule Full CI must pass]:
        • check-success = Build
        • check-success = Coverage
        • check-success = Integration Tests
        • check-success = Lint
        • check-success = Test (macos-latest, stable)
        • check-success = Test (ubuntu-latest, stable)
        • check-success = Test (windows-latest, stable)
      • any of [🛡 GitHub repository ruleset rule Main]:
        • check-success = @mergify/Mergify Merge Protections
        • check-neutral = @mergify/Mergify Merge Protections
        • check-skipped = @mergify/Mergify Merge Protections
    • all of [📌 queue conditions of queue rule dosubot]:
      • author = dosubot[bot]
      • github-code-owner-review-satisfied [🛡 GitHub repository ruleset rule Main]
      • github-code-owner-review-satisfied [🛡 GitHub repository ruleset rule ossf_best_practices]
      • base = main
      • github-review-approved [🛡 GitHub repository ruleset rule Main]
      • github-review-approved [🛡 GitHub repository ruleset rule ossf_best_practices]
      • label != do-not-merge
      • all of [🛡 Merge Protections rule Do not merge outdated PRs]:
        • #commits-behind <= 10
      • all of [🛡 Merge Protections rule Enforce conventional commit]:
        • title ~= ^(fix|feat|docs|style|refactor|perf|test|build|ci|chore|revert)(?:\(.+\))?!?:
      • all of [🛡 Merge Protections rule Full CI must pass]:
        • check-success = Build
        • check-success = Coverage
        • check-success = Integration Tests
        • check-success = Lint
        • check-success = Test (macos-latest, stable)
        • check-success = Test (ubuntu-latest, stable)
        • check-success = Test (windows-latest, stable)
      • any of [🛡 GitHub repository ruleset rule Main]:
        • check-success = @mergify/Mergify Merge Protections
        • check-neutral = @mergify/Mergify Merge Protections
        • check-skipped = @mergify/Mergify Merge Protections
  • -conflict [📌 queue requirement]
  • -draft [📌 queue requirement]
  • any of [📌 queue -> configuration change requirements]:
    • -mergify-configuration-changed
    • check-success = Configuration changed
  • any of [📌 queue requirement]:
    • check-success = Mergify Merge Protections
    • check-neutral = Mergify Merge Protections
    • check-skipped = Mergify Merge Protections

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 3 out of 4 changed files in this pull request and generated no new comments.

@codecov

codecov Bot commented Jul 17, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

@unclesp1d3r
unclesp1d3r merged commit c6a52fa into main Jul 17, 2026
26 checks passed
@unclesp1d3r
unclesp1d3r deleted the chore/bump-go-toolchain-1.26.5 branch July 17, 2026 02:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file go Pull requests that update go code security Security-related features and issues size:XS This PR changes 0-9 lines, ignoring generated files. type:bug Bug or defect that needs fixing

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants