Cyber Resilience

CVE-2026-33186

Access Control in Grpc ≤ 1.79.3

Published
20 March 2026
Modified
13 August 2026
Patch / advisory
CVSS Score v3.1 9.1
Click a component to see what it means
Raw vectorCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N
EPSS Score 0.016 73th percentile
Risk Priority 70 floored blend · peak EPSS

Summary

CVE-2026-33186 is a critical-severity Improper Authorization (CWE-285) vulnerability in Grpc Grpc. Its CVSS base score is 9.1 (Critical).

Operationally, exploitation aligns with the MITRE ATT&CK technique Exploit Public-Facing Application (T1190); ranked in the top 27% of CVEs by exploit likelihood; it is not currently listed in the CISA KEV catalog.

The strongest mitigations our analysis identified map to AC-24 (Access Control Decisions) and AC-25 (Reference Monitor) — see the control section below for these in your framework.

Deeper analysis AI-assisted summary

Synthesised by an AI model from the NVD description and linked references — a reading aid, not an authoritative source.

CVE-2026-33186 is an authorization bypass vulnerability in gRPC-Go, the Go language implementation of gRPC, affecting versions prior to 1.79.3. The issue stems from improper input validation of the HTTP/2 `:path` pseudo-header, where the server accepts requests with paths omitting the mandatory leading slash (e.g., `Service/Method` instead of `/Service/Method`). While the server routes these to the correct handler, authorization interceptors, such as the official `grpc/authz` package or custom ones relying on `info.FullMethod` or `grpc.Method(ctx)`, evaluate the raw non-canonical path. This prevents "deny" rules defined for canonical paths (starting with `/`) from matching, allowing bypass if a fallback "allow" rule exists. It impacts gRPC-Go servers using path-based authorization with such policies.

Any network-accessible attacker can exploit this by sending raw HTTP/2 frames with a malformed `:path` header lacking the leading slash, requiring no privileges (AV:N/AC:L/PR:N). Successful exploitation bypasses authorization checks, granting unauthorized access to protected methods and enabling high confidentiality and integrity impacts (CVSS 9.1: C:H/I:H/A:N), mapped to CWE-285 (Improper Authorization).

The advisory at https://github.com/grpc/grpc-go/security/advisories/GHSA-p77j-4mvh-x3m3 details the fix in version 1.79.3, which rejects requests without a leading slash in `:path` with a `codes.Unimplemented` error before reaching interceptors or handlers. Upgrading is recommended; alternative mitigations include a validating interceptor to normalize or reject paths, infrastructure-level HTTP/2 normalization, or hardening policies to deny non-canonical paths explicitly.

OWASP Top 10 for Web (2025)

EU & UK References

Vulnerability Data

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…

more

