{"id":"CVE-2026-84303","state":"PUBLISHED","title":"gRPC-Go: xDS RBAC HTTP Filter bypass via mixed-case Header Matching and gRFC A41 validation evasion","description":"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.","publishedAt":"2026-09-01T18:14:37.870Z","updatedAt":"2026-09-02T19:14:49.353Z","severity":{"score":6.3,"label":"Medium","version":"4.0","vector":"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","source":"GitHub_M"},"assigner":"GitHub_M","products":["grpc grpc-go"],"affected":[{"vendor":"grpc","product":"grpc-go","versions":[{"version":"< 1.83.1","status":"affected"}]}],"references":["https://github.com/grpc/grpc-go/security/advisories/GHSA-qc2q-p7wx-3px3","https://github.com/grpc/grpc-go/pull/9332","https://github.com/grpc/grpc-go/pull/9335","https://github.com/grpc/grpc-go/commit/db9482836c298f234c896cf82ab68cafc78237f8","https://github.com/grpc/grpc-go/commit/ebba6f3f1b206e2b4dc4d1d5a96d18430302c2fe","https://github.com/grpc/grpc-go/releases/tag/v1.83.1"],"weaknesses":["CWE-178","CWE-863"],"ingestedAt":"2026-10-29T20:13:15.269Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2026/84xxx/CVE-2026-84303.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2026-84303","state":"PUBLISHED","datePublished":"2026-09-01T18:14:37.870Z","dateUpdated":"2026-09-02T19:14:49.353Z","assignerShortName":"GitHub_M","assignerOrgId":"a0819718-46f1-4df5-94e2-005712e83aaa","dateReserved":"2026-09-01T16:17:43.078Z"},"containers":{"cna":{"title":"gRPC-Go: xDS RBAC HTTP Filter bypass via mixed-case Header Matching and gRFC A41 validation evasion","descriptions":[{"lang":"en","value":"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."}],"affected":[{"vendor":"grpc","product":"grpc-go","versions":[{"version":"< 1.83.1","status":"affected"}]}],"references":[{"url":"https://github.com/grpc/grpc-go/security/advisories/GHSA-qc2q-p7wx-3px3","name":"https://github.com/grpc/grpc-go/security/advisories/GHSA-qc2q-p7wx-3px3","tags":["x_refsource_CONFIRM"]},{"url":"https://github.com/grpc/grpc-go/pull/9332","name":"https://github.com/grpc/grpc-go/pull/9332","tags":["x_refsource_MISC"]},{"url":"https://github.com/grpc/grpc-go/pull/9335","name":"https://github.com/grpc/grpc-go/pull/9335","tags":["x_refsource_MISC"]},{"url":"https://github.com/grpc/grpc-go/commit/db9482836c298f234c896cf82ab68cafc78237f8","name":"https://github.com/grpc/grpc-go/commit/db9482836c298f234c896cf82ab68cafc78237f8","tags":["x_refsource_MISC"]},{"url":"https://github.com/grpc/grpc-go/commit/ebba6f3f1b206e2b4dc4d1d5a96d18430302c2fe","name":"https://github.com/grpc/grpc-go/commit/ebba6f3f1b206e2b4dc4d1d5a96d18430302c2fe","tags":["x_refsource_MISC"]},{"url":"https://github.com/grpc/grpc-go/releases/tag/v1.83.1","name":"https://github.com/grpc/grpc-go/releases/tag/v1.83.1","tags":["x_refsource_MISC"]}],"metrics":[{"cvssV4_0":{"attackVector":"NETWORK","attackComplexity":"LOW","attackRequirements":"PRESENT","privilegesRequired":"NONE","userInteraction":"NONE","vulnConfidentialityImpact":"LOW","vulnIntegrityImpact":"LOW","vulnAvailabilityImpact":"NONE","subConfidentialityImpact":"NONE","subIntegrityImpact":"NONE","subAvailabilityImpact":"NONE","baseScore":6.3,"baseSeverity":"MEDIUM","vectorString":"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","version":"4.0"}}],"problemTypes":[{"descriptions":[{"cweId":"CWE-178","lang":"en","description":"CWE-178: Improper Handling of Case Sensitivity","type":"CWE"}]},{"descriptions":[{"cweId":"CWE-863","lang":"en","description":"CWE-863: Incorrect Authorization","type":"CWE"}]}],"providerMetadata":{"shortName":"GitHub_M","orgId":"a0819718-46f1-4df5-94e2-005712e83aaa","dateUpdated":"2026-09-01T18:14:37.870Z"},"source":{"advisory":"GHSA-qc2q-p7wx-3px3","discovery":"UNKNOWN"}},"adp":[{"title":"CISA ADP Vulnrichment","metrics":[{"other":{"type":"ssvc","content":{"timestamp":"2026-09-02T19:14:42.460152Z","id":"CVE-2026-84303","options":[{"Exploitation":"none"},{"Automatable":"yes"},{"Technical Impact":"partial"}],"role":"CISA Coordinator","version":"2.0.3"}}}],"providerMetadata":{"shortName":"CISA-ADP","orgId":"134c704f-9b21-4f2e-91b3-4a467353bcc0","dateUpdated":"2026-09-02T19:14:49.353Z"}}]}}}