{"id":"CVE-2026-84303","summary":"gRPC-Go: xDS RBAC HTTP Filter bypass via mixed-case Header Matching and gRFC A41 validation evasion","details":"gRPC-Go is the Go language implementation of gRPC. Prior to 1.83.1, the xDS RBAC HTTP filter in internal/xds/httpfilter/rbac/rbac.go does not lowercase header matcher names in normalizeHeaderMatcher even though incoming metadata keys are lowercase. A DENY policy using a mixed-case name such as X-Role or User-Agent therefore does not match and fails open, allowing requests that should be rejected. The same case mismatch permits :Scheme or Grpc-Status to evade gRFC A41 validation and prevents Host from being rewritten to :authority. This issue is fixed in version 1.83.1.","aliases":["GHSA-qc2q-p7wx-3px3"],"modified":"2026-09-04T03:30:56.458268890Z","published":"2026-09-01T18:14:37.870Z","database_specific":{"cna_assigner":"GitHub_M","cwe_ids":["CWE-178","CWE-863"],"osv_generated_from":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/84xxx/CVE-2026-84303.json"},"references":[{"type":"WEB","url":"https://github.com/grpc/grpc-go/releases/tag/v1.83.1"},{"type":"ADVISORY","url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/84xxx/CVE-2026-84303.json"},{"type":"ADVISORY","url":"https://github.com/grpc/grpc-go/security/advisories/GHSA-qc2q-p7wx-3px3"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-84303"},{"type":"FIX","url":"https://github.com/grpc/grpc-go/commit/db9482836c298f234c896cf82ab68cafc78237f8"},{"type":"FIX","url":"https://github.com/grpc/grpc-go/commit/ebba6f3f1b206e2b4dc4d1d5a96d18430302c2fe"},{"type":"FIX","url":"https://github.com/grpc/grpc-go/pull/9332"},{"type":"FIX","url":"https://github.com/grpc/grpc-go/pull/9335"}],"affected":[{"ranges":[{"type":"GIT","repo":"https://github.com/grpc/grpc-go","events":[{"introduced":"0"},{"fixed":"db9482836c298f234c896cf82ab68cafc78237f8"},{"fixed":"ebba6f3f1b206e2b4dc4d1d5a96d18430302c2fe"},{"fixed":"1550d9e0cddb30ce99e61a2102e8294a49461e5e"}],"database_specific":{"source":["AFFECTED_FIELD","REFERENCES"],"extracted_events":[{"introduced":"0"},{"fixed":"1.83.1"}]}}],"versions":["v1.85.0-dev","v1.83.0","v1.84.0-dev","v1.83.0-dev","cmd/protoc-gen-go-grpc/v1.6.2","v1.82.0-dev","v1.81.0-dev","cmd/protoc-gen-go-grpc/v1.6.1","v1.80.0-dev","v1.79.0-dev","cmd/protoc-gen-go-grpc/v1.6.0","v1.78.0-dev","v1.77.0-dev","v1.76.0-dev","v1.75.0-dev","v1.74.0-dev","v1.73.0-dev","v1.72.0-dev","1.69.3","v1.71.0-dev","v1.69.0","v1.70.0-dev","v1.69.0-dev","v1.68.0-dev","v1.67.0-dev","cmd/protoc-gen-go-grpc/v1.5.1","cmd/protoc-gen-go-grpc/v1.5.0","security/advancedtls/v1.0.0","v1.66.0-dev","cmd/protoc-gen-go-grpc/v1.4.0","v1.65.0-dev","gcp/observability/v1.0.1","v1.61.0-dev","v1.60.0-dev","v1.59.0-dev","v1.58.0-dev","v1.57.0-dev","v1.56.0-dev","gcp/observability/v1.0.0","stats/opencensus/v1.0.0","v1.55.0-dev","cmd/protoc-gen-go-grpc/v1.3.0","v1.53.0-dev","v1.52.0-dev","v1.51.0-dev","v1.50.0-dev","v1.49.0-dev","v1.48.0-dev","v1.47.0-dev","v1.46.0-dev","v1.45.0-dev","cmd/protoc-gen-go-grpc/v1.2.0","v1.44.0-dev","v1.43.0-dev","v1.42.0-dev","v1.41.0-dev","v1.40.0-dev","v1.39.0-dev","v1.38.0-dev","v1.37.0-dev","cmd/protoc-gen-go-grpc/v1.1.0","v1.36.0-dev","v1.35.0-dev","cmd/protoc-gen-go-grpc/v1.0.1","v1.34.0-dev","cmd/protoc-gen-go-grpc/v1.0.0","v1.33.0-dev","v1.32.0-dev","v1.31.0-dev","v1.30.0-dev.1","v1.30.0-dev","v1.29.0-dev","v1.28.0-pre","v1.27.0-pre","v1.2.0","v1.0.5","v1.0.4","v1.0.3","v1.0.2","v1.0.1-GA","v1.0.0"],"database_specific":{"source":"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-84303.json"}}],"schema_version":"1.9.0","severity":[{"type":"CVSS_V4","score":"CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:L/VI:L/VA:N/SC:N/SI:N/SA:N"}]}