`: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.

CWE(s)

Related Threats

MITRE ATT&CK Enterprise Techniques

T1190 Exploit Public-Facing Application Initial Access
Adversaries may attempt to exploit a weakness in an Internet-facing host or system to initially access a network.
T1548 Abuse Elevation Control Mechanism Privilege Escalation
Adversaries may circumvent mechanisms designed to control privilege elevation to gain higher-level permissions.
T1548.001 Setuid and Setgid Privilege Escalation
An adversary may abuse configurations where an application has the setuid or setgid bits set in order to get code running in a different (and possibly more privileged) user’s context.
T1548.002 Bypass User Account Control Privilege Escalation
Adversaries may bypass UAC mechanisms to elevate process privileges on system.
T1548.003 Sudo and Sudo Caching Privilege Escalation
Adversaries may perform sudo caching and/or use the sudoers file to elevate privileges.
T1574.005 Executable Installer File Permissions Weakness Stealth
Adversaries may execute their own malicious payloads by hijacking the binaries used by an installer.
Derived from this CVE’s CWE(s) via the direct CWE→ATT&CK cross-walk.

CVEs Like This One

CVE-2024-11407Same product: Grpc Grpc
CVE-2023-1428Same product: Grpc Grpc
CVE-2023-4785Same product: Grpc Grpc
CVE-2023-33953Same product: Grpc Grpc
CVE-2023-32731Same product: Grpc Grpc
CVE-2024-7246Same product: Grpc Grpc
CVE-2023-32732Same product: Grpc Grpc
CVE-2025-22169Shared CWE-285
CVE-2023-32168Shared CWE-285
CVE-2026-47726Shared CWE-285

Affected Assets

grpc
grpc
≤ 1.79.3

Mitigating Controls

Control response

Prevent
Stop it (NIST 800-53)

Detect
Catch it (NIST detect / respond)

Harden
Shrink the surface (DISA STIG)
  • 6 hardening rules · 3 OS baselines
Validate
Prove the fix (OWASP ASVS)

Mitigating Controls (NIST 800-53 r5) AI

Mandates that access-control decisions are made and applied to each request before access occurs.

Requires a tamperproof, always-invoked reference monitor that performs authorization checks.

Directly requires enforcement of approved authorizations for every access request, stopping improper or missing checks.

Limits granted privileges so that even a bypassed check affects fewer resources.

SI-10 mandates validation (including canonicalization) of inputs before security decisions are made, directly stopping the incorrect ordering that enables the bypass.

Mitigating Controls (NIST CSF 2.0) AI

Derived directly from the weakness types (CWEs) cited in the NVD entry via our AI-authored CWE→CSF cross-walk (authority under review) — links open the control.

PR.AA-05 mostly match
prevents

PR.AA-05 mostly prevents CWE-285 via enforced policy, reviews, and least-privilege authorization decisions, yet CWE-285 remains only partially prevented because code-level check omissions or errors can still occur outside that single control.

PR.PS-06 mostly match
prevents

Secure SDLC practices catch and eliminate most authorization defects before release, yet a single broad outcome cannot address every design, role, and runtime facet of CWE-285.

PR.AA-01 partial match
prevents

PR.AA-01 supplies managed identities and access-request workflows that can support downstream authorization decisions, yet does nothing to enforce or verify authorization checks inside a product, leaving CWE-285 fully unaddressed by this control alone.

PR.IR-01 partial match
prevents

Network segmentation/zero-trust limits external reachability (partial prevention of exploitation) but leaves application-level authorization logic untouched, so the CWE remains fully introducible and only one facet of its risk is addressed.

PR.PS-05 none match
prevents

PR.PS-05 blocks unauthorized binaries/DNS while CWE-285 is an in-product authorization-check defect, so the control neither prevents the weakness nor removes any of its risk.

Mitigating Controls (ISO/IEC 27001:2022 Annex A) AI

Derived directly from the weakness types (CWEs) cited in the NVD entry via our AI-authored CWE→ISO cross-walk (authority under review) — links open the control.

finds

Security testing can detect this weakness but does not prevent it by itself.

prevents

Granular, policy-driven assignment of permissions and dynamic enforcement of those permissions prevent the incorrect or missing authorization decisions that lead to improper authorization flaws.

prevents

By requiring documented authorization rules and periodic policy reviews, the control makes it less likely that authorization decisions will be omitted or implemented inconsistently across applications.

prevents

Mapping access rights to information classification and business requirements forces correct enforcement of authorization decisions, blocking the incorrect authorization weakness at the policy and implementation stage.

finds

Independent reviewers evaluate whether authorization logic matches policy, thereby reducing the window in which incorrect or missing authorization checks remain in production.

finds

By requiring managers to verify that authorization decisions match policy and to remediate deviations, the control limits the persistence of incorrect or missing authorization checks.

Hardening callouts derived

Configuration rules from DISA STIG baselines that bear on weaknesses of the type cited by this CVE. Each rule is shown with the relationship its mapping actually records, against the CWE it was authored against. Derived via CVE→CWE over `controls_xwalks` (authoritative rows only; rows rated `none` are excluded).

Oracle Linux 8 (2 rules)
  • V-252656 The OL 8 operating system must not be configured to bypass password requirements for privilege escalation. prevents CWE-285
  • V-248581 OL 8 must require users to provide a password for privilege escalation. prevents CWE-285
RHEL 7 (3 rules)
  • V-204429 The Red Hat Enterprise Linux operating system must be configured so that users must provide a password for privilege escalation. prevents CWE-285
  • V-204430 The Red Hat Enterprise Linux operating system must be configured so that users must re-authenticate for privilege escalation. prevents CWE-285
  • V-251704 The Red Hat Enterprise Linux operating system must not be configured to bypass password requirements for privilege escalation. prevents CWE-285
RHEL 8 (1 rule)
  • V-251712 The RHEL 8 operating system must not be configured to bypass password requirements for privilege escalation. prevents CWE-285

References