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 vulnerability due to improper input validation of the HTTP/2 :path pseudo-header. The server routing logic accepts requests where the :path header omits the leading slash (e.g., 'Service/Method' instead of '/Service/Method'). While routing succeeds, authorization interceptors evaluate the raw non-canonical path, causing deny rules that expect canonical paths to fail and allowing bypass if fallback allow rules exist. This affects servers using path-based authorization interceptors like the official grpc/authz package. The vulnerability can be exploited remotely by sending malformed HTTP/2 frames with a malformed :path header. The issue is tracked as CWE-285 (Improper Authorization) and CWE-551 (Incorrect Behavior Order).
Potential Impact
This vulnerability allows remote attackers to bypass authorization policies on grpc-go servers that rely on path-based authorization interceptors. Unauthorized access to services or information disclosure may occur if fallback allow rules are present. The CVSS v3.1 score is 9.1 (critical) with high confidentiality and integrity impact, no availability impact, and no privileges or user interaction required.
Mitigation Recommendations
A fix is available in grpc-go version 1.79.3. Users should upgrade to this version to resolve the vulnerability. Alternatively, infrastructure-level mitigation can be applied by configuring a reverse proxy or API gateway to normalize incoming HTTP/2 :path headers, ensuring they include the mandatory leading slash before reaching the grpc-go server. Proper configuration and restarting of intermediaries is required to apply this mitigation. No other vendor official fixes or workarounds are indicated.
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
grpc
grpc-go
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 vulnerability due to improper input validation of the HTTP/2 :path pseudo-header. The server routing logic accepts requests where the :path header omits the leading slash (e.g., 'Service/Method' instead of '/Service/Method'). While routing succeeds, authorization interceptors evaluate the raw non-canonical path, causing deny rules that expect canonical paths to fail and allowing bypass if fallback allow rules exist. This affects servers using path-based authorization interceptors like the official grpc/authz package. The vulnerability can be exploited remotely by sending malformed HTTP/2 frames with a malformed :path header. The issue is tracked as CWE-285 (Improper Authorization) and CWE-551 (Incorrect Behavior Order).
Potential Impact
This vulnerability allows remote attackers to bypass authorization policies on grpc-go servers that rely on path-based authorization interceptors. Unauthorized access to services or information disclosure may occur if fallback allow rules are present. The CVSS v3.1 score is 9.1 (critical) with high confidentiality and integrity impact, no availability impact, and no privileges or user interaction required.
Mitigation Recommendations
A fix is available in grpc-go version 1.79.3. Users should upgrade to this version to resolve the vulnerability. Alternatively, infrastructure-level mitigation can be applied by configuring a reverse proxy or API gateway to normalize incoming HTTP/2 :path headers, ensuring they include the mandatory leading slash before reaching the grpc-go server. Proper configuration and restarting of intermediaries is required to apply this mitigation. No other vendor official fixes or workarounds are indicated.
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: 08/14/2026, 13:07:06 UTC
Last updated: 09/17/2026, 17:38:18 UTC
Views: 632
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.