Vulnerabilities in pkg:golang/google.golang.org/grpc

PACKAGE
Advisory Identifier: GHSA-2v4p-qf9q-27wj
Advisory Summary

CVE-2026-84445 is a HIGH denial of service vulnerability (CWE-129: Improper Validation of Array Index) affecting gRPC-Go xDS servers libraries in the Go ecosystem. The issue involves denial of service (dos) via crash due to missing `:authority` and `host` headers. Remediation is available by upgrading affected packages to version 1.82.2, 1.83.2, 1.84.0-dev.0.20260825144003-d5a41119e0e3, 1.85.0-dev.0.20260825072537-93e31b48545e.

7 Known Advisory Record(s)
Package Vulnerability Intelligence

pkg:golang/google.golang.org/grpc

7 Known Advisory Record(s)

Vulnerability advisories affecting package pkg:golang/google.golang.org/grpc. Select an advisory below to view technical details or fixes.

Advisory ID CVE / NVD Severity Summary
GHSA-2v4p-qf9q-27wj CVE-2026-84445 HIGH gRPC-Go xDS servers: Denial of Service (DoS) via crash due to missing `:authority` and `Host` headers
GHSA-qc2q-p7wx-3px3 CVE-2026-84303 MODERATE gRPC-Go: xDS RBAC HTTP Filter bypass via mixed-case Header Matching and gRFC A41 validation evasion
GHSA-vp52-pcj8-j9qc CVE-2026-84304 HIGH gRPC-Go: Heap Memory Exhaustion (OOM) via HTTP/2 DATA Frame Fragmentation
GHSA-hrxh-6v49-42gf - HIGH gRPC-Go: xDS RBAC and HTTP/2 Vulnerabilities
GHSA-p77j-4mvh-x3m3 CVE-2026-33186 CRITICAL gRPC-Go has an authorization bypass via missing leading slash in :path
GHSA-m425-mq94-257g - HIGH gRPC-Go HTTP/2 Rapid Reset vulnerability
GHSA-xr7q-jx4m-x55m - LOW Private tokens could appear in logs if context containing gRPC metadata is logged in github.com/grpc/grpc-go

CVE-2026-84445 at a Glance

CVE Identifier CVE-2026-84445
GHSA Identifier GHSA-2v4p-qf9q-27wj
Severity HIGH
CVSS v3.1 Base Score N/A
CWE Classification CWE-129: Improper Validation of Array Index
Affected Product gRPC-Go xDS servers
Package Ecosystem Go
Published Date
Last Updated

How to Fix CVE-2026-84445

To remediate this vulnerability, upgrade all affected gRPC-Go xDS servers dependencies to a patched release. Both direct and transitive dependencies should be checked, as frameworks or security libraries may pull in vulnerable versions transitively.

google.golang.org/grpc fixed: 1.82.2
Upgrade google.golang.org/grpc to 1.82.2
google.golang.org/grpc fixed: 1.83.2
Upgrade google.golang.org/grpc to 1.83.2
google.golang.org/grpc fixed: 1.84.0-dev.0.20260825144003-d5a41119e0e3
Upgrade google.golang.org/grpc to 1.84.0-dev.0.20260825144003-d5a41119e0e3
google.golang.org/grpc fixed: 1.85.0-dev.0.20260825072537-93e31b48545e
Upgrade google.golang.org/grpc to 1.85.0-dev.0.20260825072537-93e31b48545e
Verify Direct and Transitive Dependencies

Run the following command in your project directory to verify that all resolved dependencies use the patched release:

inspect dependencies for google.golang.org/grpc

How to Check if You Are Affected

To determine whether your application is affected by CVE-2026-84445, inspect your project dependencies for gRPC-Go xDS servers:

inspect dependencies for google.golang.org/grpc

Analyze the terminal output to locate any version of gRPC-Go xDS servers in your dependency tree. If any resolved version matches the vulnerable ranges listed in the table below (for example, versions earlier than 1.82.2), your application is affected.

Note: Verify declared build manifests and deployed runtime container environments.

Technical Details

Vulnerability Mechanism & Technical Analysis

This vulnerability is classified under CWE-129: Improper Validation of Array Index, where the product uses untrusted input when calculating or using an array index, but the product does not validate or incorrectly validates the index to ensure the index references a valid position within the array. In gRPC-Go xDS servers, software state validation or input boundaries are circumvented during processing. Review the official source advisory statement below for specific affected components, classes, and reproduction details.

Source Advisory Statement

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.

CVE-2026-84445 Affected gRPC-Go xDS servers Versions

4 component(s)
Fixed Versions:
1.82.21.83.21.84.0-dev.0.20260825144003-d5a41119e0e31.85.0-dev.0.20260825072537-93e31b48545e
Product / Package Ecosystem Affected Versions Fixed Version
google.golang.org/grpc
Go
< 1.82.2
1.82.2
google.golang.org/grpc
Go
≥ 1.83.0
< 1.83.2
1.83.2
google.golang.org/grpc
Go
≥ 1.84.0-dev
< 1.84.0-dev.0.20260825144003-d5a41119e0e3
1.84.0-dev.0.20260825144003-d5a41119e0e3
google.golang.org/grpc
Go
≥ 1.85.0-dev
< 1.85.0-dev.0.20260825072537-93e31b48545e
1.85.0-dev.0.20260825072537-93e31b48545e

References

Frequently Asked Questions

