ZeroHour

CVE-2026-84445

moderate

Unauthenticated DoS panic in gRPC-Go xDS servers (missing :authority header)

CVSS 4.0
8.7 high
EPSS
Published
()
Modified
AI analysis

gRPC-Go servers created with xds.NewGRPCServer() accept an HTTP/2 RPC that contains neither the :authority nor the Host header, but the xDS routing layer (RouteAndProcess) assumes an authority value exists and indexes an empty slice, causing an index-out-of-bounds panic. Because the panic is not recovered by the per-RPC goroutine, a single malformed RPC terminates the entire server process, so any remote client that can complete transport setup can repeatedly crash (or crash-loop) the service. In deployments using plaintext or ordinary TLS the request requires no authentication; strict mTLS or ALTS deployments require valid transport credentials before the malformed RPC reaches the vulnerable path. The flaw affects gRPC-Go releases prior to 1.82.2 and 1.83.2 and is rated high severity (CVSS 4.0: 8.7) due to full availability impact with no privileges or user interaction required. There is no known public proof-of-concept and no indication of in-the-wild exploitation, and the issue is fixed in versions 1.82.2 and 1.83.2.

What to do: Upgrade gRPC-Go to version 1.82.2 or 1.83.2 (or later) as soon as possible. If immediate patching is not possible, require strict mTLS or ALTS transport credentials on the gRPC port so unauthenticated clients cannot reach the vulnerable routing path, and note that authenticated clients could still trigger the crash. Audit Go services for use of xds.NewGRPCServer() and monitor gRPC server processes for unexpected exits or crash loops that could indicate exploitation attempts.

Affected
gRPC (grpc-go project, Google) gRPC-Goall versions prior to 1.82.2
gRPC (grpc-go project, Google) gRPC-Go1.83.0 through 1.83.1 (prior to 1.83.2)
Estimated exposure
moderateplausibly in the low thousands of internet- or network-reachable gRPC-Go servers using xDS routing; exact count unknown — gRPC-Go is one of the most widely imported Go modules, but the vulnerable code path requires servers explicitly built with xds.NewGRPCServer(), which is largely limited to xDS/service-mesh-managed deployments, and no public scan counts…

Order-of-magnitude estimate by the model from install counts, market share and public scan data it knows; verify before quoting.

Description

gRPC-Go is the Go language implementation of gRPC. Prior to 1.82.2 and 1.83.2, servers created with xds.NewGRPCServer() allow internal/transport/http2_server.go to accept an RPC containing neither the :authority header nor the Host header, while RouteAndProcess in internal/xds/server/routing.go assumes that an authority value exists and indexes the empty slice. A remote client that can complete transport connection establishment can trigger an index-out-of-bounds panic that is not recovered by the per-RPC goroutine and terminates the entire server process. In insecure or ordinary TLS deployments the request can be unauthenticated, while strict mTLS or ALTS deployments require valid transport credentials before the malformed RPC can reach the interceptor. This issue is fixed in versions 1.82.2 and 1.83.2.

Ecosystems
go
Weakness
CWE-129, CWE-248
Vector
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
GHSA
GHSA-2v4p-qf9q-27wj (high)

In the news

No ingested article mentions this CVE yet.