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

> A use-after-free in Envoy's ext_authz filter causes a crash when per-route overrides are used with rapid stream teardowns, requiring an upgrade to fix.

- **Severity:** Medium 5.9 (`CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H`)
- **Exploited in the wild:** Not known
- **Login needed:** Not needed
- **Attackable:** Over the internet
- **Victim action needed:** Not needed
- **Fix available:** Yes
- **Published:** 26 Jun 2026
- **Updated:** 27 Jun 2026
- **Also known as:** BIT-envoy-2026-47205, GHSA-mvh9-767w-x47j

## What is CVE-2026-47205?

CVE-2026-47205 is a medium-severity use after free vulnerability in Envoyproxy Envoy, published on 26 Jun 2026. An attacker can exploit it over the internet without logging in, with no action from the victim.

### Official 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.

Weakness: CWE-416 (Use After Free)

## Which versions are affected by CVE-2026-47205?

1 open source package ship an affected version, including envoy. It affects 1 product.


| Package | Ecosystem | Affected | Fixed in |
| --- | --- | --- | --- |
| `envoy` | Bitnami | From 1.36.0 | 1.36.9, 1.37.5, 1.38.3 |

Products: Envoyproxy Envoy.

## How do I fix CVE-2026-47205?

Upgrade envoy to a fixed version for your release line: 1.36.9, 1.37.5 or 1.38.3.

## Is CVE-2026-47205 being exploited?

It is not confirmed as exploited in the wild, but public exploit code for CVE-2026-47205 exists.

## Other vulnerabilities in Envoyproxy Envoy

- [CVE-2022-29226](https://insights.sbomify.com/CVE-2022-29226/): Trivial authentication bypass in Envoy (critical 10.0)
- [CVE-2019-18801](https://insights.sbomify.com/CVE-2019-18801/): Memory corruption in n/a (critical 9.8)
- [CVE-2019-18802](https://insights.sbomify.com/CVE-2019-18802/): Security feature bypass in n/a (critical 9.8)
- [CVE-2020-35470](https://insights.sbomify.com/CVE-2020-35470/): Information disclosure in n/a (high 8.8)
- [CVE-2024-23324](https://insights.sbomify.com/CVE-2024-23324/): Envoy ext auth can be bypassed when Proxy protocol filter sets invalid UTF-8 metadata (high 8.6)

## Fix prompt for AI coding agents

```text
Check this codebase for CVE-2026-47205 and fix it if it is affected.

What it is: CVE-2026-47205 is a medium-severity use after free vulnerability in Envoyproxy Envoy, published on 26 Jun 2026. An attacker can exploit it over the internet without logging in, with no action from the victim.
Exploitation: It is not confirmed as exploited in the wild, but public exploit code for CVE-2026-47205 exists.

Affected packages and fixed versions:
- envoy (Bitnami): affected from 1.36.0; fixed in 1.36.9, 1.37.5, 1.38.3

Task:
1. Search the dependency manifests and lockfiles (for example package.json, package-lock.json, requirements.txt, poetry.lock, uv.lock, pom.xml, build.gradle, go.mod, Cargo.lock, Gemfile.lock) and any Dockerfiles for the affected packages, including transitive dependencies.
2. If an affected version is in use, upgrade it to the fixed version for its release line with the project's package manager, so the lockfile is regenerated. Prefer the smallest upgrade that fixes it.
3. If there is no fix, or the upgrade would break the build, do not guess: explain the risk and the safest workaround instead.
4. Run the tests and summarise what changed and why.
5. If nothing in the project is affected, say so and change nothing.

Reference: https://insights.sbomify.com/CVE-2026-47205/ (Markdown: https://insights.sbomify.com/CVE-2026-47205/index.md)
```

## Sources

- CVE record: https://www.cve.org/CVERecord?id=CVE-2026-47205
- NVD: https://nvd.nist.gov/vuln/detail/CVE-2026-47205
- OSV: https://osv.dev/vulnerability/CVE-2026-47205

---
From sbomify Insights: https://insights.sbomify.com/CVE-2026-47205/
Summaries are generated and may contain mistakes; the official description above is the record.
