CVE-2026-33186: CWE-285: Improper Authorization in grpc grpc-go
gRPC-Go is the Go language implementation of gRPC. Versions prior to 1.79.3 have an authorization bypass resulting from improper input validation of the HTTP/2 `:path` pseudo-header. The gRPC-Go server was too lenient in its routing logic, accepting requests where the `:path` omitted the mandatory leading slash (e.g., `Service/Method` instead of `/Service/Method`). While the server successfully routed these requests to the correct handler, authorization interceptors (including the official `grpc/authz` package) evaluated the raw, non-canonical path string. Consequently, "deny" rules defined using canonical paths (starting with `/`) failed to match the incoming request, allowing it to bypass the policy if a fallback "allow" rule was present. This affects gRPC-Go servers that use path-based authorization interceptors, such as the official RBAC implementation in `google.golang.org/grpc/authz` or custom interceptors relying on `info.FullMethod` or `grpc.Method(ctx)`; AND that have a security policy contains specific "deny" rules for canonical paths but allows other requests by default (a fallback "allow" rule). The vulnerability is exploitable by an attacker who can send raw HTTP/2 frames with malformed `:path` headers directly to the gRPC server. The fix in version 1.79.3 ensures that any request with a `:path` that does not start with a leading slash is immediately rejected with a `codes.Unimplemented` error, preventing it from reaching authorization interceptors or handlers with a non-canonical path string. While upgrading is the most secure and recommended path, users can mitigate the vulnerability using one of the following methods: Use a validating interceptor (recommended mitigation); infrastructure-level normalization; and/or policy hardening.
AI Analysis
Technical Summary
gRPC-Go versions before 1.79.3 have an authorization bypass due to lenient routing logic that accepts HTTP/2 :path headers without a leading slash. While the server routes these requests correctly, authorization interceptors evaluate the raw non-canonical path, causing deny rules based on canonical paths to fail. This allows requests to bypass deny policies if a fallback allow rule is present. Exploitation requires sending raw HTTP/2 frames with malformed :path headers. The fix in version 1.79.3 rejects such requests immediately with a codes.Unimplemented error, preventing bypass. Users are advised to upgrade or apply mitigations such as validating interceptors or policy hardening.
Potential Impact
The vulnerability allows attackers to bypass path-based authorization controls on grpc-go servers that use interceptors relying on canonical paths for deny rules. This can lead to unauthorized access to gRPC methods if fallback allow rules exist in the security policy. The impact is high confidentiality and integrity risk but does not affect availability. Exploitation requires the ability to send raw HTTP/2 frames with malformed :path headers directly to the server.
Mitigation Recommendations
An official fix is available in grpc-go version 1.79.3, which rejects requests with :path headers missing the leading slash. Upgrading to this version is the most secure mitigation. Alternatively, users can deploy validating interceptors to enforce correct :path formatting, apply infrastructure-level normalization of HTTP/2 requests, or harden authorization policies to avoid fallback allow rules that could be bypassed. These mitigations reduce risk if immediate upgrade is not possible.
CVE-2026-33186: CWE-285: Improper Authorization in grpc grpc-go
Description
gRPC-Go is the Go language implementation of gRPC. Versions prior to 1.79.3 have an authorization bypass resulting from improper input validation of the HTTP/2 `:path` pseudo-header. The gRPC-Go server was too lenient in its routing logic, accepting requests where the `:path` omitted the mandatory leading slash (e.g., `Service/Method` instead of `/Service/Method`). While the server successfully routed these requests to the correct handler, authorization interceptors (including the official `grpc/authz` package) evaluated the raw, non-canonical path string. Consequently, "deny" rules defined using canonical paths (starting with `/`) failed to match the incoming request, allowing it to bypass the policy if a fallback "allow" rule was present. This affects gRPC-Go servers that use path-based authorization interceptors, such as the official RBAC implementation in `google.golang.org/grpc/authz` or custom interceptors relying on `info.FullMethod` or `grpc.Method(ctx)`; AND that have a security policy contains specific "deny" rules for canonical paths but allows other requests by default (a fallback "allow" rule). The vulnerability is exploitable by an attacker who can send raw HTTP/2 frames with malformed `:path` headers directly to the gRPC server. The fix in version 1.79.3 ensures that any request with a `:path` that does not start with a leading slash is immediately rejected with a `codes.Unimplemented` error, preventing it from reaching authorization interceptors or handlers with a non-canonical path string. While upgrading is the most secure and recommended path, users can mitigate the vulnerability using one of the following methods: Use a validating interceptor (recommended mitigation); infrastructure-level normalization; and/or policy hardening.
CVSS v3.1
Score 9.1critical
Affected software
Run on your own infrastructure? Check whether these packages are installed with threat-finder — our free open-source scanner.
AI-Powered Analysis
Machine-generated threat intelligence
Technical Analysis
gRPC-Go versions before 1.79.3 have an authorization bypass due to lenient routing logic that accepts HTTP/2 :path headers without a leading slash. While the server routes these requests correctly, authorization interceptors evaluate the raw non-canonical path, causing deny rules based on canonical paths to fail. This allows requests to bypass deny policies if a fallback allow rule is present. Exploitation requires sending raw HTTP/2 frames with malformed :path headers. The fix in version 1.79.3 rejects such requests immediately with a codes.Unimplemented error, preventing bypass. Users are advised to upgrade or apply mitigations such as validating interceptors or policy hardening.
Potential Impact
The vulnerability allows attackers to bypass path-based authorization controls on grpc-go servers that use interceptors relying on canonical paths for deny rules. This can lead to unauthorized access to gRPC methods if fallback allow rules exist in the security policy. The impact is high confidentiality and integrity risk but does not affect availability. Exploitation requires the ability to send raw HTTP/2 frames with malformed :path headers directly to the server.
Mitigation Recommendations
An official fix is available in grpc-go version 1.79.3, which rejects requests with :path headers missing the leading slash. Upgrading to this version is the most secure mitigation. Alternatively, users can deploy validating interceptors to enforce correct :path formatting, apply infrastructure-level normalization of HTTP/2 requests, or harden authorization policies to avoid fallback allow rules that could be bypassed. These mitigations reduce risk if immediate upgrade is not possible.
Technical Details
- Data Version
- 5.2
- Assigner Short Name
- GitHub_M
- Date Reserved
- 2026-03-17T22:16:36.720Z
- Cvss Version
- 3.1
- State
- PUBLISHED
- Vendor Advisory Urls
- [{"url":"https://access.redhat.com/security/cve/CVE-2026-33186","vendor":"Red Hat"},{"url":"https://access.redhat.com/errata/RHSA-2026:26997","vendor":"Red Hat"},{"url":"https://access.redhat.com/errata/RHSA-2026:27076","vendor":"Red Hat"},{"url":"https://access.redhat.com/errata/RHSA-2026:17789","vendor":"Red Hat"},{"url":"https://access.redhat.com/errata/RHSA-2026:28047","vendor":"Red Hat"},{"url":"https://access.redhat.com/errata/RHSA-2026:20436","vendor":"Red Hat"},{"url":"https://access.redhat.com/errata/RHSA-2026:18068","vendor":"Red Hat"},{"url":"https://access.redhat.com/errata/RHSA-2026:20322","vendor":"Red Hat"},{"url":"https://access.redhat.com/errata/RHSA-2026:26999","vendor":"Red Hat"},{"url":"https://access.redhat.com/errata/RHSA-2026:19719","vendor":"Red Hat"},{"url":"https://access.redhat.com/errata/RHSA-2026:27856","vendor":"Red Hat"},{"url":"https://access.redhat.com/errata/RHSA-2026:22937","vendor":"Red Hat"},{"url":"https://access.redhat.com/errata/RHSA-2026:19135","vendor":"Red Hat"},{"url":"https://access.redhat.com/errata/RHSA-2026:22450","vendor":"Red Hat"},{"url":"https://access.redhat.com/errata/RHSA-2026:10107","vendor":"Red Hat"},{"url":"https://access.redhat.com/errata/RHSA-2026:19721","vendor":"Red Hat"},{"url":"https://access.redhat.com/errata/RHSA-2026:19720","vendor":"Red Hat"},{"url":"https://access.redhat.com/errata/RHSA-2026:27712","vendor":"Red Hat"},{"url":"https://access.redhat.com/errata/RHSA-2026:10705","vendor":"Red Hat"},{"url":"https://access.redhat.com/errata/RHSA-2026:10706","vendor":"Red Hat"},{"url":"https://access.redhat.com/errata/RHSA-2026:23228","vendor":"Red Hat"},{"url":"https://access.redhat.com/errata/RHSA-2026:19353","vendor":"Red Hat"},{"url":"https://access.redhat.com/errata/RHSA-2026:22714","vendor":"Red Hat"},{"url":"https://access.redhat.com/errata/RHSA-2026:19207","vendor":"Red Hat"},{"url":"https://access.redhat.com/errata/RHSA-2026:9872","vendor":"Red Hat"},{"url":"https://access.redhat.com/errata/RHSA-2026:22423","vendor":"Red Hat"},{"url":"https://access.redhat.com/errata/RHSA-2026:22347","vendor":"Red Hat"},{"url":"https://access.redhat.com/errata/RHSA-2026:21769","vendor":"Red Hat"},{"url":"https://access.redhat.com/errata/RHSA-2026:23345","vendor":"Red Hat"},{"url":"https://access.redhat.com/errata/RHSA-2026:6428","vendor":"Red Hat"},{"url":"https://access.redhat.com/errata/RHSA-2026:29854","vendor":"Red Hat"},{"url":"https://access.redhat.com/errata/RHSA-2026:26568","vendor":"Red Hat"},{"url":"https://access.redhat.com/errata/RHSA-2026:8433","vendor":"Red Hat"},{"url":"https://access.redhat.com/errata/RHSA-2026:22645","vendor":"Red Hat"},{"url":"https://access.redhat.com/errata/RHSA-2026:25127","vendor":"Red Hat"},{"url":"https://access.redhat.com/errata/RHSA-2026:13548","vendor":"Red Hat"},{"url":"https://access.redhat.com/errata/RHSA-2026:8151","vendor":"Red Hat"},{"url":"https://access.redhat.com/errata/RHSA-2026:11408","vendor":"Red Hat"},{"url":"https://access.redhat.com/errata/RHSA-2026:11803","vendor":"Red Hat"},{"url":"https://access.redhat.com/errata/RHSA-2026:13829","vendor":"Red Hat"},{"url":"https://access.redhat.com/errata/RHSA-2026:7110","vendor":"Red Hat"},{"url":"https://access.redhat.com/errata/RHSA-2026:11070","vendor":"Red Hat"},{"url":"https://access.redhat.com/errata/RHSA-2026:7128","vendor":"Red Hat"},{"url":"https://access.redhat.com/errata/RHSA-2026:13791","vendor":"Red Hat"},{"url":"https://access.redhat.com/errata/RHSA-2026:27893","vendor":"Red Hat"},{"url":"https://access.redhat.com/errata/RHSA-2026:27901","vendor":"Red Hat"},{"url":"https://access.redhat.com/errata/RHSA-2026:27957","vendor":"Red Hat"},{"url":"https://access.redhat.com/errata/RHSA-2026:27892","vendor":"Red Hat"},{"url":"https://access.redhat.com/errata/RHSA-2026:6174","vendor":"Red Hat"},{"url":"https://access.redhat.com/errata/RHSA-2026:6802","vendor":"Red Hat"},{"url":"https://access.redhat.com/errata/RHSA-2026:22485","vendor":"Red Hat"},{"url":"https://access.redhat.com/errata/RHSA-2026:24977","vendor":"Red Hat"},{"url":"https://access.redhat.com/errata/RHSA-2026:10698","vendor":"Red Hat"},{"url":"https://access.redhat.com/errata/RHSA-2026:19712","vendor":"Red Hat"},{"url":"https://access.redhat.com/errata/RHSA-2026:10155","vendor":"Red Hat"},{"url":"https://access.redhat.com/errata/RHSA-2026:10158","vendor":"Red Hat"},{"url":"https://access.redhat.com/errata/RHSA-2026:21696","vendor":"Red Hat"},{"url":"https://access.redhat.com/errata/RHSA-2026:21697","vendor":"Red Hat"},{"url":"https://access.redhat.com/errata/RHSA-2026:12283","vendor":"Red Hat"},{"url":"https://access.redhat.com/errata/RHSA-2026:21691","vendor":"Red Hat"},{"url":"https://access.redhat.com/errata/RHSA-2026:21692","vendor":"Red Hat"},{"url":"https://access.redhat.com/errata/RHSA-2026:25009","vendor":"Red Hat"},{"url":"https://access.redhat.com/errata/RHSA-2026:15092","vendor":"Red Hat"},{"url":"https://access.redhat.com/errata/RHSA-2026:23234","vendor":"Red Hat"},{"url":"https://access.redhat.com/errata/RHSA-2026:23235","vendor":"Red Hat"},{"url":"https://access.redhat.com/errata/RHSA-2026:14775","vendor":"Red Hat"},{"url":"https://access.redhat.com/errata/RHSA-2026:25045","vendor":"Red Hat"},{"url":"https://access.redhat.com/errata/RHSA-2026:20088","vendor":"Red Hat"},{"url":"https://access.redhat.com/errata/RHSA-2026:20089","vendor":"Red Hat"},{"url":"https://access.redhat.com/errata/RHSA-2026:10105","vendor":"Red Hat"},{"url":"https://access.redhat.com/errata/RHSA-2026:17598","vendor":"Red Hat"},{"url":"https://access.redhat.com/errata/RHSA-2026:17599","vendor":"Red Hat"},{"url":"https://access.redhat.com/errata/RHSA-2026:21657","vendor":"Red Hat"},{"url":"https://access.redhat.com/errata/RHSA-2026:25182","vendor":"Red Hat"},{"url":"https://access.redhat.com/errata/RHSA-2026:21658","vendor":"Red Hat"},{"url":"https://access.redhat.com/errata/RHSA-2026:27001","vendor":"Red Hat"},{"url":"https://access.redhat.com/errata/RHSA-2026:17448","vendor":"Red Hat"},{"url":"https://access.redhat.com/errata/RHSA-2026:25183","vendor":"Red Hat"},{"url":"https://access.redhat.com/errata/RHSA-2026:12119","vendor":"Red Hat"},{"url":"https://access.redhat.com/errata/RHSA-2026:12118","vendor":"Red Hat"},{"url":"https://access.redhat.com/errata/RHSA-2026:8449","vendor":"Red Hat"},{"url":"https://access.redhat.com/errata/RHSA-2026:23246","vendor":"Red Hat"},{"url":"https://access.redhat.com/errata/RHSA-2026:20041","vendor":"Red Hat"},{"url":"https://access.redhat.com/errata/RHSA-2026:20042","vendor":"Red Hat"},{"url":"https://access.redhat.com/errata/RHSA-2026:27004","vendor":"Red Hat"},{"url":"https://access.redhat.com/errata/RHSA-2026:23247","vendor":"Red Hat"},{"url":"https://access.redhat.com/errata/RHSA-2026:25201","vendor":"Red Hat"},{"url":"https://access.redhat.com/errata/RHSA-2026:10093","vendor":"Red Hat"},{"url":"https://access.redhat.com/errata/RHSA-2026:10094","vendor":"Red Hat"},{"url":"https://access.redhat.com/errata/RHSA-2026:21703","vendor":"Red Hat"},{"url":"https://access.redhat.com/errata/RHSA-2026:27063","vendor":"Red Hat"},{"url":"https://access.redhat.com/errata/RHSA-2026:17468","vendor":"Red Hat"},{"url":"https://access.redhat.com/errata/RHSA-2026:24535","vendor":"Red Hat"},{"url":"https://access.redhat.com/errata/RHSA-2026:21704","vendor":"Red Hat"},{"url":"https://access.redhat.com/errata/RHSA-2026:25195","vendor":"Red Hat"},{"url":"https://access.redhat.com/errata/RHSA-2026:25194","vendor":"Red Hat"},{"url":"https://access.redhat.com/errata/RHSA-2026:6564","vendor":"Red Hat"},{"url":"https://access.redhat.com/errata/RHSA-2026:24759","vendor":"Red Hat"},{"url":"https://access.redhat.com/errata/RHSA-2026:17474","vendor":"Red Hat"},{"url":"https://access.redhat.com/errata/RHSA-2026:21709","vendor":"Red Hat"},{"url":"https://access.redhat.com/errata/RHSA-2026:24506","vendor":"Red Hat"},{"url":"https://access.redhat.com/errata/RHSA-2026:20034","vendor":"Red Hat"},{"url":"https://access.redhat.com/errata/RHSA-2026:20035","vendor":"Red Hat"},{"url":"https://access.redhat.com/errata/RHSA-2026:25187","vendor":"Red Hat"},{"url":"https://access.redhat.com/errata/RHSA-2026:7245","vendor":"Red Hat"},{"url":"https://access.redhat.com/errata/RHSA-2026:23241","vendor":"Red Hat"},{"url":"https://access.redhat.com/errata/RHSA-2026:17475","vendor":"Red Hat"},{"url":"https://access.redhat.com/errata/RHSA-2026:21710","vendor":"Red Hat"},{"url":"https://access.redhat.com/errata/RHSA-2026:22800","vendor":"Red Hat"},{"url":"https://access.redhat.com/errata/RHSA-2026:10175","vendor":"Red Hat"},{"url":"https://access.redhat.com/errata/RHSA-2026:20946","vendor":"Red Hat"},{"url":"https://access.redhat.com/errata/RHSA-2026:20943","vendor":"Red Hat"},{"url":"https://access.redhat.com/errata/RHSA-2026:26519","vendor":"Red Hat"},{"url":"https://access.redhat.com/errata/RHSA-2026:24484","vendor":"Red Hat"},{"url":"https://access.redhat.com/errata/RHSA-2026:21932","vendor":"Red Hat"},{"url":"https://access.redhat.com/errata/RHSA-2026:21931","vendor":"Red Hat"},{"url":"https://access.redhat.com/errata/RHSA-2026:8483","vendor":"Red Hat"},{"url":"https://access.redhat.com/errata/RHSA-2026:9440","vendor":"Red Hat"},{"url":"https://access.redhat.com/errata/RHSA-2026:8484","vendor":"Red Hat"},{"url":"https://access.redhat.com/errata/RHSA-2026:9448","vendor":"Red Hat"},{"url":"https://access.redhat.com/errata/RHSA-2026:8490","vendor":"Red Hat"},{"url":"https://access.redhat.com/errata/RHSA-2026:9453","vendor":"Red Hat"},{"url":"https://access.redhat.com/errata/RHSA-2026:8491","vendor":"Red Hat"},{"url":"https://access.redhat.com/errata/RHSA-2026:8493","vendor":"Red Hat"},{"url":"https://access.redhat.com/errata/RHSA-2026:9388","vendor":"Red Hat"},{"url":"https://access.redhat.com/errata/RHSA-2026:9385","vendor":"Red Hat"},{"url":"https://access.redhat.com/errata/RHSA-2026:26416","vendor":"Red Hat"},{"url":"https://access.redhat.com/errata/RHSA-2026:26420","vendor":"Red Hat"},{"url":"https://access.redhat.com/errata/RHSA-2026:26413","vendor":"Red Hat"},{"url":"https://access.redhat.com/errata/RHSA-2026:12279","vendor":"Red Hat"},{"url":"https://access.redhat.com/errata/RHSA-2026:26412","vendor":"Red Hat"},{"url":"https://access.redhat.com/errata/RHSA-2026:12277","vendor":"Red Hat"},{"url":"https://access.redhat.com/errata/RHSA-2026:11856","vendor":"Red Hat"},{"url":"https://access.redhat.com/errata/RHSA-2026:21017","vendor":"Red Hat"},{"url":"https://access.redhat.com/errata/RHSA-2026:24853","vendor":"Red Hat"},{"url":"https://access.redhat.com/errata/RHSA-2026:19375","vendor":"Red Hat"},{"url":"https://access.redhat.com/errata/RHSA-2026:22465","vendor":"Red Hat"},{"url":"https://access.redhat.com/errata/RHSA-2026:11916","vendor":"Red Hat"},{"url":"https://access.redhat.com/errata/RHSA-2026:11996","vendor":"Red Hat"},{"url":"https://access.redhat.com/errata/RHSA-2026:10131","vendor":"Red Hat"},{"url":"https://access.redhat.com/errata/RHSA-2026:10125","vendor":"Red Hat"},{"url":"https://access.redhat.com/errata/RHSA-2026:10130","vendor":"Red Hat"},{"url":"https://access.redhat.com/errata/RHSA-2026:10126","vendor":"Red Hat"},{"url":"https://access.redhat.com/errata/RHSA-2026:10172","vendor":"Red Hat"},{"url":"https://access.redhat.com/errata/RHSA-2026:10153","vendor":"Red Hat"},{"url":"https://access.redhat.com/errata/RHSA-2026:8338","vendor":"Red Hat"},{"url":"https://access.redhat.com/errata/RHSA-2026:22959","vendor":"Red Hat"},{"url":"https://access.redhat.com/errata/RHSA-2026:22961","vendor":"Red Hat"},{"url":"https://access.redhat.com/errata/RHSA-2026:24536","vendor":"Red Hat"},{"url":"https://access.redhat.com/errata/RHSA-2026:19099","vendor":"Red Hat"},{"url":"https://access.redhat.com/errata/RHSA-2026:12116","vendor":"Red Hat"},{"url":"https://access.redhat.com/errata/RHSA-2026:12337","vendor":"Red Hat"},{"url":"https://access.redhat.com/errata/RHSA-2026:19108","vendor":"Red Hat"},{"url":"https://access.redhat.com/errata/RHSA-2026:17459","vendor":"Red Hat"},{"url":"https://access.redhat.com/errata/RHSA-2026:17123","vendor":"Red Hat"},{"url":"https://access.redhat.com/errata/RHSA-2026:22689","vendor":"Red Hat"},{"url":"https://access.redhat.com/errata/RHSA-2026:18585","vendor":"Red Hat"},{"url":"https://access.redhat.com/errata/RHSA-2026:19109","vendor":"Red Hat"}]
Threat ID: 69bdcad201d25e334c8cba93
Added to database: 03/20/2026, 22:31:46 UTC
Last enriched: 07/30/2026, 21:37:57 UTC
Last updated: 08/01/2026, 19:44:48 UTC
Views: 559
Community Reviews
0 reviewsCrowdsource mitigation strategies, share intel context, and vote on the most helpful responses. Sign in to add your voice and help keep defenders ahead.
Want to contribute mitigation steps or threat intel context? Sign in or create an account to join the community discussion.
Actions
Updates to AI analysis require Pro Console access. Upgrade inside Console → Billing.
External Links
Need more coverage?
Upgrade to Pro Console for AI refresh and higher limits.
For incident response and remediation, OffSeq services can help resolve threats faster.
Latest Threats
Check if your credentials are on the dark web
Instant breach scanning across billions of leaked records. Free tier available.