Skip to main content

gRPC-Go CVE-2026-84304

| EUVDEUVD-2026-69420 HIGH
Uncontrolled Resource Consumption (CWE-400)
2026-09-01 GitHub_M GHSA-vp52-pcj8-j9qc
8.7
CVSS 4.0 · Vendor: GitHub_M
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Connect to exposed gRPC-Go service
  2. Delivery
    Open concurrent multiplexed HTTP/2 streams
  3. Exploit
    Flood each stream with millions of one-byte DATA frames
  4. Execution
    Exhaust server heap via recvMsg metadata accumulation
  5. Impact
    Trigger runtime panic or OOM termination

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A06:2025 - Insecure Design
ASVS 5.0
V2 - Validation and Business Logic Resource consumption limits
MITRE ATT&CK

1 technique across 1 tactic: Impact

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

No special configuration is required - the vulnerability is triggered by normal HTTP/2 framing behavior in any gRPC-Go server or client prior to 1.83.1 that accepts connections. The CVSS PR:N vector confirms no authentication is needed. The service must be network-reachable (typically on a configured gRPC TCP port). The primary limiting factor is practical: the attacker must sustain a high-volume fragmented DATA frame flood across multiple concurrent streams long enough to exhaust available memory; this may be slowed but not prevented by network bandwidth constraints, connection rate limits, or server-side MaxConcurrentStreams configuration. Services with large memory allocations will take longer to crash but remain fully vulnerable.

Impact

The CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:N/UI:N/VA:H) accurately reflects the attack surface: network-accessible, low complexity, no authentication, high availability impact. Any internet-exposed or cluster-internal gRPC-Go service is inherently reachable, and the attack requires only a standard HTTP/2 or gRPC client capable of stream multiplexing and fine-grained frame control. Even a mid-sized municipal IT team in bytom operating Go-based microservices on Kubernetes should treat this as urgent if any gRPC-Go service accepts connections from untrusted clients. No EPSS score was supplied in the input data, but the low exploitation complexity and broad deployment footprint of gRPC-Go in cloud-native Go services suggest material real-world risk. CISA KEV status is not confirmed and no public PoC has been identified at time of analysis; however, the technique is straightforward and fully described in the public security advisory. The sole practical limiting factor is the attacker's ability to sustain a high-volume fragmented stream long enough to exhaust server memory.

Exploit ScenarioDerived

An attacker establishes one or more gRPC connections to a target service and opens multiple concurrent HTTP/2 streams, sending valid but heavily fragmented DATA frames with each stream carrying millions of one-byte payloads. Because HTTP/2 flow-control only tracks payload bytes and not the number of recvMsg allocations, the server accumulates millions of heap objects per stream and exhausts available process memory. No public exploit code has been identified, but the technique is straightforward and directly described in the public GitHub advisory and the PR diff.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
1 public PoC Patch available 0.4% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Sep 01, 2026

Memory exhaustion in gRPC-Go before version 1.83.1 allows an unauthenticated remote attacker to crash any service built on this library by sending HTTP/2 streams fragmented into millions of tiny one-byte DATA frames. Each fragment is stored as a separate recvMsg object in recvBuffer, creating severe heap overhead that bypasses HTTP/2 flow-control protections - which limit payload bytes, not the number of allocated metadata objects. No public exploit has been identified at time of analysis, but the attack is fully derivable from the public GitHub advisory and PR diff.

RemediationAI

Upgrade gRPC-Go to version 1.83.1 or later, the vendor-released patch confirmed by the GitHub release at https://github.com/grpc/grpc-go/releases/tag/v1.83.1 and associated security advisory GHSA-vp52-pcj8-j9qc. As an interim control prior to patching, the receive-buffer compaction feature is on by default in 1.83.1; on unpatched builds it is not present and cannot be retroactively enabled. Network-level mitigations include enforcing a low MaxConcurrentStreams limit on gRPC server options and rate-limiting incoming connections from untrusted sources - these reduce attack surface but do not fully eliminate the vulnerability since a single sustained stream with sufficient fragmented frames may still trigger OOM. The compaction feature introduced in the fix can also be disabled as an escape hatch via GRPC_GO_EXPERIMENTAL_ENABLE_RECEIVE_BUFFER_COMPACTION=false if unforeseen regressions arise after upgrading, though this re-exposes the vulnerability and should only be used temporarily.

Affected VersionsENISA

grpc-go < 1.83.1

Affected Packages

go google.golang.org/grpc fix: 1.83.1
euvd grpc_go fix: 1.83.1

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 2 packages in go, euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

gRPC-Go (cpe:2.3:a:grpc:grpc-go:*:*:*:*:*:*:*:*) is the official Go-language implementation of gRPC, widely used for microservice RPC communication. The vulnerability is rooted in internal/transport/transport.go's recvBuffer implementation, which stores incoming HTTP/2 DATA frames as individual recvMsg entries in a backlog slice. HTTP/2 allows a single message payload to be split across many frames via stream multiplexing; the protocol's flow-control window limits payload bytes but imposes no bound on the number of recvMsg structs allocated. Each struct plus its slice header adds fixed-size heap metadata independent of payload size, so an attacker sending millions of one-byte frames generates millions of heap objects far exceeding the payload budget. CWE-400 (Uncontrolled Resource Consumption) precisely captures this: resource consumption is disproportionate to the workload the protocol's own controls are meant to allow. The fix in v1.83.1 introduces compactBacklogLocked, which coalesces small-frame backlogs into larger pooled buffers. The feature is enabled by default and governed by the GRPC_GO_EXPERIMENTAL_ENABLE_RECEIVE_BUFFER_COMPACTION environment variable.

