CVE-2026-33186 gRPC-Go has an authorization bypass via missing leading slash in :path
Attackers can bypass authorization rules in gRPC-Go servers by sending requests with malformed paths, requiring specific policy configurations to exploit.
- Exploited in the wild
- Not known
- Login needed
- Not needed
- Attackable
- Over the internet
- Victim action needed
- Not needed
- Fix
- Available
What is CVE-2026-33186?
CVE-2026-33186 is a critical authentication bypass vulnerability in grpc-go, published on 20 Mar 2026. An attacker can exploit it over the internet without logging in, with no action from the victim.
Official 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.
Which versions are affected by CVE-2026-33186?
3 open source packages ship an affected version, including google.golang.org/grpc. It affects 1 product.
| Package | Affected | Fixed in |
|---|---|---|
google.golang.org/grpc Go | All versions | 1.79.3 |
google.golang.org/grpc Go | All versions | 1.79.3 |
google.golang.org/grpc Go | All versions | 1.79.3 |
Linux distribution packages (37)
rhc Red Hat:enterprise_linux:8::appstream | All versions | 1:0.2.5-6.el8_10 |
rhc-debuginfo Red Hat:enterprise_linux:8::appstream | All versions | 1:0.2.5-6.el8_10 |
rhc-debugsource Red Hat:enterprise_linux:8::appstream | All versions | 1:0.2.5-6.el8_10 |
rhc Red Hat:enterprise_linux:9::appstream | All versions | 1:0.2.7-4.el9_7 |
rhc-debuginfo Red Hat:enterprise_linux:9::appstream | All versions | 1:0.2.7-4.el9_7 |
rhc-debugsource Red Hat:enterprise_linux:9::appstream | All versions | 1:0.2.7-4.el9_7 |
rhc-debuginfo Red Hat:enterprise_linux:9::crb | All versions | 1:0.2.7-4.el9_7 |
rhc-debugsource Red Hat:enterprise_linux:9::crb | All versions | 1:0.2.7-4.el9_7 |
rhc-devel Red Hat:enterprise_linux:9::crb | All versions | 1:0.2.7-4.el9_7 |
ose-azure-acr-image-credential-provider Red Hat:openshift:4.15::el8 | All versions | 0:4.15.0-202606231944.p2.g5638728.assembly.stream.el8 |
ose-azure-acr-image-credential-provider Red Hat:openshift:4.15::el9 | All versions | 0:4.15.0-202606231944.p2.g5638728.assembly.stream.el9 |
ose-azure-acr-image-credential-provider Red Hat:openshift:4.16::el8 | All versions | 0:4.16.0-202606221818.p2.ga3ebdc0.assembly.stream.el8 |
microshift Red Hat:openshift:4.16::el9 | All versions | 0:4.16.63-202605251227.p0.g1133ac0.assembly.4.16.63.el9 |
microshift-greenboot Red Hat:openshift:4.16::el9 | All versions | 0:4.16.63-202605251227.p0.g1133ac0.assembly.4.16.63.el9 |
microshift-multus Red Hat:openshift:4.16::el9 | All versions | 0:4.16.63-202605251227.p0.g1133ac0.assembly.4.16.63.el9 |
microshift-multus-release-info Red Hat:openshift:4.16::el9 | All versions | 0:4.16.63-202605251227.p0.g1133ac0.assembly.4.16.63.el9 |
microshift-networking Red Hat:openshift:4.16::el9 | All versions | 0:4.16.63-202605251227.p0.g1133ac0.assembly.4.16.63.el9 |
microshift-olm Red Hat:openshift:4.16::el9 | All versions | 0:4.16.63-202605251227.p0.g1133ac0.assembly.4.16.63.el9 |
microshift-olm-release-info Red Hat:openshift:4.16::el9 | All versions | 0:4.16.63-202605251227.p0.g1133ac0.assembly.4.16.63.el9 |
microshift-release-info Red Hat:openshift:4.16::el9 | All versions | 0:4.16.63-202605251227.p0.g1133ac0.assembly.4.16.63.el9 |
microshift-selinux Red Hat:openshift:4.16::el9 | All versions | 0:4.16.63-202605251227.p0.g1133ac0.assembly.4.16.63.el9 |
ose-azure-acr-image-credential-provider Red Hat:openshift:4.16::el9 | All versions | 0:4.16.0-202606221818.p2.ga3ebdc0.assembly.stream.el9 |
ose-azure-acr-image-credential-provider Red Hat:openshift:4.18::el8 | All versions | 0:4.18.0-202606160919.p2.g9795abd.assembly.stream.el8 |
microshift Red Hat:openshift:4.18::el9 | All versions | 0:4.18.42-202605181217.p0.gf4eeb37.assembly.4.18.42.el9 |
microshift-gateway-api Red Hat:openshift:4.18::el9 | All versions | 0:4.18.42-202605181217.p0.gf4eeb37.assembly.4.18.42.el9 |
microshift-gateway-api-release-info Red Hat:openshift:4.18::el9 | All versions | 0:4.18.42-202605181217.p0.gf4eeb37.assembly.4.18.42.el9 |
microshift-greenboot Red Hat:openshift:4.18::el9 | All versions | 0:4.18.42-202605181217.p0.gf4eeb37.assembly.4.18.42.el9 |
microshift-low-latency Red Hat:openshift:4.18::el9 | All versions | 0:4.18.42-202605181217.p0.gf4eeb37.assembly.4.18.42.el9 |
microshift-multus Red Hat:openshift:4.18::el9 | All versions | 0:4.18.42-202605181217.p0.gf4eeb37.assembly.4.18.42.el9 |
microshift-multus-release-info Red Hat:openshift:4.18::el9 | All versions | 0:4.18.42-202605181217.p0.gf4eeb37.assembly.4.18.42.el9 |
microshift-networking Red Hat:openshift:4.18::el9 | All versions | 0:4.18.42-202605181217.p0.gf4eeb37.assembly.4.18.42.el9 |
microshift-olm Red Hat:openshift:4.18::el9 | All versions | 0:4.18.42-202605181217.p0.gf4eeb37.assembly.4.18.42.el9 |
microshift-olm-release-info Red Hat:openshift:4.18::el9 | All versions | 0:4.18.42-202605181217.p0.gf4eeb37.assembly.4.18.42.el9 |
microshift-release-info Red Hat:openshift:4.18::el9 | All versions | 0:4.18.42-202605181217.p0.gf4eeb37.assembly.4.18.42.el9 |
microshift-selinux Red Hat:openshift:4.18::el9 | All versions | 0:4.18.42-202605181217.p0.gf4eeb37.assembly.4.18.42.el9 |
ose-azure-acr-image-credential-provider Red Hat:openshift:4.18::el9 | All versions | 0:4.18.0-202606160919.p2.g9795abd.assembly.stream.el9 |
microshift Red Hat:openshift:4.19::el9 | All versions | 0:4.19.32-202605212036.p0.g27d51c3.assembly.4.19.32.el9 |
Products include Grpc Grpc.
How do I fix CVE-2026-33186?
Upgrade google.golang.org/grpc to 1.79.3 or later.
Upgrade, and rotate credentials and sessions that may have been exposed. More about Authentication bypass.
Is CVE-2026-33186 being exploited?
There is no known exploitation of CVE-2026-33186 in the wild and no public exploit code.
Public exploit code: 1 proofs of concept on GitHub.
Other vulnerabilities in grpc-go
Sources
Also known as BELL-CVE-2026-33186, CLEANSTART-2026-DO16074, CLEANSTART-2026-FV50859, CLEANSTART-2026-IC49410, CLEANSTART-2026-IM29286, CLEANSTART-2026-IT57555 and 732 more.