Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessSend HTTP/gRPC request with >16KiB :path header
-
Deliverygrpc_stats filter records full path as metric name
-
ExploitTcpStatsdSink flusher detects buffer capacity exceeded
-
ExecutionBuffer rotation allocates new 16KiB heap slice
-
Persistmemcpy writes metric name beyond slice boundary
-
ImpactHeap write overflow causes process crash or enables RCE
Vulnerability Assessment
| Weakness |
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Buffer copy size validation
MITRE ATT&CK
1 technique across 1 tactic: Execution The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires two non-default Envoy configuration elements to be simultaneously active: (1) TcpStatsdSink must be configured as a stats sink in the Envoy bootstrap configuration, AND (2) the grpc_stats HTTP filter must be enabled on a listener with stats_for_all_methods: true set. Deployments using Prometheus, DogStatsD, or other stats sinks without TcpStatsdSink are not affected. Deployments using grpc_stats with stats_for_all_methods: false (the default) are not affected. The attacker must be able to send HTTP or gRPC requests with a :path value exceeding approximately 16KiB (16,384 characters) to the affected listener. Upstream components such as load balancers, API gateways, or ingress controllers that enforce maximum header or URL length limits below 16KiB would block the triggering payload before it reaches Envoy. CVSS PR:N confirms no authentication is required from the attacker, and UI:N confirms no victim interaction is needed - exploitation is direct against the Envoy listener once the configuration prerequisites are met. |
| Impact | The official CVSS 3.1 score of 5.9 (AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H) captures only the confirmed denial-of-service impact and assigns High complexity due to the non-default configuration dependency. However, the vendor advisory explicitly states the potential for remote code execution - a heap write overflow of this nature (unbounded memcpy into a known-size heap allocation) is a well-understood primitive for achieving arbitrary write primitives, and this potential materially elevates real-world risk beyond the mid-range CVSS score. No EPSS data was included in the provided intelligence, and the vulnerability is not listed in the CISA KEV catalog, indicating no confirmed active exploitation at time of analysis. No public POC code was identified. The high-complexity rating is defensible given the dual non-default configuration requirement (TcpStatsdSink plus grpc_stats with stats_for_all_methods: true), meaning the vast majority of Envoy deployments using default or Prometheus-based observability stacks are not exposed. For the subset of deployments that do match this configuration - common in high-observability service meshes - the unauthenticated network attack vector and RCE potential warrant treating this as a higher priority than the CVSS score alone suggests. |
| Exploit ScenarioDerived | An attacker targeting an Envoy deployment running with TcpStatsdSink and the grpc_stats filter (stats_for_all_methods: true) sends a single gRPC or HTTP request whose :path header is a string exceeding 16,384 characters - a trivially crafted request using any HTTP client. Envoy records this path as part of a metric name, triggering the flusher's buffer rotation flaw, which then executes a memcpy beyond the allocated heap boundary, immediately crashing the Envoy worker process or, in a more refined exploitation attempt, corrupting adjacent heap metadata to redirect execution. No public exploit code has been identified at time of analysis. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Jun 26, 2026
Heap buffer overflow in Envoy's TcpStatsdSink component (versions 1.34.0 through pre-fix releases) allows unauthenticated remote attackers to crash the Envoy process or potentially achieve remote code execution by submitting HTTP or gRPC requests with request paths exceeding 16KiB, provided a specific non-default dual-filter configuration is present. The root flaw is an incorrect buffer rotation in the thread-local metric flusher that allocates a new 16KiB slice but continues writing beyond its boundary via unchecked memcpy operations. No public exploit has been identified at time of analysis, though vendor-confirmed patches are available across all affected release branches (1.35.13, 1.36.9, 1.37.5, 1.38.3).
RemediationAI
Upgrade Envoy to the patched release corresponding to the deployed branch: 1.35.13, 1.36.9, 1.37.5, or 1.38.3, as documented in the GitHub Security Advisory at https://github.com/envoyproxy/envoy/security/advisories/GHSA-7q3f-gwg7-j8g4. If immediate patching is not feasible, removing the TcpStatsdSink from the Envoy bootstrap stats_sinks configuration eliminates the vulnerable code path entirely but disables StatsD metric export. A narrower workaround is to set stats_for_all_methods: false on the grpc_stats filter, which prevents request path values from being embedded in metric names and closes the primary attack vector while preserving StatsD export - the trade-off is reduced per-method metric granularity. As a defense-in-depth measure, deploying an upstream ingress control or WAF rule to enforce a maximum :path header length well below 16KiB (e.g., 8KiB) will prevent the oversized input from reaching Envoy, though this does not eliminate the underlying flaw and may break legitimate long-URL workloads.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 4 packages in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
Envoy's TcpStatsdSink exports thread-local statistics to a StatsD backend over TCP by formatting metrics into a fixed 16KiB contiguous heap buffer (FLUSH_SLICE_SIZE_BYTES). When a single formatted metric name exceeds the remaining buffer capacity, the flusher performs a buffer rotation - but a logic flaw causes it to allocate another fixed 16KiB slice and then proceed with memcpy operations that write beyond the newly allocated slice's boundaries if the metric name itself exceeds 16KiB. This is a classic CWE-120 (Buffer Copy without Checking Size of Input) heap write overflow. The grpc_stats HTTP filter, when configured with stats_for_all_methods: true, incorporates the full gRPC or HTTP :path header value into the recorded metric name, making the attacker-controlled request path a direct input to the vulnerable formatting code. The affected product is identified by CPE cpe:2.3:a:envoyproxy:envoy:*:*:*:*:*:*:*:* across versions from 1.34.0 to the fix boundaries.
Know when Envoy 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
AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
AC:H for non-default dual-config requirement; PR:N since no auth is needed; C/I/A all High reflecting vendor-stated RCE potential alongside confirmed heap overflow and crash.
Primary rating from Vendor (GitHub_M).
CVSS VectorNVD
Lifecycle Timeline
3DescriptionNVD
Envoy is an open source edge and service proxy designed for cloud-native applications. From 1.34.0 until 1.35.13, 1.36.9, 1.37.5, and 1.38.3, a vulnerability exists in Envoy's TCP StatsD sink (TcpStatsdSink), where the thread-local flusher buffer can be overflowed by exceptionally long statistic names (e.g., >16KiB). During formatting, TcpStatsdSink reserves a single contiguous memory slice of 16KiB (FLUSH_SLICE_SIZE_BYTES). If formatting a single metric exceeds the remaining capacity, the flusher initiates a buffer rotation but incorrectly continues to allocate another fixed 16KiB slice. If an attacker can trigger a statistic name longer than 16KiB-for example, by sending an HTTP or gRPC request with an extremely long request path (:path) that is recorded by the grpc_stats filter configured with stats_for_all_methods: true-the flusher will attempt to copy the metric name using memcpy operations beyond the allocated heap buffer boundaries. This leads to a heap write overflow, which can cause immediate denial-of-service (process crash) or potential remote code execution (RCE). This vulnerability is fixed in 1.35.13, 1.36.9, 1.37.5, and 1.38.3.
Threat Intelligence Overview
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.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
A buffer overflow occurs when a program writes more data to a memory buffer than it was allocated to hold, causing the excess data to spill into adjacent memory regions.
Remote Code Execution represents the critical moment when an attacker successfully runs arbitrary code on a target system without physical access.
Denial of service against HTTP/2 server implementations allows remote unauthenticated attackers to exhaust server resour
Remote code execution is possible in Node.js releases that bundle a vulnerable Brotli decoder: a malformed brotli-compre
Envoy is an open source edge and service proxy designed for cloud-native applications. Rated critical severity (CVSS 9.8
An issue was discovered in Envoy 1.12.0. Rated critical severity (CVSS 9.8), this vulnerability is remotely exploitable,
An issue was discovered in Envoy 1.12.0. Rated critical severity (CVSS 9.8), this vulnerability is remotely exploitable,
Envoy is an open source edge and service proxy designed for cloud-native applications. Rated critical severity (CVSS 9.1
Envoy is an open source edge and service proxy designed for cloud-native applications. Rated critical severity (CVSS 9.1
Envoy is an open source edge and service proxy designed for cloud-native applications. Rated critical severity (CVSS 9.1
Envoy through 1.15.0 only considers the first value when multiple header values are present for some HTTP headers. Rated
When parsing HTTP/1.x header values, Envoy 1.9.0 and before does not reject embedded zero characters (NUL, ASCII 0x0). R
Envoy's RBAC filter improperly concatenates duplicate HTTP headers into comma-separated strings instead of validating ea
Envoy is a cloud-native high-performance edge/middle/service proxy. Rated high severity (CVSS 7.5), this vulnerability i
Same weakness CWE-120 – Classic Buffer Overflow
View allVendor StatusVendor
SUSE
Severity: Moderate| Product | Status |
|---|---|
| openSUSE Tumbleweed | Fixed |
EUVD-2026-39825
NVD
CVE.org
EPSS
Vulnrichment
GitHub
Exploit-DB