Skip to content

Bump gRPC and containerd for September CVEs - #278

Open
ai-collaboration-app[bot] wants to merge 2 commits into
masterfrom
cve-grpc-84445-bump
Open

Bump gRPC and containerd for September CVEs#278
ai-collaboration-app[bot] wants to merge 2 commits into
masterfrom
cve-grpc-84445-bump

Conversation

@ai-collaboration-app

@ai-collaboration-app ai-collaboration-app Bot commented Sep 9, 2026

Copy link
Copy Markdown

Updates gRPC to v1.83.2 (with its required x/net v0.58.0) and containerd to v1.7.35 for CVE-2026-84445 and CVE-2026-53495. The existing candidate is rebased onto master c028f24, including merged #280. No exception or VEX change is included.

Validation on actual head c4840469c675351ab1075f8a8469027828635e51: module verification, release dependency/OpenPGP guard checks (including a negative control), and focused Go tests pass. Dual-architecture build, smoke and Trivy/Grype run is in progress. Automatic PR CI is skipped because it publishes; this branch dispatch skips publication.

Review the added containerd patch and final scanner results. Bot #281 is checksum cleanup only and needs a refresh if merged second. GO-2026-5932 remains a human VEX/exception decision on #27, with the existing expiry of 2026-09-10 unchanged.

Tracking: https://github.com/StackVista/cve-reporter/issues/69 — exact scan 34489623699, attempt 1. Candidate validation is not published-image or chart-adoption evidence.

@ai-collaboration-app

Copy link
Copy Markdown
Author

CI on this branch is red for a pre-existing reason that has nothing to do with this diff, and #280 is the fix.

Run 34334224116 fails in the first step on both architectures:

E: Release file for http://deb.debian.org/debian-security/dists/bullseye-security/InRelease is expired
Process completed with exit code 100

The prebuild images are Debian 11 bullseye, now EOL, so apt-get update exits 100 and the step cannot install rsync. Every downstream job — including the image build and the Trivy/Grype scan that would be this PR's real evidence — is skipped as a result.

This is not caused by the grpc bump. #277 failed identically on 2026-09-08, a day before this branch existed, and the last green CI in the repository was 2026-09-07T09:35Z. #280 removes the apt dependency.

Merge #280 first, then this branch needs a rebase to pick it up and produce a green run with a scanned image.

Meanwhile, verified locally against the published digest sha256:0e6fe8cb… rather than waiting on CI:

  • go version -m on the packaged binary: google.golang.org/grpc v1.83.1 — the affected version is genuinely what ships.
  • Trivy 0.74.0 and Grype 0.117.0 both report CVE-2026-84445 / GHSA-2v4p-qf9q-27wj against it, fixed version 1.83.2.
  • Grype reproduces all 37 base-image rows at exactly the installed and fixed versions the scan lists, and the image's own rpm database matches the scan's Installed column for all nine packages.

@ai-collaboration-app

Copy link
Copy Markdown
Author

Validated: this bump takes the image to unmanaged: 0 on both architectures.

Because CI on this branch cannot run until #280 lands, I validated the combined tree instead — #280's commit plus this commit, as branch cve-grpc-84445-validation at fa8ae745, dispatched as run 34337687775. All build, test and scan jobs green on amd64 and arm64. Nothing was published: the publish jobs are skipped on workflow_dispatch.

Evaluator, identical on both architectures:

image-pipeline evaluator (mode: inform)
  total in-scope findings:  1
  suppressed by exception:  1
  expired:                  0
  unmanaged:                0
  unused exceptions:        0
Suppressed:
  - GO-2026-5932 [UNKNOWN] pkg:golang/golang.org/x/crypto@v0.56.0 — exceptions/GO-2026-5932.yaml

unmanaged goes 1 → 0. CVE-2026-84445 is gone, and no base-image row replaces it. Read from the evaluator rather than the check mark, since mode: inform means a green run carries no vulnerability verdict on its own.

For contrast, #280 alone — the same tree without this commit — reports unmanaged: 1, that one finding being CVE-2026-84445 [HIGH] pkg:golang/google.golang.org/grpc@v1.83.1. That pair of runs isolates this diff as the cause of the change.

All 39 rows the scan attributes to this repository are now accounted for: 37 base-image rows cleared by the rebuild in #280's run at exactly the fixed versions, and the 2 grpc rows cleared here.

The validation branch exists only to carry this evidence and can be deleted once this PR is rebased onto #280 and produces its own green run.

@ai-collaboration-app

Copy link
Copy Markdown
Author

