security: bump Go to 1.26.6 and grpc to v1.82.1 to fix reported vulnerabilities - #150
Open
eastagiletracker wants to merge 1 commit into
Open
Conversation
…rabilities Addresses the 7 vulnerabilities reported by govulncheck v1.1.4 that fail the Vulnerability Check job of the Security workflow on master, and the same govulncheck gate that runs in every release.yml job before binaries are built. Six are standard-library issues fixed in go1.26.6: GO-2026-6218 (net/url), GO-2026-6091 (html/template), GO-2026-6090 (crypto/tls), GO-2026-6089 and GO-2026-5026 (net/http), GO-2026-5972 (encoding/asn1), reachable via proxy.Server.Start, proxy.ForwardProxy.ServeHTTP, router.AllowListMiddleware.ServeHTTP and crypto.GenerateServerCSR. The seventh, GO-2026-6061 in google.golang.org/grpc, is fixed in v1.82.1. grpc is an indirect requirement reached from internal/telemetry through the otlptracehttp exporter. Bumps all modules and the workspace: go.mod, sdk/go.mod, plugins/contrib/go.mod, plugins/contrib/microsoft/keyvault/go.mod, admin/go.mod, go.work.
|
|
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.
This PR proposes bumping the pinned Go toolchain to 1.26.6 and
google.golang.org/grpcto v1.82.1 sogovulncheckpasses again. We include this PR work along with a full history of your repo at https://eastagiletracker.com/projects/361. You can sign in with your GitHub ID to claim ownership of the project.What's broken
The
Vulnerability Checkjob of theSecurityworkflow has been failing onmastersince the 2026-08-03 scheduled run; the most recent one (run 31981346247, 2026-08-17) exits 3 with seven advisories. The samegovulncheckgate runs inrelease.ymlbefore any binary is built, in all four release jobs (core, sdk, contrib, admin), so a tag pushed today would fail at the vulnerability-check step rather than publish.Six of the seven are standard-library issues, all fixed in go1.26.6, and all reachable from code that runs in the proxy:
GO-2026-6090(crypto/tls) viaproxy.Server.Startandproxy.ForwardProxy.ServeHTTP,GO-2026-6089andGO-2026-5026(net/http) viaproxy.Server.Serveandhttputil.ReverseProxy.RoundTrip,GO-2026-6091(html/template) viarouter.AllowListMiddleware.ServeHTTP,GO-2026-5972(encoding/asn1) viacrypto.GenerateServerCSR, andGO-2026-6218(net/url) viachaperone.exchangeCode. The seventh,GO-2026-6061, is ingoogle.golang.org/grpcv1.81.1 and is fixed in v1.82.1;go mod why -m google.golang.org/grpcresolves it throughinternal/telemetryand theotlptracehttpexporter, so it is in the live import graph rather than a test-only path.Reproduction at current HEAD
On
masterat 8a4338e, with the toolchain yourgo.modselects and thegovulncheckversion your workflow pins:The
sdk,plugins/contribandadminmodules report 1, 4 and 5 of the same advisories respectively, so every module's release job is affected.The change
The
godirective moves from 1.26.5 to 1.26.6 ingo.mod,sdk/go.mod,plugins/contrib/go.mod,plugins/contrib/microsoft/keyvault/go.mod,admin/go.modandgo.work— the same set of files, in the same shape, as d8b3d6b (security: bump Go to 1.26.5 to fix stdlib vulnerabilities, #138). Because your workflows resolve the toolchain withgo-version-file: go.mod, this is what actually selects the standard library compiled into the released binaries:go version -m bin/chaperonereportsgo1.26.6after the change. The indirectgoogle.golang.org/grpcrequirement moves to v1.82.1, the version the advisory names, andgo mod tidyleaves the rest of the graph untouched — the whole diff is nine lines.One deliberate trade, since this is your call to make: pinning a patch release in
sdk/go.modraises the minimum toolchain for plugin authors consuming the published SDK. That is the same trade #138 already made, so this keeps your existing convention rather than introducing a new one; if you would rather the SDK float atgo 1.26, that line is easy to drop from this PR.Verification
After the change,
govulncheckexits 0 on all four modules, run exactly assecurity.ymlruns them:That check is the regression test here: it is red on the baseline tree and green on this one, and it is your own gate rather than a new one added by this PR. Since the change alters the compiler for everything, I also ran the rest of your suite on both trees and compared the result sets rather than a pass/fail:
go test ./...across the root,sdk,plugins/contrib,plugins/contrib/microsoft/keyvaultandadminmodules gives 31 packagesokand zero failures before the change and 31okand zero failures after, an identical set. All three binaries (chaperone,chaperone-onboard,chaperone-admin) build withCGO_ENABLED=0, andcmd/chaperonecross-compiles cleanly for each platformrelease.ymltargets: linux/amd64, linux/arm64, darwin/amd64, darwin/arm64 and windows/amd64.Your
detect-code-changesaction countsgo.modas a code change, so theSecurityandCIworkflows both run on this PR — its own check run is the most direct confirmation available.How this was managed
This work was tracked as a single story, Bump Go toolchain pin to 1.26.6 and grpc to 1.82.1 to clear the failing vulnerability gate, on a board imported from this repository's own 149 pull requests and its labels, which is also where the reproduction and verification notes above were kept while the fix was in progress.
If you'd rather not receive contributions like this, reply
no-more-prson this pull request and we won't open any further ones on your repositories.Lawrence W. Sinclair
CEO / East Agile
linkedin.com/in/lwsinclair/
eastagile.com