fix(deps): bump grpc to 1.82.1 and refresh OS packages - #116
Draft
hannavigil wants to merge 1 commit into
Draft
Conversation
Addresses the scheduled Trivy scan on main, red since 2026-07-21 on unchanged code. Clears every finding except the six npm packages that live in the snyk-broker clone rather than this repo: 17 of the 23 CRITICAL/HIGH in the 2026-07-30 run. The exact count drifts daily as the feed moves, so this is stated per group rather than as a total. OS packages. Bumps APT_CACHE_BUST so buildx re-runs `apt-get update && upgrade` instead of serving the layer cached since 2026-07-14. Debian stable-security carries linux-libc-dev 6.12.96-1; the image ships 6.12.95-1 purely because of the stale layer. Every linux-libc-dev advisory currently open names 6.12.96-1 as its fixed version, including the six that landed on 2026-07-30, so one refresh covers all of them. grpc. GHSA-hrxh-6v49-42gf affects google.golang.org/grpc through 1.82.0. agent/go.mod carried v1.79.3 — the version #92 moved to in March to clear CVE-2026-33186, which has since aged into the affected range. Bumped every module that declares grpc rather than only the one Trivy sees, since #92 fixing agent alone left scaffold/go/axon_client behind for dependabot to catch in #93. That also clears two dependabot CRITICALs the image scan never surfaced (GHSA-p77j-4mvh-x3m3, grpc < 1.79.3, in sdks/go and examples/go/axon-ev-sync). `go mod tidy` carried protobuf to 1.36.11 and genproto forward as grpc 1.82.1 requires, and pulled sdks/go off x/net v0.33.0. scaffold/go/go.mod is a text template (module path is {{.ProjectName}}), so it is not a resolvable module and is left alone; it still pins grpc v1.68.0 for generated apps. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
hannavigil
force-pushed
the
hv/trivy-os-refresh-grpc-1.82.1
branch
from
July 30, 2026 17:09
8b39c61 to
f3ee861
Compare
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.
The scheduled Trivy scan on
mainhas been red since 2026-07-21 on unchanged code (47cb6c85the whole time). What moved is the CVE feed, not axon.Counts drift daily — the 07-29 run had 17 findings, the 07-30 run has 23 (six new
linux-libc-devCVEs overnight). So this is stated per group:linux-libc-devgoogle.golang.org/grpcbrace-expansionaxiosengine.ioOS packages — the fix was already in the archive
The
APT_CACHE_BUSTARG documents this exact remedy; the layer had been cache-served since 2026-07-14. Verified rather than assumed:and after a real upgrade in a fresh layer:
One refresh covers every one of them. I checked the fixed version on all ~190 currently-open
linux-libc-devalerts, not just the 16 that gate CI: every single one reportsinstalled 6.12.95-1 → fixed 6.12.96-1, including the six that appeared on 07-30. None needs a version beyond whatstable-securityalready has.Also confirmed
docker.ymlpasses onlyBUILD_VERSIONinbuild-args, so the Dockerfile default is what buildx keys the layer on — editing it does invalidate the cache.Worth flagging: these are kernel headers, pulled in by
build-essentialin the runtime stage. Containers use the host kernel, so they aren't exploitable in the shipped image. The durable fix is to stop shippingbuild-essentialat runtime — but scaffold apps build on top of this image, so that's a larger change than a vuln pass should make.grpc — the previous fix aged into the affected range
GHSA-hrxh-6v49-42gfaffects grpc through 1.82.0.agent/go.modsat at v1.79.3 — the version #92 moved to in March to clear CVE-2026-33186.I bumped every module that declares grpc, not only the one Trivy sees, because #92 fixed
agentalone and leftscaffold/go/axon_clientbehind for dependabot to catch in #93.agentmake setup proto+make test→ 176 PASS / 0 FAIL, 12 packagessdks/gomake test→ 8 PASS / 0 FAILscaffold/go/axon_clientgo build ./...+go vet ./...cleanexamples/go/axon-ev-syncgo build ./...+go vet ./...cleanThis also clears two dependabot CRITICALs the image scan never surfaced —
GHSA-p77j-4mvh-x3m3(grpc < 1.79.3) was open againstsdks/goandexamples/go/axon-ev-sync. Trivy only sees the compiled agent binary, so neither showed up there. That's the reason for going wider than the one flagged module.go mod tidyalso carriedprotobuf1.36.10 → 1.36.11 andgenprotoforward as grpc 1.82.1 requires, and pulledsdks/gooffx/net v0.33.0→ v0.53.0.Verification
Everything ran in
golang:1.26.5, matchingagent/go.mod.sdks/gowas additionally checked against a pristineorigin/mainworktree with only the go.mod/go.sum change patched in, to confirm the result wasn't an artifact of my local tree — baseline RC=0 / 8 PASS, patched RC=0 / 8 PASS, identical.Not verified locally: the Trivy scan itself and
make docker-build, both of which need the full image build. That's CI's job, and the scan result after merge is the real confirmation.Not in scope
The other 6 findings are npm packages not in this repo — there's no
package.jsonhere. They live in the snyk-broker clone:git clone cortexapps/snyk-broker@v1.0.16-axon. Clearing them needs a dependency change plus a new tag in that fork, then aSNYK_BROKER_VERSIONbump here.axiosengine.iobrace-expansion×2CVE-2026-13149→ 1.1.16 / 2.1.2 ·CVE-2026-14257→ 5.0.8 onlybrace-expansionis the awkward one:CVE-2026-14257has no 1.x or 2.x backport, so both copies would have to jump to 5.x via npmoverrides.Because the gate fails on any finding at all (
COUNT -gt 0→ exit 1), this PR will not turn the scan green on its own. It takes it from 23 to 6.Also left alone:
scaffold/go/go.modis a Go text template (module github.com/cortexapps/axon_apps/{{.ProjectName}}), so it isn't a resolvable module andgo getcan't run there. It still pins grpc v1.68.0 for generated apps. Separately, dependabot has a HIGH onprotobuf < 5.29.6insdks/python/poetry.lock— different ecosystem, not part of this pass.🤖 Generated with Claude Code