CVE-2026-84445
moderateUnauthenticated DoS panic in gRPC-Go xDS servers (missing :authority header)
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.
| gRPC (grpc-go project, Google) gRPC-Go | all versions prior to 1.82.2 |
| gRPC (grpc-go project, Google) gRPC-Go | 1.83.0 through 1.83.1 (prior to 1.83.2) |
Order-of-magnitude estimate by the model from install counts, market share and public scan data it knows; verify before quoting.
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 news0 stories
No ingested article mentions this CVE yet.