fix(deps): bump grpc to 1.82.1 and refresh OS packages - #116
Merged
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
The scheduled scan reached 40 findings on 2026-08-03. The OS groups are 29
linux-libc-dev and 4 libexpat1, and one apt refresh covers all 33:
- libexpat1: all 21 open alerts report installed 2.7.1-2 -> fixed
2.8.2-1~deb13u1, which is the current stable-security candidate.
- linux-libc-dev: two bands now, 189 alerts wanting 6.12.96-1 and 68 newer
ones wanting 6.12.100-1. The candidate is 6.12.100-1, so both clear.
The newest band needs exactly today's candidate, so the layer has to
re-resolve against the archive rather than be served from cache. docker.yml
restores layers with a `${{ runner.os }}-buildx-` prefix key and passes only
BUILD_VERSION as a build-arg, so this ARG default is what keys the apt layer.
Changing it re-runs apt-get update && upgrade.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
hannavigil
marked this pull request as ready for review
August 3, 2026 21:56
The npm findings are not in this repo; there is no package.json here. They come from the snyk-broker clone, so clearing them needed a change there plus a new tag: cortexapps/snyk-broker#26, tagged v1.0.17-axon. - axios 1.16.0 -> 1.19.0 (GHSA-gcfj-64vw-6mp9, patched 1.18.0) - engine.io 6.6.6 -> 6.6.9 (GHSA-r635-g3xr-vw7x, patched 6.6.7) - brace-expansion 2.0.3 -> 2.1.4 and 1.1.13 -> 1.1.18, clearing CVE-2026-13149 and CVE-2026-14257 on both shipped copies snyk-broker CI is green on that tag: npm ci clean, npm test green (unit 46/46, functional 26/27 with 1 skipped), and npm audit --omit=dev reports 0 critical and 0 high. With this and the apt refresh, all 40 findings from the 2026-08-03 scan are covered, so the COUNT -gt 0 gate should reach 0. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
shawnburke
approved these changes
Aug 3, 2026
ashiramin
approved these changes
Aug 4, 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.
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, so this is stated per group against the 2026-08-03 run (40 findings, up from 23 on 07-30):
linux-libc-devlibexpat1google.golang.org/grpcbrace-expansion×4,axios,engine.ioSNYK_BROKER_VERSIONbump, here, fix lives in snyk-brokerThis should take the gate to 0. The gate fails on any finding at all (
COUNT -gt 0→ exit 1), so partial coverage keeps it red.OS packages: the fixes were already in the archive
The
APT_CACHE_BUSTARG documents this exact remedy. Verified against the live archive rather than assumed:libexpat1: all 21 open alerts reportinstalled 2.7.1-2 → fixed 2.8.2-1~deb13u1, which is the currentstable-securitycandidate. This group did not exist on 07-30; it appeared on 07-31.linux-libc-dev: there are now two fix bands, 189 alerts wanting6.12.96-1and 68 newer ones wanting6.12.100-1. The candidate is6.12.100-1, so both clear. Note the newest band needs exactly today's candidate, so the layer has to genuinely re-resolve.Why the value had to change, not just the workflow re-run.
docker.ymlcaches layers withactions/cacheunderrestore-keys: ${{ runner.os }}-buildx-, a prefix match, andcache-from: type=local. It passes onlyBUILD_VERSIONas abuild-arg, so this ARG default is what keys the apt layer. Re-running CI without editing the value serves the previously built layer and the OS findings persist.Worth flagging: these are kernel headers and an XML parser pulled in by
build-essentialin the runtime stage. Containers use the host kernel, solinux-libc-devis not 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 is 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.Every module that declares grpc is bumped, not only the one Trivy sees, because #92 fixed
agentalone and leftscaffold/go/axon_clientfor 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-x3m3againstsdks/goandexamples/go/axon-ev-sync. Trivy only reads the compiled agent binary's build info, so neither appeared there.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.npm: fixed in snyk-broker, pinned here
The 6 npm findings are not in this repo. There is no
package.jsonhere. They come fromgit clone cortexapps/snyk-brokeratSNYK_BROKER_VERSION, so clearing them needs a change there plus a new tag. That is cortexapps/snyk-broker#26, now merged and taggedv1.0.17-axon.axiosGHSA-gcfj-64vw-6mp9engine.ioGHSA-r635-g3xr-vw7xbrace-expansion(2.x)CVE-2026-13149+CVE-2026-14257brace-expansion(1.x)CVE-2026-13149+CVE-2026-14257Correcting an earlier draft of this description: it claimed
CVE-2026-14257is fixed in 5.0.8 only, with no 1.x or 2.x backport, so both copies would need anoverridesjump to 5.x. That is wrong. Backports exist at 1.1.17 and 2.1.3, so the fix is a patch bump inside each major line.Only 2 of the 7 lockfile copies ship. The other 5 are
dev: trueand die in this Dockerfile'snpm prune --omit=dev. The two survivors need different major lines, so one flat override cannot serve both: the 2.x copy comes from rootminimatch ^5.1.9, and the 1.x copy viabunyan→mv→minimatch@3. Hence the scoped override in #26.snyk-broker CI is green on that change:
npm ciclean,npm testgreen (unit 46/46 and 354 tests, functional 26/27 and 144 tests), andnpm audit --omit=devreports 0 critical and 0 high, which also covers the two production transitive deps axios 1.19.0 adds (https-proxy-agent5.0.1,agent-base6.0.2).Verification
Go work 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 was not an artifact of a local tree. Baseline RC=0 / 8 PASS, patched RC=0 / 8 PASS, identical.The image build and the Trivy scan are CI's job.
docker-testsbuilds the real image and then builds scaffold apps on it (scaffold_test.sh go,scaffold_test.sh python), which is the coverage that matters for an unpinnedapt-get upgrade.Residual, not fixed here
scaffold/go/go.modis a Go text template (module github.com/cortexapps/axon_apps/{{.ProjectName}}), so it is not a resolvable module andgo getcannot run there. It still pins grpc v1.68.0 for generated apps. Separately, dependabot has a HIGH onprotobuf < 5.29.6insdks/python/poetry.lock, a different ecosystem and not part of this pass.🤖 Generated with Claude Code