What is CVE-2026-84445?
CVE-2026-84445 is a security vulnerability in gRPC-Go xDS servers involving Denial of Service (DoS) via crash due to missing `:authority` and `Host` headers under CWE-129: Improper Validation of Array Index.
Which gRPC-Go xDS servers versions are affected?
Affected versions include releases prior to 1.82.2, 1.83.2, 1.84.0-dev.0.20260825144003-d5a41119e0e3, 1.85.0-dev.0.20260825072537-93e31b48545e across affected packages: google.golang.org/grpc.
What version fixes CVE-2026-84445?
Upgrading to 1.82.2, 1.83.2, 1.84.0-dev.0.20260825144003-d5a41119e0e3, 1.85.0-dev.0.20260825072537-93e31b48545e (or the latest patched release for your respective branch) resolves the vulnerability.
Is google.golang.org/grpc affected?
Yes, google.golang.org/grpc is affected in releases prior to 1.82.2, 1.83.2, 1.84.0-dev.0.20260825144003-d5a41119e0e3, 1.85.0-dev.0.20260825072537-93e31b48545e. Upgrade your dependency to 1.82.2, 1.83.2, 1.84.0-dev.0.20260825144003-d5a41119e0e3, 1.85.0-dev.0.20260825072537-93e31b48545e or later.
What CWE is associated with CVE-2026-84445?
CVE-2026-84445 is classified under CWE-129: Improper Validation of Array Index (The product uses untrusted input when calculating or using an array index, but the product does not validate or incorrectly validates the index to ensure the index references a valid position within the array.).
How can I check Go dependencies for CVE-2026-84445?
Run the dependency tree command: 'inspect dependencies for google.golang.org/grpc'. This command lists direct and transitive dependencies in your build configuration so you can verify if a vulnerable version is resolved.
Machine-readable OSV JSON OSV v1.5 Schema
Normalized schema output
{
  "schema_version" : "1.4.0",
  "id" : "GHSA-2v4p-qf9q-27wj",
  "modified" : "2026-09-25T17:42:20Z",
  "published" : "2026-09-08T21:21:43Z",
  "aliases" : [ "CVE-2026-84445" ],
  "summary" : "gRPC-Go xDS servers: Denial of Service (DoS) via crash due to missing `:authority` and `Host` headers",
  "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).\n\nServers 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.\n\nThis 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.\n- 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.\n- 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.\n\n### Impact\nAn 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.\n\n### Patches\nThe 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" : [ {
    "type" : "CVSS_V4",
    "score" : "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"
  } ],
  "affected" : [ {
    "package" : {
      "ecosystem" : "Go",
      "name" : "google.golang.org/grpc"
    },
    "ranges" : [ {
      "type" : "ECOSYSTEM",
      "events" : [ {
        "introduced" : "0"
      }, {
        "fixed" : "1.82.2"
      } ]
    } ]
  }, {
    "package" : {
      "ecosystem" : "Go",
      "name" : "google.golang.org/grpc"
    },
    "ranges" : [ {
      "type" : "ECOSYSTEM",
      "events" : [ {
        "introduced" : "1.83.0"
      }, {
        "fixed" : "1.83.2"
      } ]
    } ]
  }, {
    "package" : {
      "ecosystem" : "Go",
      "name" : "google.golang.org/grpc"
    },
    "ranges" : [ {
      "type" : "ECOSYSTEM",
      "events" : [ {
        "introduced" : "1.84.0-dev"
      }, {
        "fixed" : "1.84.0-dev.0.20260825144003-d5a41119e0e3"
      } ]
    } ]
  }, {
    "package" : {
      "ecosystem" : "Go",
      "name" : "google.golang.org/grpc"
    },
    "ranges" : [ {
      "type" : "ECOSYSTEM",
      "events" : [ {
        "introduced" : "1.85.0-dev"
      }, {
        "fixed" : "1.85.0-dev.0.20260825072537-93e31b48545e"
      } ]
    } ]
  } ],
  "references" : [ {
    "type" : "WEB",
    "url" : "https://github.com/grpc/grpc-go/security/advisories/GHSA-2v4p-qf9q-27wj"
  }, {
    "type" : "ADVISORY",
    "url" : "https://nvd.nist.gov/vuln/detail/CVE-2026-84445"
  }, {
    "type" : "WEB",
    "url" : "https://github.com/grpc/grpc-go/issues/9354"
  }, {
    "type" : "WEB",
    "url" : "https://github.com/grpc/grpc-go/pull/9365"
  }, {
    "type" : "WEB",
    "url" : "https://github.com/grpc/grpc-go/pull/9366"
  }, {
    "type" : "WEB",
    "url" : "https://github.com/grpc/grpc-go/pull/9367"
  }, {
    "type" : "WEB",
    "url" : "https://github.com/grpc/grpc-go/commit/3822494d8ea03b992c089fd2a195f041762fffb7"
  }, {
    "type" : "WEB",
    "url" : "https://github.com/grpc/grpc-go/commit/8668b69c167df908b6b3666dcbf40992b9e932a4"
  }, {
    "type" : "WEB",
    "url" : "https://github.com/grpc/grpc-go/commit/93e31b48545e2a8aaeb6e06b47fb249f94e6297f"
  }, {
    "type" : "PACKAGE",
    "url" : "https://github.com/grpc/grpc-go"
  }, {
    "type" : "WEB",
    "url" : "https://github.com/grpc/grpc-go/releases/tag/v1.82.2"
  }, {
    "type" : "WEB",
    "url" : "https://github.com/grpc/grpc-go/releases/tag/v1.83.2"
  } ],
  "database_specific" : {
    "cwe_ids" : [ "CWE-129", "CWE-248" ],
    "severity" : "HIGH",
    "github_reviewed" : true,
    "github_reviewed_at" : "2026-09-08T21:21:43Z",
    "nvd_published_at" : "2026-09-14T17:17:51Z"
  }
}