Executive brief
Envoy is a popular open-source service proxy used to manage network traffic in cloud environments. A flaw in how it handles certain connection headers allows an attacker to 'smuggle' unauthorized data into backend systems, bypassing security filters like authentication or access control. This could allow a high-privileged attacker on the local network to send malicious commands directly to internal applications.
Technical details
A vulnerability exists in Envoy's PROXY Protocol v2 header generation logic within `source/extensions/common/proxy_protocol/proxy_protocol_header.cc`. When the total size of Type-Length-Value (TLV) entries exceeds the 65,535-byte limit, the generator correctly identifies which TLVs to skip but erroneously iterates over the original, unfiltered list when writing to the buffer. This creates a mismatch where the header's length field reflects the filtered size while the actual buffer contains the 'skipped' data. An attacker with high privileges on an adjacent network can exploit this to inject up to 65KB of controlled data into the upstream connection, bypassing L7 filters such as RBAC, JWT, or ext_authz. The issue is fixed in versions 1.35.13, 1.36.9, 1.37.5, and 1.38.3.
Affected products
- Envoy Proxy Envoy >= 1.34.0, < 1.35.13; >= 1.36.0, < 1.36.9; >= 1.37.0, < 1.37.5; >= 1.38.0, < 1.38.3
Timeline
- 2026-06-23: advisory: GitHub Security Advisory published
- 2026-06-26: disclosed: CVE published to NVD