Know when Grpc gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (GitHub_M) PRIMARY 8.7 HIGH
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
vuln.today AI 7.5 HIGH

Network-accessible with no auth or user interaction; scope unchanged; only availability is impacted as the attack causes OOM crash with no confidentiality or integrity effect.

3.1 AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
4.0 AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
SUSE 7.5 HIGH
AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Red Hat 7.5 HIGH

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
None
User Interaction
None
Vulnerable system: Confidentiality
None
Vulnerable system: Integrity
None
Vulnerable system: Availability
High
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

Lifecycle Timeline

2
Patch available
Sep 01, 2026 - 20:03 EUVD
CVE Published
Sep 01, 2026 - 18:19 cve.org
HIGH 8.7

DescriptionCVE.org

gRPC-Go is the Go language implementation of gRPC. Prior to 1.83.1, internal/transport/transport.go stores each fragmented HTTP/2 DATA frame as a separate recvMsg in recvBuffer, so millions of one-byte frames can consume disproportionate heap memory even when payload bytes remain within connection and stream flow-control windows. An unauthenticated remote attacker can use concurrent multiplexed streams to exhaust process memory and cause a runtime panic or out-of-memory termination. Receive-buffer compaction is enabled by default and can be controlled temporarily with GRPC_GO_EXPERIMENTAL_ENABLE_RECEIVE_BUFFER_COMPACTION. This issue is fixed in version 1.83.1.

Technical POC Analysis

CVE-2026-84304 (CVSS 8.7) is a CWE-400 uncontrolled resource consumption flaw in gRPC-Go before 1.83.1.

Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.

Latest POC

1 public PoC link from github

Sign in to open the public PoC links collected for this CVE.

Executive ViewAI

Why It Matters

gRPC-Go before version 1.83.1 contains a memory exhaustion vulnerability allowing unauthenticated remote attackers to crash services using this library. No public exploit has been identified, but the attack is straightforward to develop from public advisory details, creating critical risk across any gRPC-Go deployment.

Business Impact: High
Compensating Controls

No vendor-released patch identified at time of analysis. Implement HTTP/2 connection rate limiting per source IP, enforce maximum concurrent streams, configure short timeouts for frame reception, enable continuous memory monitoring with alert thresholds, deploy auto-restart policies for affected services, and consider reverse-proxy protections (nginx/Envoy). When vendor releases gRPC-Go 1.83.1, deploy immediately to all production services.

Threat Intelligence Overview

EPSS Score
0.4%
Top 65% exploitable
Prevalence
High
canonical Go gRPC library, widely used in cloud-native microservices
Threat Intel
1
1 sources
Data Quality
7 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment GHSA MSRC Vendor GitHub VulDB

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity HIGH
CISA KEV No
Public POC Yes
EPSS 0.4%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact
High
Technical Impact
Partial

Priority Score

64
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +44
PoC: +20
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.

More in Grpc

View all
CVE-2023-44487 HIGH POC
7.5 Oct 10

Denial of service against HTTP/2 server implementations allows remote unauthenticated attackers to exhaust server resour

CVE-2017-8359 CRITICAL POC
9.8 Apr 30

Google gRPC before 2017-03-29 has an out-of-bounds write caused by a heap-based use-after-free related to the grpc_call_

CVE-2026-48853 CRITICAL POC
9.2 Jun 15

Unsafe Erlang term deserialization in the elixir-grpc library (versions 0.4.0 through 1.0.0) allows unauthenticated remo

CVE-2026-48854 HIGH POC
8.7 Jun 15

Unauthenticated denial of service in the elixir-grpc library (versions 0.3.1 up to but not including 1.0.0) allows a sin

CVE-2026-48599 HIGH POC
7.6 Jun 15

Authorization bypass in elixir-grpc (grpc library for Elixir) versions 0.8.0 through 0.x allows authenticated attackers

CVE-2026-101914 MEDIUM POC
6.5 Sep 28

Authorization bypass in the @grpc/grpc-js-xds package (the xDS/RBAC extension for @grpc/grpc-js) lets a request for one

CVE-2024-7246 MEDIUM POC
6.3 Aug 06

It's possible for a gRPC client communicating with a HTTP/2 proxy to poison the HPACK table between the proxy and the ba

CVE-2017-7860 CRITICAL
9.8 Apr 14

Google gRPC before 2017-02-22 has an out-of-bounds write caused by a heap-based buffer overflow related to the parse_uni

CVE-2017-7861 CRITICAL
9.8 Apr 14

Google gRPC before 2017-02-22 has an out-of-bounds write related to the gpr_free function in core/lib/support/alloc.c. R

CVE-2017-9431 CRITICAL
9.8 Jun 05

Google gRPC before 2017-04-05 has an out-of-bounds write caused by a heap-based buffer overflow related to core/lib/iomg

CVE-2020-7768 CRITICAL
9.8 Nov 11

The package grpc before 1.24.4; the package @grpc/grpc-js before 1.1.8 are vulnerable to Prototype Pollution via loadPac

CVE-2026-53430 HIGH POC
8.7 Jun 15

Denial of service in the elixir-grpc library (versions 0.4.0 through 0.x) allows unauthenticated remote attackers to cra

Vendor StatusVendor

SUSE

Severity: Important
Product Status
SUSE Linux Enterprise Micro 5.5 Affected
SUSE Linux Enterprise Module for Containers 15 SP7 Affected
SUSE Linux Enterprise Module for Package Hub 15 SP7 Affected
SUSE Linux Enterprise Server 15 SP7 Affected
SUSE Linux Enterprise Server 16.0 Affected

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy