Skip to content

Conversation

@richardwooding
Copy link
Contributor

Summary

Upgrades cel2sql from Go 1.24.0 to Go 1.25.5 and updates golang.org/x/crypto from v0.37.0 to v0.45.0, fixing all 21 security vulnerabilities detected by OSV Scanner.

Vulnerabilities Fixed

Go Stdlib Vulnerabilities (16 total)

Fixed by upgrading from Go 1.24.0 → 1.25.5:

  • GO-2025-3563, GO-2025-3749, GO-2025-3750, GO-2025-3751
  • GO-2025-3849, GO-2025-3956, GO-2025-4007, GO-2025-4008
  • GO-2025-4009, GO-2025-4010, GO-2025-4011, GO-2025-4012
  • GO-2025-4013, GO-2025-4014, GO-2025-4155, GO-2025-4175

golang.org/x/crypto Vulnerabilities (3 total)

Fixed by upgrading from v0.37.0 → v0.45.0:

  • GO-2025-4135 (CVE-2025-47914): SSH Agent servers don't validate message size, causing panic
  • GO-2025-4134 (CVE-2025-58181): SSH servers allow unbounded memory consumption via GSSAPI auth
  • GO-2025-4116 (CVE-2025-47913): SSH clients panic when receiving unexpected SSHAGENTSUCCESS

Uncalled Vulnerabilities (2 total)

  • GO-2025-4006, GO-2025-4015 (in stdlib 1.24.0, not called by cel2sql code)

Changes Made

Core Dependencies

  • go.mod: Updated go directive from 1.24.01.25.5
  • go.mod: Updated golang.org/x/crypto from v0.37.0v0.45.0
  • Also upgraded related dependencies: golang.org/x/sync, golang.org/x/sys, golang.org/x/text

GitHub Actions Workflows

Updated all workflows to use Go 1.25.x:

  • .github/workflows/ci.yml: Test matrix now ['1.24.x', '1.25.x'] (maintains 1.24 compatibility)
  • .github/workflows/security.yml: Updated all 3 jobs (govulncheck, osv-scanner, gosec)
  • .github/workflows/golangci-lint.yml: Updated to 1.25.x
  • .github/workflows/fuzz.yml: Updated both fuzz testing jobs
  • .github/workflows/dependency-update.yml: Updated to 1.25.x
  • .github/workflows/release.yml: Updated to 1.25.x

Testing

✅ All tests pass with 92.1% coverage
✅ Tested locally with Go 1.25.4
✅ CI/CD will verify against both Go 1.24.x and 1.25.x
✅ OSV Scanner should now pass with exit code 0

References

Backward Compatibility

  • CI matrix includes Go 1.24.x to maintain compatibility
  • No breaking changes in Go 1.25.5
  • All existing functionality preserved

🤖 Generated with Claude Code

richardwooding and others added 3 commits January 8, 2026 12:16
This PR upgrades the project from Go 1.24.0 to Go 1.25.5 and updates
golang.org/x/crypto from v0.37.0 to v0.45.0, fixing all 21 security
vulnerabilities detected by OSV Scanner.

Vulnerabilities Fixed:
- 16 Go stdlib vulnerabilities (GO-2025-3563, GO-2025-3749, GO-2025-3750,
  GO-2025-3751, GO-2025-3849, GO-2025-3956, GO-2025-4007, GO-2025-4008,
  GO-2025-4009, GO-2025-4010, GO-2025-4011, GO-2025-4012, GO-2025-4013,
  GO-2025-4014, GO-2025-4155, GO-2025-4175)
- 3 golang.org/x/crypto vulnerabilities:
  * GO-2025-4135 (CVE-2025-47914): SSH Agent message size validation
  * GO-2025-4134 (CVE-2025-58181): SSH GSSAPI unbounded memory
  * GO-2025-4116 (CVE-2025-47913): SSH client panic on SSHAGENTSUCCESS
- 2 uncalled stdlib vulnerabilities (GO-2025-4006, GO-2025-4015)

Changes:
- go.mod: Update go directive from 1.24.0 to 1.25.5
- go.mod: Update golang.org/x/crypto from v0.37.0 to v0.45.0
- Updated all GitHub Actions workflows to use Go 1.25.x
- CI matrix now tests against Go 1.24.x and 1.25.x for compatibility
- All tests pass with 92.1% coverage

References:
- Go 1.25 Release: https://go.dev/blog/go1.25
- GO-2025-4135: https://pkg.go.dev/vuln/GO-2025-4135
- GO-2025-4134: https://pkg.go.dev/vuln/GO-2025-4134

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <[email protected]>
The linting job was failing because golangci-lint v2.2.1 was built with
Go 1.24 and cannot lint projects targeting Go 1.25.5.

Changes:
- Update golangci-lint-action from v7 to v9
- Update golangci-lint version from v2.2.1 to v2.6

golangci-lint v2.6 is built with Go 1.25 and can successfully lint
Go 1.25.5 projects.

References:
- golangci/golangci-lint#5873
- https://github.com/golangci/golangci-lint-action

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <[email protected]>
- Remove Go 1.24.x from CI test matrix (only Go 1.25.x required now)
- Fix perfsprint linting errors in benchmark_test.go and output_length_test.go
  by replacing string concatenation in loops with strings.Builder

This completes the Go 1.25.5 upgrade by removing backward compatibility
with Go 1.24.x, which is no longer needed since go.mod requires 1.25.5.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <[email protected]>
@richardwooding richardwooding merged commit a8b5ef8 into main Jan 8, 2026
9 checks passed
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