🔍 CVE-2026-47205

5.9
CVSS Score
MEDIUM
2026-06-26
2026-10-25 17:10
✅ 완료

🇰🇷 한글 설명

Envoy의 ext_authz HTTP 필터에서 per-route 인증 오버라이드 처리 중 Use-After-Free(UAF) 취약점이 발견되었습니다. 클라이언트가 연결을 급격히 끊을 때 메모리 생명주기 불일치로 인해 세그멘테이션 결함(Segmentation Fault)이 발생하며 프로세스가 충돌할 수 있습니다.

💡 쉬운 설명

인증을 확인하는 과정에서 사용자가 연결을 너무 빨리 끊어버리면, 프로그램이 이미 사라진 메모리 영역을 참조하려고 시도하여 서비스가 갑자기 종료되는 문제입니다. 이는 서비스의 안정성을 해칠 수 있는 결함입니다.

🇺🇸 원문 (English)

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.

📍 영향받는 시스템

Envoy 1.36.0-1.36.9, 1.37.5, 1.38.3 미만 버전

⚔️ 공격 벡터

보호된 엔드포인트에 대해 빠른 연결 및 해제를 반복하여 인증 요청과 스트림 종료 간의 타이밍 이슈 유도

🛡️ 대응 방법

Envoy를 수정된 버전인 1.36.9, 1.37.5 또는 1.38.3 이상으로 업데이트하십시오.

🔧 검증 코드

명령어 결과에 취약한 버전 번호가 출력되면 해당 버전이 설치되어 있는 상태입니다.

Shell / Script
envoy --version | grep -E 'v(1.36\.[0-8]|1.37\.[0-4]|1.38\.[0-2])'

📊 CVSS Vector String

CVSS Vector
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H

💻 영향받는 소프트웨어

Envoy