5.9

CVE-2026-47205: Envoy: ext_authz Use-After-Free during Stream Teardown with Per-Route Overrides

Analyzed
Published 26-06-2026Last modified 27-06-2026

Vulnerability summary

CVE-2026-47205 is a medium (CVSS 5.9) Use After Free vulnerability in envoyproxy envoy. EPSS estimates a 0.39% chance of exploitation in the next 30 days, higher than 31.6% of scored vulnerabilities. 1 public exploit is recorded.

Overall risk
34/100
0100
Medium · default modelHow is this calculated?
CVSS score
5.9/10
010
Medium · v3.1 (CVE.org)
EPSS score
0.39%
0%100%
Low · 0.00 pp in 30 days
KEVNot listedNot listed by any tracked catalog.
RansomwareNot flaggedNo ransomware use recorded.
Public exploits1github

Advisory lineage

Upstream 0 · Downstream 1 · Related 1

Timeline

  1. 26-06-2026
    PublishedVulnerability first disclosed.
  2. 27-06-2026
    Last modifiedVulnerability information updated.

Description

Envoy is an open source edge and service proxy designed for cloud-native applications. From 1.36.0 until 1.36.9, 1.37.5, and 1.38.3, a Use-After-Free (UAF) vulnerability leading to a sudden segmentation fault exists in Envoy's ext_authz HTTP filter when processing per-route authorization overrides concurrently with rapid downstream client disconnects. During standard request lifecycles, Envoy instantiates the ext_authz filter with a foundational authorization client object (client_). If a matched route dictates a dynamic per-route HTTP or gRPC authorization service override, the filter generates a localized client. In the vulnerable implementation, this transient client aggressively overwrote the default client_ unique pointer by executing client_ = std::move(per_route_client). When a client rapidly establishes and subsequently tears down a stream (such as rapidly refreshing a protected WebSocket endpoint), the downstream triggers the ConnectionManagerImpl::doDeferredStreamDestroy() -> ActiveStream::onResetStream() lifecycle. Envoy immediately sequences Filter::onDestroy() in an attempt to securely abort dispatched asynchronous authorization check transactions via client_->cancel(). By destructing the default client abruptly during initiateCall, a memory lifecycle misalignment occurs within the async client manager. The stream teardown fails to reliably track and cancel the dynamically bound asynchronous authorization tasks, orchestrating a sequence where a late asynchronous callback from the network evaluates against a heavily destroyed ActiveStream validation span, generating a UAF process crash. This vulnerability is fixed in 1.36.9, 1.37.5, and 1.38.3.

CVSS metrics

2 scores · 2 sources · 1 version

EPSS trend

Probability

0.39%

Chance of exploitation in the next 30 days

Percentile

32%

Versus all other CVEs

30-day change

No change 0.00 pp

From 0.39% on 22-09-2026

22-09-202622-10-2026

Known exploited

Compare KEV catalogs
CISA KEV

Not in the CISA KEV catalog.

ENISA CNW

Not in the ENISA CNW catalog.

CIRCL

Not in the CIRCL catalog.

Public exploits

1 found
  • githubUnverified

    Envoy

    Maturity: poc

Weaknesses

CWE · root cause

Affected systems

Envoyproxy1 product
  • envoy≥ 1.36.0, < 1.36.9 | ≥ 1.37.0, < 1.37.5 | ≥ 1.38.0, < 1.38.3

1 vendor · 1 product

References

1 links