
PEACH
Un cadre d’isolation des locataires
CVE-2026-84304 is a heap memory exhaustion vulnerability in gRPC-Go (the Go language implementation of gRPC) caused by improper handling of fragmented HTTP/2 DATA frames. In internal/transport/transport.go, each fragmented DATA frame is stored as a separate recvMsg in recvBuffer, allowing millions of tiny (e.g., 1-byte) frames to consume disproportionate heap memory even when total payload bytes remain within configured flow-control windows. It affects all versions of google.golang.org/grpc up to and including 1.83.0, and is fixed in version 1.83.1. The vulnerability was published on September 1, 2026, with a CVSS v4.0 base score of 8.7 (High) (GitHub Advisory, Feedly).
The root cause is classified as CWE-400 (Uncontrolled Resource Consumption). In the vulnerable code path, recvBuffer.put() in internal/transport/transport.go appends each incoming HTTP/2 DATA frame as an independent recvMsg struct to a backlog slice, regardless of frame size. Because each recvMsg incurs fixed memory overhead for internal tracking structures and queue allocation (approximately 56 bytes per struct on 64-bit systems), an attacker who fragments a payload into millions of 1-byte frames can cause the per-frame overhead to vastly exceed the actual payload data — all while staying within HTTP/2 flow-control limits. By multiplexing multiple concurrent gRPC streams, an unauthenticated remote attacker can amplify this effect to exhaust the Go runtime heap, triggering a runtime panic or out-of-memory (OOM) termination. The fix introduces a compactBacklogLocked() function that coalesces consecutive small data buffers into a single pooled buffer once overhead exceeds 50% of heap usage and a compaction threshold (~57 KB / ~1024 messages) is reached (GitHub Advisory, Fix PR #9331, Commit 7354d9c).
Successful exploitation results in a complete denial of service for the affected gRPC-Go server process — either a Go runtime panic or an out-of-memory termination. There is no confidentiality or integrity impact; the vulnerability is purely an availability issue. Any service built on gRPC-Go versions ≤ 1.83.0 that accepts inbound gRPC connections (including from unauthenticated clients) is at risk, and a single attacker using concurrent multiplexed streams can bring down the entire process (GitHub Advisory, Feedly).
No public proof-of-concept exploit code has been identified, and there is no evidence of in-the-wild exploitation at this time (Feedly). The NVD SSVC assessment classifies exploitation as "none" and the attack as not automatable. The EPSS score is approximately 0.415%, indicating a low near-term exploitation probability. The vulnerability is not listed in the CISA Known Exploited Vulnerabilities (KEV) catalog. No threat actor attribution has been reported.
go.mod) in open-source projects.MaxConcurrentStreams setting allows.recvBuffer accumulates a separate recvMsg struct for each tiny frame, inflating heap usage far beyond the actual payload size. Repeating this across multiple concurrent streams rapidly exhausts available process memory./proc/<pid>/status showing VmRSS or VmHeap climbing continuously); Go runtime OOM killer messages or panic stack traces in process logs referencing runtime: out of memory or fatal error: runtime: out of memory.internal/transport/transport.go recvBuffer.put() or related functions; sudden process restart events in service managers (systemd, Kubernetes pod restarts)./var/log/syslog or dmesg referencing the gRPC server process; unexpected process crashes or container restarts correlated with high inbound network traffic.Upgrade google.golang.org/grpc to version 1.83.1 or later, which includes the receive-buffer compaction fix that coalesces small DATA frames into pooled buffers, eliminating the disproportionate memory overhead (GitHub Advisory, Release v1.83.1). As a temporary workaround for deployments that cannot immediately upgrade, receive-buffer compaction is enabled by default in v1.83.1; if you have explicitly disabled it, ensure the environment variable GRPC_GO_EXPERIMENTAL_ENABLE_RECEIVE_BUFFER_COMPACTION is set to true (or left unset). Note that setting this variable to false re-exposes the vulnerability and should be avoided. Network-level controls such as rate-limiting concurrent gRPC streams or restricting access to gRPC endpoints to trusted clients can reduce exposure but do not fully remediate the vulnerability (Fix PR #9331).
The fix was merged by contributor arjan-bal and reviewed by easwars on August 19, 2026, and cherry-picked to the v1.83.x release branch the same day (Fix PR #9331, Cherry-pick PR #9333). The vulnerability was picked up by downstream package maintainers quickly, with multiple open-source projects (Forgejo, LycheeOrg, gin-gonic examples, SolarWinds APM) opening automated dependency update PRs to bump to v1.83.1 within days of disclosure. Microsoft included the CVE in its September 2026 Patch Tuesday advisory, and SUSE and openSUSE issued security announcements for affected packages (BleepingComputer).
Disponibilité des correctifs sur les principales distributions Linux et leurs versions.
bookworm
golang-google-grpc
sid
golang-google-grpc
trixie
golang-google-grpc
bionic (esm-apps)
golang-google-grpc
devel
golang-google-grpc
focal (esm-apps)
golang-google-grpc
focal (esm-infra)
google-guest-agent
jammy
golang-google-grpc
jammy (esm-apps)
golang-google-grpc
noble
golang-google-grpc
noble (esm-apps)
golang-google-grpc
Source: Ce rapport a été généré à l’aide de l’IA
Évaluation gratuite des vulnérabilités
Évaluez vos pratiques de sécurité cloud dans 9 domaines de sécurité pour évaluer votre niveau de risque et identifier les failles dans vos défenses.
Obtenez une démo personnalisée
"La meilleure expérience utilisateur que j’ai jamais vue, offre une visibilité totale sur les workloads cloud."
"Wiz fournit une interface unique pour voir ce qui se passe dans nos environnements cloud."
"Nous savons que si Wiz identifie quelque chose comme critique, c’est qu’il l’est réellement."