Severity by source
AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H
AV:N and PR:N because any remote client can trigger the race; AC:H for the timing dependency; A:H for worker crash; C:N and I:N because RCE is explicitly disclaimed by the reporter.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
3DescriptionCVE.org
Envoy is an open source edge and service proxy designed for cloud-native applications. From 1.37.0 until 1.37.5 and 1.38.3, the HTTP OAuth2 filter (envoy.filters.http.oauth2) can leave an in-flight async token exchange attached to a downstream stream that has already been torn down. A late AsyncClient completion can still invoke OAuth2Filter methods that use StreamDecoderFilterCallbacks after that object’s lifetime has ended, causing undefined behavior, worker crashes (availability loss), and use-after-free / invalid-vptr failures under AddressSanitizer. This is a memory-safety / lifetime issue in the data plane, not a trivial config bug. Remote code execution is not claimed here; the primary demonstrated impact is DoS via crash and UB; any further impact would be deployment- and allocator-dependent. This vulnerability is fixed in 1.37.5 and 1.38.3.
AnalysisAI
Use-after-free in Envoy's HTTP OAuth2 filter (envoy.filters.http.oauth2) across versions 1.37.0-1.37.4 and 1.38.0-1.38.2 enables unauthenticated remote attackers to crash Envoy worker threads by racing a connection teardown against an in-flight async token exchange. When a downstream client disconnects while the filter is awaiting an async OAuth2 token response, the late AsyncClient callback invokes StreamDecoderFilterCallbacks on an already-freed object, producing undefined behavior and worker crashes. The reporter explicitly disclaims RCE - confirmed impact is availability loss (DoS); allocator-dependent memory corruption effects beyond crash are theoretically possible but not demonstrated. No public exploit or CISA KEV listing identified at time of analysis.
Technical ContextAI
Envoy's HTTP OAuth2 filter (envoy.filters.http.oauth2) mediates token exchanges by issuing async HTTP subrequests to an upstream token endpoint via an AsyncClient. The filter retains a callback handle tied to the active downstream stream's StreamDecoderFilterCallbacks. CWE-416 (Use After Free) arises because when the downstream connection is torn down - e.g., client abort - the stream and its associated StreamDecoderFilterCallbacks are destroyed, but the in-flight AsyncClient completion is not cancelled or detached. When the async response arrives, the filter's OnSuccess/OnFailure methods dereference the freed callbacks object, violating object lifetime guarantees. Under AddressSanitizer this surfaces as invalid-vptr failures; in production builds it produces non-deterministic undefined behavior, most commonly manifesting as a worker process crash. The affected CPE is cpe:2.3:a:envoyproxy:envoy:*:*:*:*:*:*:*:* covering the 1.37.x and 1.38.x lines prior to their respective fixes.
RemediationAI
Upgrade to Envoy 1.37.5 (for deployments on the 1.37.x branch) or 1.38.3 (for deployments on the 1.38.x branch) as released by the vendor and documented at https://github.com/envoyproxy/envoy/security/advisories/GHSA-3cj2-c63f-q26f. If immediate upgrade is operationally blocked, disable the HTTP OAuth2 filter (envoy.filters.http.oauth2) across all listener filter chains - this eliminates the vulnerable code path entirely but removes OAuth2 token exchange capability, requiring an alternative authentication mechanism such as an external auth filter or sidecar. A narrower compensating control is to restrict access to OAuth2-protected routes at the network or load-balancer level to trusted internal clients only, reducing the population of clients that can race a connection teardown; this does not eliminate the race condition but materially reduces attack surface for internet-facing deployments. No version outside the 1.37.x and 1.38.x lines requires remediation based on available data.
Denial of service against HTTP/2 server implementations allows remote unauthenticated attackers to exhaust server resour
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
Envoy is a cloud-native high-performance edge/middle/service proxy. Rated high severity (CVSS 7.5), this vulnerability i
Same weakness CWE-416 – Use After Free
View allVendor StatusVendor
SUSE
Severity: Moderate| Product | Status |
|---|---|
| openSUSE Tumbleweed | Fixed |
Share
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-39830