GHSA-qc2q-p7wx-3px3: Go/google.golang.org/grpc vulnerability

Published Sep 8, 2026
·
Updated

Summary A vulnerability in the xDS RBAC HTTP filter implementation in grpc-go allows remote attackers to bypass authorization policies (specifically DENY rules) by using mixed-case or canonical-case header matchers (e.g., X-Role instead of x-role). Additionally, the safety guards introduced by gRFC A41 to block grpc- prefixed headers can be evaded via variations in casing (e.g., Grpc-Status).

Impact When an operator defines an RBAC policy referencing headers containing uppercase letters (e.g. X-Role), grpc-go fails to match incoming metadata keys because they are unconditionally lowercased. Because of this case-sensitivity mismatch, a policy designed to block requests containing specific header values fails open: the rule is evaluated as a non-match, and traffic that should have been rejected is served.

Furthermore, gRFC A41 requires rejecting configuration schemas specifying header matchers starting with grpc-. Because this check is executed case-sensitively in grpc-go, attackers can bypass the validation by specifying titles like Grpc-Status.

Patches The problem is fixed in master and in the 1.83.1 release.

Affected Software

1 affected componentFixes available
go/google.golang.org/grpc<=1.83.0
1.83.1

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Upgrade

    Upgrade go/google.golang.org/grpc to a version that resolves this vulnerability.

    Fixed in 1.83.1
  2. Upgrade

    Upgrade grpc-go to a version that resolves this vulnerability.

    Fixed in master
  3. Upgrade

    Upgrade grpc-go to a version that resolves this vulnerability.

    Fixed in 1.83.1
  4. Configuration

    Update gRFC A41-compliant RBAC configuration schemas to reject header matcher entries starting with "grpc-" (the safety guards should not be configured to allow those header matchers).

    gRPC xDS RBAC HTTP filter header matcher names = must not specify grpc- prefixed headers (including any casing variations)
  5. Configuration

    When defining RBAC policies, ensure referenced header matcher keys are lowercase because incoming metadata keys are unconditionally lowercased by grpc-go, causing DENY rules not to match if the policy uses uppercase letters (e.g., X-Role).

    gRPC xDS RBAC HTTP filter header matcher names (case) = use lowercase header matcher names (e.g., x-role instead of X-Role)

Event History

Sep 8, 2026
Advisory Published
via GitHub·08:50 PM
Data Sourced
via GitHub·08:50 PM
DescriptionWeaknessAffected Software

Frequently Asked Questions

1

Which deployments are exposed to authorization bypass?

Deployments using grpc-go's xDS RBAC HTTP filter are exposed when an RBAC DENY policy references a header name containing uppercase letters, such as X-Role. Incoming metadata keys are lowercased, causing the DENY rule not to match and the request to be served.

2

What does an attacker need to do to bypass an affected DENY rule?

An attacker needs to send a request whose metadata would otherwise be blocked by a DENY rule that uses an uppercase or canonical-case header matcher. The case mismatch causes grpc-go to evaluate the rule as a non-match.

3

Can grpc-prefixed header restrictions be bypassed?

Yes. The configuration validation intended to reject header matchers beginning with grpc- is case-sensitive, so a differently cased name such as Grpc-Status can evade the guard.

4

What version contains the fix?

The issue is fixed in grpc-go 1.83.1 and in master.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203