Skip to content

chore(deps): update module google.golang.org/grpc to v1.83.2 [security] - #64

Merged
ezekiel-alexrod merged 1 commit into
mainfrom
renovate/go-google.golang.org-grpc-vulnerability
Oct 29, 2026
Merged

ezekiel-alexrod merged 1 commit into
mainfrom
renovate/go-google.golang.org-grpc-vulnerability

Conversation

@scality-renovate

Copy link
Copy Markdown
Contributor

This PR contains the following updates:

Package Change Age Adoption Passing Confidence
google.golang.org/grpc v1.83.1 → v1.83.2 age adoption passing confidence

gRPC-Go xDS servers: Denial of Service (DoS) via crash due to missing :authority and Host headers

CVE-2026-84445 / GHSA-2v4p-qf9q-27wj

More information

Details

A vulnerability exists in gRPC-Go servers configured with xds.NewGRPCServer() where a crafted request missing both :authority and Host headers can cause a server panic, resulting in a Denial of Service (DoS).

Servers built with xds.NewGRPCServer install an xDS routing interceptor on every RPC. This interceptor looks up the request’s :authority header to pick a virtual host. The HTTP/2 server transport previously accepted requests that had neither :authority nor Host. When this happened, the xDS routing interceptor attempted to access the first element of an empty slice of authorities, leading to an index out of bounds panic. Since the per-RPC goroutine does not recover from panics, the entire server process would terminate.

This panic occurs in the interceptor pipeline, meaning the transport credentials handshake (TLS, mTLS, or ALTS) and HTTP/2 connection establishment must complete successfully before the crafted request can reach this logic.

  • Insecure/Standard TLS: If the server permits insecure (plaintext) connections or standard credentials (where client certs are not checked), any unauthenticated remote attacker can trigger the crash.
  • mTLS / ALTS: If strict transport-level authentication is enforced at the network edge or transport layer (e.g., requiring a valid client certificate), the attacker must possess valid transport credentials to initiate the stream and trigger the panic.
Impact

An attacker can cause a complete outage of the gRPC server by sending a request missing both :authority and Host headers, provided they can successfully establish a transport connection.

Patches

The issue has been addressed in master (and backported to 1.84.0, 1.83.2 and 1.82.2). The fix updates the HTTP/2 transport layer to reject requests missing both :authority and Host headers early, maintaining consistency with and other gRPC language implementations.

Severity

  • CVSS Score: 8.7 / 10 (High)
  • Vector String: CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X

References

This data is provided by the GitHub Advisory Database (CC-BY 4.0).


gRPC-Go xDS servers: Denial of Service (DoS) via crash due to missing :authority and Host headers

CVE-2026-84445 / GHSA-2v4p-qf9q-27wj / GO-2026-6443

More information

Details

A vulnerability exists in gRPC-Go servers configured with xds.NewGRPCServer() where a crafted request missing both :authority and Host headers can cause a server panic, resulting in a Denial of Service (DoS).

Servers built with xds.NewGRPCServer install an xDS routing interceptor on every RPC. This interceptor looks up the request’s :authority header to pick a virtual host. The HTTP/2 server transport previously accepted requests that had neither :authority nor Host. When this happened, the xDS routing interceptor attempted to access the first element of an empty slice of authorities, leading to an index out of bounds panic. Since the per-RPC goroutine does not recover from panics, the entire server process would terminate.

This panic occurs in the interceptor pipeline, meaning the transport credentials handshake (TLS, mTLS, or ALTS) and HTTP/2 connection establishment must complete successfully before the crafted request can reach this logic.

  • Insecure/Standard TLS: If the server permits insecure (plaintext) connections or standard credentials (where client certs are not checked), any unauthenticated remote attacker can trigger the crash.
  • mTLS / ALTS: If strict transport-level authentication is enforced at the network edge or transport layer (e.g., requiring a valid client certificate), the attacker must possess valid transport credentials to initiate the stream and trigger the panic.
Impact

An attacker can cause a complete outage of the gRPC server by sending a request missing both :authority and Host headers, provided they can successfully establish a transport connection.

Patches

The issue has been addressed in master (and backported to 1.84.0, 1.83.2 and 1.82.2). The fix updates the HTTP/2 transport layer to reject requests missing both :authority and Host headers early, maintaining consistency with and other gRPC language implementations.