Administrative correction: the updatecli bot closed #277 and reopened the same change as #279 (go.sum only, +5/-26, no module version moved) at 09:29Z today. The merge-order note above should read #279, not #277. Nothing else changes: it still moves none of this repository's scan rows, and it still overlaps only textually in go.sum, so whichever of it and this PR merges second needs a refresh.

@ai-collaboration-app

Copy link
Copy Markdown
Author

Independent CVE review of 3e4740d066817fefde5196f42b651e5ea4bec04f (supervised remediation run, dev scan 34330594840). Verdict: lacks post-rebase evidence — do not merge yet.

The change itself checks out: grpc v1.83.2 is present in the combined-run artifacts on both architectures, and run 34337687775 reports unmanaged: 0 on both. The immutable scan digest was verified and no suppressions were added.

The gap is evidence on this head. This PR cannot go green until #280 lands, and the validation above came from the separate combined branch fa8ae7454a41c40a5a12bf7b1cff7c1434b6d50b, not from the PR head. #280 also currently needs a correction of its own. Sequence: correct and merge #280, then rebase this PR and obtain a green dual-architecture, dual-scanner run on the actual PR head before merging.

Separately, and needing a human decision today: the reviewer judged that letting GO-2026-5932 expire is unsafe. The versionless VEX proposal on StackVista/cve-reporter#27 works; the alias fragility is real but currently mitigated by Grype --by-cve.

Human review and merge remain mandatory.

The dev chart scan 34330594840 reports CVE-2026-84445 (HIGH, both
scanners) against google.golang.org/grpc v1.83.1 in
quay.io/stackstate/stackstate-k8s-process-agent:d1ca2bd2. Note the
direction: v1.83.1 is what the previous bump moved this repository up to
for CVE-2026-84304, and v1.83.1 is now itself affected, so this is a
follow-on rather than a repeat.

OSV confirms the scanner lead: GHSA-2v4p-qf9q-27wj has ranges
introduced 0 / fixed 1.82.2 and introduced 1.83.0 / fixed 1.83.2, so
v1.83.2 is the fix on the line this repository is already on. Neither
v1.83.2 nor the x/net v0.58.0 it requires has any OSV entry.

golang.org/x/net moves v0.57.0 -> v0.58.0 because grpc v1.83.2's own
go.mod requires it; nothing else in the graph changed.

The advisory is scoped to gRPC-Go xDS servers crashing on requests
missing :authority and Host headers. No google.golang.org/grpc/xds
package is linked here - 66 grpc packages are reachable from ./cmd/...
and none of them is under xds - so the crash path is not present. It is
bumped anyway because a compatible patch release exists, which is
cheaper and more durable than a suppression.

Validation: go mod verify passes; go build and go test with the release
tag set (kubelet kubeapiserver linux cri containerd linux_bpf) leave
exactly the two failures a bare checkout already produces on master,
undefined runtime.Tracer and runtime.RuntimeSecurity in the
datadog-agent upstream eBPF compile assets that the CI prebuild step
generates. config, model, pkg/kube, pkg/pods and test-server pass.
scripts/verify-openpgp-absent.sh still reports openpgp absent from 1886
packages.

The other 38 rows the same scan attributes to this repository are
base-image RPMs, not source work. BCI.dockerfile pins no package
versions, and the SLE_BCI channel today resolves exactly the fixed
version for every one of them, so they clear on the rebuild this commit
triggers.
Scan 34489623699 attempt 1 adds the CRI ExecSync goroutine leak to
this repository's findings. Upstream GHSA-7jxh-36q5-gcqv confirms
v1.7.35 fixes the existing v1.7 line. Only containerd changes; the
separately versioned API module remains v1.8.0. The release dependency
graph does not include containerd/pkg/cri, but a compatible patch avoids
carrying another suppression.

Rebased the preceding gRPC fix onto master c028f24, which includes
both reviewed prebuild fixes from #280. Keep #281's unrelated checksum
cleanup separate. The GO-2026-5932 exception is unchanged and remains
a human decision on cve-reporter#27.

Validation: go mod verify; release-tag dependency resolution and
OpenPGP absence guard (1886 packages); git diff --check.

Skip automatic PR CI because that event publishes images. Dispatch
ci.yml on this exact branch head for dual-architecture build, test,
smoke and scanners with publication skipped, as required for this task.
Tracking: StackVista/cve-reporter#69
@ai-collaboration-app ai-collaboration-app Bot changed the title Bump grpc to v1.83.2 for CVE-2026-84445; the base-image rows clear on rebuild Bump gRPC and containerd for September CVEs Sep 10, 2026
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