CVE-2026-26309 Overview
CVE-2026-26309 is an off-by-one write vulnerability affecting Envoy, a high-performance edge/middle/service proxy widely used in cloud-native environments and service mesh architectures. The vulnerability exists in the Envoy::JsonEscaper::escapeString() function, where an off-by-one write can corrupt std::string null-termination. This memory corruption issue can lead to undefined behavior, potentially resulting in application crashes or out-of-bounds reads when the corrupted string is subsequently treated as a C-string.
Critical Impact
This off-by-one vulnerability can cause service disruptions through crashes and may expose sensitive memory contents via out-of-bounds reads in Envoy proxy deployments.
Affected Products
- Envoy versions prior to 1.37.1
- Envoy versions prior to 1.36.5
- Envoy versions prior to 1.35.8
- Envoy versions prior to 1.34.13
- Envoy version 1.37.0
Discovery Timeline
- 2026-03-10 - CVE-2026-26309 published to NVD
- 2026-03-11 - Last updated in NVD database
Technical Details for CVE-2026-26309
Vulnerability Analysis
This vulnerability is classified as CWE-193 (Off-by-one Error), a common memory corruption vulnerability where a loop iterates one time too many or too few, or where an array index is off by one. In the context of Envoy's JsonEscaper::escapeString() function, this off-by-one write corrupts the null-termination byte of a std::string object.
When processing JSON data that requires string escaping, the function incorrectly calculates buffer boundaries, writing one byte beyond the intended location. This corrupts the null terminator that marks the end of the string in C-string operations. The immediate consequence is undefined behavior, but practical exploitation scenarios include denial of service through crashes and potential information disclosure through subsequent out-of-bounds memory reads.
The attack can be triggered remotely over the network without requiring authentication or user interaction, making it particularly concerning for internet-facing Envoy deployments handling untrusted JSON input.
Root Cause
The root cause lies in improper boundary calculation within the Envoy::JsonEscaper::escapeString() function. When escaping special characters in JSON strings, the function writes beyond the allocated buffer by exactly one byte due to an incorrect loop termination condition or buffer size calculation. This one-byte overflow corrupts the null terminator of the std::string, causing subsequent C-string operations to read past the intended string boundary.
Attack Vector
The vulnerability is exploitable via network-based attacks. An attacker can send specially crafted JSON input to an Envoy proxy that triggers the vulnerable code path. When escapeString() processes this malicious input, the off-by-one write occurs, corrupting memory. The attack does not require authentication or special privileges, and no user interaction is needed.
The exploitation scenario involves:
- Attacker sends crafted JSON payload to Envoy proxy
- Envoy processes the JSON and invokes escapeString() on attacker-controlled data
- Off-by-one write corrupts the std::string null terminator
- Subsequent operations treating the string as a C-string cause crashes or out-of-bounds reads
The vulnerability mechanism involves improper boundary handling in the JSON escaping function. When processing strings containing characters that require escaping, the function miscalculates the output buffer size, leading to a single byte overwrite beyond the intended buffer boundary. For detailed technical analysis, see the Envoy Security Advisory.
Detection Methods for CVE-2026-26309
Indicators of Compromise
- Unexpected Envoy proxy crashes or service restarts, particularly when processing JSON payloads
- Segmentation fault or memory corruption errors in Envoy logs
- Anomalous JSON requests with unusual character sequences or escape patterns
- Memory access violations reported in system logs related to Envoy processes
Detection Strategies
- Monitor Envoy proxy logs for crash events and memory-related errors during JSON processing operations
- Implement network traffic analysis to detect anomalous JSON payloads targeting Envoy endpoints
- Deploy application-level monitoring to track unexpected process terminations in Envoy deployments
- Use memory sanitizers (AddressSanitizer) in development/staging environments to detect off-by-one writes
Monitoring Recommendations
- Enable verbose logging on Envoy proxies to capture detailed error information during JSON parsing
- Implement automated alerting for Envoy service disruptions or unexpected restarts
- Monitor system-level metrics for abnormal memory usage patterns in Envoy processes
- Establish baseline traffic patterns and alert on deviations in JSON payload characteristics
How to Mitigate CVE-2026-26309
Immediate Actions Required
- Upgrade Envoy to patched versions: 1.37.1, 1.36.5, 1.35.8, or 1.34.13 immediately
- Audit current Envoy deployments to identify all instances running vulnerable versions
- Review network architecture to identify internet-facing Envoy proxies at highest risk
- Implement additional input validation for JSON payloads at upstream load balancers if immediate patching is not possible
Patch Information
Envoyproxy has released security patches addressing this vulnerability. The fixed versions are:
| Branch | Fixed Version |
|---|---|
| 1.37.x | 1.37.1 |
| 1.36.x | 1.36.5 |
| 1.35.x | 1.35.8 |
| 1.34.x | 1.34.13 |
For complete patch details, review the GitHub Security Advisory GHSA-56cj-wgg3-x943.
Workarounds
- Deploy a Web Application Firewall (WAF) in front of Envoy to filter potentially malicious JSON payloads
- Implement rate limiting on endpoints that process JSON to reduce attack surface
- Use network segmentation to limit exposure of vulnerable Envoy instances from untrusted networks
- Consider temporarily disabling JSON processing features if not critical to operations while awaiting patch deployment
# Example: Upgrade Envoy using Helm (if deployed in Kubernetes)
helm repo update
helm upgrade envoy envoyproxy/envoy --version 1.37.1
# Verify running version after upgrade
envoy --version
Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.