Severity

  • CVSS Score: 8.7 / 10 (High)
  • Vector String: CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X

References

This data is provided by OSV and the GitHub Advisory Database (CC-BY 4.0).


Server panic via missing authority or Host headers in google.golang.org/grpc

CVE-2026-84445 / GHSA-2v4p-qf9q-27wj / GO-2026-6443

More information

Details

In google.golang.org/grpc, servers configured with xDS routing can panic when processing requests that lack both :authority and Host headers. The HTTP/2 transport layer accepted requests missing these headers, and the xDS server routing interceptor attempted to index the empty authority slice, causing an unhandled panic and terminating the server.

Severity

Unknown

References

This data is provided by OSV and the Go Vulnerability Database (CC-BY 4.0).


Release Notes

grpc/grpc-go (google.golang.org/grpc)

v1.83.2: Release 1.83.2

Compare Source

Security

  • server: Reject requests missing both :authority and Host headers with HTTP 400 and status Internal. (#​9365)

Configuration

📅 Schedule: (UTC)

  • Branch creation
    • At any time (no schedule defined)
  • Automerge
    • At any time (no schedule defined)

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR has been generated by Mend Renovate CLI.

@scality-renovate
scality-renovate Bot requested a review from a team as a code owner October 26, 2026 16:57
@scality-renovate scality-renovate Bot added dependencies Pull requests that update a dependency file security labels Oct 26, 2026
@scality-renovate

scality-renovate Bot commented Oct 26, 2026 •

Copy link
Copy Markdown
Contributor Author

ℹ️ Artifact update notice

File name: go.mod

In order to perform the update(s) described in the table above, Renovate ran the go get command, which resulted in the following additional change(s):

  • 4 additional dependencies were updated

Details:

Package Change
golang.org/x/mod v0.37.0 -> v0.38.0
golang.org/x/net v0.57.0 -> v0.58.0
golang.org/x/text v0.40.0 -> v0.41.0
golang.org/x/tools v0.47.0 -> v0.48.0

@scality-renovate
scality-renovate Bot force-pushed the renovate/go-google.golang.org-grpc-vulnerability branch from 05dda9d to 02c54ca Compare October 27, 2026 04:27
@github-actions

github-actions Bot commented Oct 27, 2026 •

Copy link
Copy Markdown

Dependency Bump Evaluation

Version change: google.golang.org/grpc v1.83.1 -> v1.83.2
Semver bump type: patch

Changes:

Breaking changes: None. The only behavior change is that malformed requests with no authority are now rejected.

Security concerns: Fixes CVE-2026-84445 / GHSA-2v4p-qf9q-27wj / GO-2026-6443 (CVSS 8.7), a server panic (DoS) in servers built with xds.NewGRPCServer(). No new dependencies.

Impact on codebase: grpc is // indirect only, pulled in through the k8s/controller-runtime/OpenTelemetry deps. The repo has no direct grpc or xds imports and runs no gRPC server, so the vulnerable path cannot be reached in this operator. The bump is still worth taking to clear scanner findings.

Recommendation: SAFE TO MERGE once CI is green

Notes: CI checks (build, generate, lint, test, test-e2e) were still running when this was evaluated, so wait for them to pass. This PR was not auto-approved: it is authored by scality-renovate[bot], and only dependabot PRs get auto-approved, so a human needs to approve it. (Updated: an earlier version of this comment listed transitive golang.org/x/* bumps that are no longer in the PR.)

— Claude Code

@scality-renovate
scality-renovate Bot force-pushed the renovate/go-google.golang.org-grpc-vulnerability branch from 02c54ca to aa4ed41 Compare October 28, 2026 04:21
@ezekiel-alexrod
ezekiel-alexrod force-pushed the renovate/go-google.golang.org-grpc-vulnerability branch from aa4ed41 to b0f909d Compare October 29, 2026 12:09
@ezekiel-alexrod
ezekiel-alexrod merged commit 3e8a739 into main Oct 29, 2026
10 checks passed
@ezekiel-alexrod
ezekiel-alexrod deleted the renovate/go-google.golang.org-grpc-vulnerability branch October 29, 2026 12:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file security

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant