CVE-2026-33186 gRPC-Go has an authorization bypass via missing leading slash in :path

Critical 9.1 Published Updated

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.

Weakness: CWE-551, CWE-285

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.

PackageAffectedFixed in
google.golang.org/grpc GoAll versions1.79.3
google.golang.org/grpc GoAll versions1.79.3
google.golang.org/grpc GoAll versions1.79.3
Linux distribution packages (37)
rhc Red Hat:enterprise_linux:8::appstreamAll versions1:0.2.5-6.el8_10
rhc-debuginfo Red Hat:enterprise_linux:8::appstreamAll versions1:0.2.5-6.el8_10
rhc-debugsource Red Hat:enterprise_linux:8::appstreamAll versions1:0.2.5-6.el8_10
rhc Red Hat:enterprise_linux:9::appstreamAll versions1:0.2.7-4.el9_7
rhc-debuginfo Red Hat:enterprise_linux:9::appstreamAll versions1:0.2.7-4.el9_7
rhc-debugsource Red Hat:enterprise_linux:9::appstreamAll versions1:0.2.7-4.el9_7
rhc-debuginfo Red Hat:enterprise_linux:9::crbAll versions1:0.2.7-4.el9_7
rhc-debugsource Red Hat:enterprise_linux:9::crbAll versions1:0.2.7-4.el9_7
rhc-devel Red Hat:enterprise_linux:9::crbAll versions1:0.2.7-4.el9_7
ose-azure-acr-image-credential-provider Red Hat:openshift:4.15::el8All versions0:4.15.0-202606231944.p2.g5638728.assembly.stream.el8
ose-azure-acr-image-credential-provider Red Hat:openshift:4.15::el9All versions0:4.15.0-202606231944.p2.g5638728.assembly.stream.el9
ose-azure-acr-image-credential-provider Red Hat:openshift:4.16::el8All versions0:4.16.0-202606221818.p2.ga3ebdc0.assembly.stream.el8
microshift Red Hat:openshift:4.16::el9All versions0:4.16.63-202605251227.p0.g1133ac0.assembly.4.16.63.el9
microshift-greenboot Red Hat:openshift:4.16::el9All versions0:4.16.63-202605251227.p0.g1133ac0.assembly.4.16.63.el9
microshift-multus Red Hat:openshift:4.16::el9All versions0:4.16.63-202605251227.p0.g1133ac0.assembly.4.16.63.el9
microshift-multus-release-info Red Hat:openshift:4.16::el9All versions0:4.16.63-202605251227.p0.g1133ac0.assembly.4.16.63.el9
microshift-networking Red Hat:openshift:4.16::el9All versions0:4.16.63-202605251227.p0.g1133ac0.assembly.4.16.63.el9
microshift-olm Red Hat:openshift:4.16::el9All versions0:4.16.63-202605251227.p0.g1133ac0.assembly.4.16.63.el9
microshift-olm-release-info Red Hat:openshift:4.16::el9All versions0:4.16.63-202605251227.p0.g1133ac0.assembly.4.16.63.el9
microshift-release-info Red Hat:openshift:4.16::el9All versions0:4.16.63-202605251227.p0.g1133ac0.assembly.4.16.63.el9
microshift-selinux Red Hat:openshift:4.16::el9All versions0:4.16.63-202605251227.p0.g1133ac0.assembly.4.16.63.el9
ose-azure-acr-image-credential-provider Red Hat:openshift:4.16::el9All versions0:4.16.0-202606221818.p2.ga3ebdc0.assembly.stream.el9
ose-azure-acr-image-credential-provider Red Hat:openshift:4.18::el8All versions0:4.18.0-202606160919.p2.g9795abd.assembly.stream.el8
microshift Red Hat:openshift:4.18::el9All versions0:4.18.42-202605181217.p0.gf4eeb37.assembly.4.18.42.el9
microshift-gateway-api Red Hat:openshift:4.18::el9All versions0:4.18.42-202605181217.p0.gf4eeb37.assembly.4.18.42.el9
microshift-gateway-api-release-info Red Hat:openshift:4.18::el9All versions0:4.18.42-202605181217.p0.gf4eeb37.assembly.4.18.42.el9
microshift-greenboot Red Hat:openshift:4.18::el9All versions0:4.18.42-202605181217.p0.gf4eeb37.assembly.4.18.42.el9
microshift-low-latency Red Hat:openshift:4.18::el9All versions0:4.18.42-202605181217.p0.gf4eeb37.assembly.4.18.42.el9
microshift-multus Red Hat:openshift:4.18::el9All versions0:4.18.42-202605181217.p0.gf4eeb37.assembly.4.18.42.el9
microshift-multus-release-info Red Hat:openshift:4.18::el9All versions0:4.18.42-202605181217.p0.gf4eeb37.assembly.4.18.42.el9
microshift-networking Red Hat:openshift:4.18::el9All versions0:4.18.42-202605181217.p0.gf4eeb37.assembly.4.18.42.el9
microshift-olm Red Hat:openshift:4.18::el9All versions0:4.18.42-202605181217.p0.gf4eeb37.assembly.4.18.42.el9
microshift-olm-release-info Red Hat:openshift:4.18::el9All versions0:4.18.42-202605181217.p0.gf4eeb37.assembly.4.18.42.el9
microshift-release-info Red Hat:openshift:4.18::el9All versions0:4.18.42-202605181217.p0.gf4eeb37.assembly.4.18.42.el9
microshift-selinux Red Hat:openshift:4.18::el9All versions0:4.18.42-202605181217.p0.gf4eeb37.assembly.4.18.42.el9
ose-azure-acr-image-credential-provider Red Hat:openshift:4.18::el9All versions0:4.18.0-202606160919.p2.g9795abd.assembly.stream.el9
microshift Red Hat:openshift:4.19::el9All versions0: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.

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.

Is CVE-2026-33186 in your software?

Upload an SBOM and sbomify checks it against every vulnerability here, every day.

Check your SBOMs for free