security: pin toolchain to go1.25.12 (fixes 1 critical + 12 high stdlib CVEs) - #293
Merged
Merged
Conversation
Every advisory flagged for this repo in the Jul 2026 dependency scan is a Go stdlib issue -- 1 CRITICAL and 12 HIGH, all against the declared go 1.25.3. Pinning the toolchain clears all 13. CRITICAL: CVE-2025-68121 (9.1) unexpected session resumption in crypto/tls (fix 1.24.13 / 1.25.7) HIGH (12): CVE-2026-39822, CVE-2025-61729, CVE-2025-61726, CVE-2026-25679, CVE-2026-32283, CVE-2026-32281, CVE-2026-32280, CVE-2026-33814, CVE-2026-39836, CVE-2026-42499, CVE-2026-33811, CVE-2026-39820. go1.25.12 is the current 1.25 patch and satisfies every fix line above. CVE-2026-39822 is the binding constraint: its fix is exactly 1.25.12, so nothing lower would clear the full set. The go directive is left at 1.25.3 -- it expresses the minimum language version and does not need to move. Only the toolchain is pinned, which is what determines the stdlib actually compiled in. CI already installed the newest 1.25.x, so in practice CI builds were not vulnerable; the exposure was the declared floor, which is what the scanner reads and what any local or release build without an explicit pin would honour. Also bumps golang.org/x/text v0.33.0 -> v0.39.0 for GO-2026-5970, which was reachable (command/auth/status/status.go:94 -> fmt.Fprintln -> norm.Form.Properties). Not in the scan, but reachable and free to fix. govulncheck: 0 reachable vulnerabilities. Verified: go build, go vet, and the full test suite pass. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
|
|
Overall Grade |
Security Reliability Complexity Hygiene Coverage |
Code Review Summary
| Analyzer | Status | Updated (UTC) | Details |
|---|---|---|---|
| Go | Jul 31, 2026 2:25p.m. | Review ↗ | |
| Secrets | Jul 31, 2026 2:25p.m. | Review ↗ | |
| Code coverage | Jul 31, 2026 2:25p.m. | Review ↗ |
Code Coverage Summary
| Language | Line Coverage (Overall) |
|---|---|
| Aggregate | 25.4% |
| Go | 25.4% [✓ above threshold] |
➟ Additional coverage metrics may have been reported. See full coverage report ↗
Important
AI Review is run only on demand for your team. We're only showing results of static analysis review right now. To trigger AI Review, comment @deepsourcebot review on this thread.
unnat-deepsource
approved these changes
Jul 31, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Every advisory flagged for this repo in the Jul 2026 dependency scan is a Go stdlib issue — 1
CRITICALand 12HIGH, all against the declaredgo 1.25.3. A single toolchain pin clears all 13.toolchaingo 1.25.3)go1.25.12golang.org/x/textCVEs fixed
CRITICAL
CVE-2025-68121(CVSS 9.1) — unexpected session resumption incrypto/tls(fix 1.24.13 / 1.25.7)HIGH (12) —
CVE-2026-39822,CVE-2025-61729,CVE-2025-61726,CVE-2026-25679,CVE-2026-32283,CVE-2026-32281,CVE-2026-32280,CVE-2026-33814,CVE-2026-39836,CVE-2026-42499,CVE-2026-33811,CVE-2026-39820go1.25.12is the current 1.25 patch and satisfies every fix line above.CVE-2026-39822is the binding constraint — its fix is exactly 1.25.12, so nothing lower clears the full set.Why only the toolchain moves
The
godirective stays at1.25.3. It expresses the minimum language version and doesn't need to change; the toolchain is what determines the stdlib actually compiled in.Worth being precise about the real-world exposure: CI uses
setup-gowith'1.25', which resolves to the newest 1.25.x — so CI builds were most likely already getting a patched stdlib. What was actually vulnerable was the declared floor: what the scanner reads, and what any local build or release build without an explicit pin would honour. This makes the guarantee explicit rather than incidental.Also included
golang.org/x/textv0.33.0 → v0.39.0 forGO-2026-5970, which govulncheck flags as reachable:Not in the scan, but reachable and free to fix alongside.
Verification
go build ./...,go vet ./...— passgo test ./...— all packages pass (unchanged from baseline)govulncheck ./...— 0 reachable vulnerabilitiesTwo residual advisories remain in required modules, both unreachable and neither flagged in the scan.
🤖 Generated with Claude Code