Envoy
v1.40.0Networking & Messaging빌드 체계와 여러 기본값이 바뀌고, 프로토콜과 확장 지점, 인증 및 관측 기능이 크게 늘어난 릴리스입니다. 보안 수정 사항도 포함되어 빌드 설정이나 관련 기능을 사용하는 운영 환경에서 확인이 필요합니다.
조치 필요 (4)
security1.39.x 보안 수정 사항 반영
1.39.x의 보안 수정 사항을 이어받았습니다. 경로 매개변수의 URL 정규화(CVE-2026-73511, CVE-2026-73551),
HTTP/2의END_STREAM없는 트레일러와 삭제된Host집계(CVE-2026-73513, CVE-2026-73550),HTTP/3의 UAF(CVE-2026-73512),ext_authz의 경로 없는 요청 충돌과 UAF(CVE-2026-73547, CVE-2026-50572), generic-upgrade 본문 파이프라이닝(CVE-2026-73548),safe_regexLatin1 모드(CVE-2026-73552), RBACignore_path_parameters(CVE-2026-73553), 관리자 통계 이름 정리(CVE-2026-73546),oauth2와api_key_auth의 CONNECT 충돌(GHSA-8vc2-jrm4-835w, GHSA-47vj-9r25-wv5j)이 포함됩니다.breaking
Clang/libc++기본값 전환Clang/libc++가 기본값이 되어 별도 플래그가 필요하지 않습니다.breaking컨테이너 인식 CPU 감지 기본 활성화
컨테이너 인식 CPU 감지가 기본적으로 활성화됩니다.
breakingContent-Type 없는 QUERY 요청 거부
모든 프로토콜에서
Content-Type이 없는QUERY요청을 거부합니다.
영향 확인 (8)
securityJSON/REST 경로 탐색 차단
JSON/REST bridge를 실행하는 경우 이 변경이 적용됩니다.JSON/REST bridge에서 템플릿 변수를 이용한 경로 탐색을 차단합니다.breakingClang 설정 제거
--config=clang또는clang-local을 사용하는 경우 이 변경이 적용됩니다.--config=clang와clang-local이 제거되었습니다.breakingC++ 라이브러리 선택 설정 제거
--@envoy//bazel:libc++,libstdc++또는force_libcpp를 사용하는 경우 이 변경이 적용됩니다.--@envoy//bazel:libc++와libstdc++플래그,force_libcpp정의가 제거되었습니다.breakingWasm 런타임 선택 플래그 변경
--define wasm=또는--define engine=을 사용하는 경우 이 변경이 적용됩니다.이제 Wasm 런타임은
--@proxy-wasm-cpp-host//bazel:engine=<engine>으로 선택합니다. 기존--define wasm=과--define engine=플래그를 사용하면 빌드가 실패합니다.breaking
AWS-LC선택 지원 제거적용 대상이 릴리스 노트에 명시되지 않았습니다.
선택 가능한 SSL 라이브러리에서
AWS-LC가 제거되었으며,--config=aws-lc-fips도 함께 사라졌습니다.ppc64le빌드에는--config=openssl을 사용합니다.breaking
mcp_router하위 요청 헤더 전달 기본값 변경mcp_router를 실행하는 경우 이 변경이 적용됩니다.mcp_router에서 하위 요청 헤더가 기본적으로 백엔드로 전달되지 않습니다.breaking기본 ECDH 곡선에 X25519MLKEM768 추가
envoy.를 설정하지 않은 경우 이 변경이 적용됩니다.reloadable_features. pqc_default_ecdh_curves 기본 ECDH 곡선에 하이브리드 키 교환 방식인
X25519MLKEM768이 추가되었습니다.breakingWORKSPACE에서 Bazel 모듈로 전환
WORKSPACE를 설정하는 경우 이 변경이 적용됩니다.WORKSPACE파일이 제거되었습니다. Envoy와 API, 문서는 Bazel 모듈로 게시되며 모듈 정의에는MODULE.을 사용합니다.bazel
그 외 기록된 변경 29건 전체additions 16 · fixes 8 · constraints 2 · value changes 2 · defaults 1
additions (16)
- QUIC listeners gain client-certificate (mTLS) support, upstream QUIC gains client certificates, and P-384/P-521 ECDSA curves are supported.
- new
route_specifiersextension point post-processes (refines, drops, or synthesizes) the matched route - new
per_worker_subsetpolicy - new
load_aware_localitypolicy - gains response-side LLM token-usage extraction for OpenAI, Anthropic and Gemini dialects (SSE and JSON), published as typed dynamic metadata (
envoy.), plus request-info, schema-validation and transcoding sub-filters and body re-serialization.data. ai. v3. TokenUsage - MCP filter: per-route config, protocol-version enforcement, required client capabilities, new method groups, no-op mode and early termination when routable.
- New extension points: cluster specifier, route specifier, header formatter, early header mutation, TLS handshaker, transport-socket relay, config validator, and downstream STARTTLS.
- Typed metadata get/set, runtime getters, tracing spans across hooks, stream timing, upstream attempt/peer-address accessors, and Go SDK stats/log-level getters.
- TLS: per-certificate TLS params, multiple upstream certificates with a certificate selector, SPIFFE upstream SAN validation, SDS file polling, and upstream session cache scoped by SNI.
- OAuth2 gains assertion audience/key-id and TLS client auth for the credential injector; JWT auth gains claim paths and a JWT-claim rate-limit descriptor; GCP auth gains scopes, audiences and IAM access tokens; ext_authz gains shadow mode on the network filter and route-cache-clearing headers.
- Access logs: downstream handshake time points and connection RTT, listener name and route-resolution-time formatters, CEL-expression formatter config, and nanosecond histogram units.
- OpenTelemetry: resource detectors, custom exporters, instrumentation scope, and typed custom tags; ext_authz and ext_proc emit client spans.
- Stats: per-cluster/listener stats matchers, explicit tags
- Redis proxy: RESP3 protocol support,
CLUSTER SHARDS - Reverse tunnels: JWT handshake auth, maintain interval, fail-closed identifier validation
- Watchdog backtrace action, UDP health checker, multi-health-checker, TCP proxy load-shed points, and a body-size-limit HTTP filter.
fixes (8)
- This closes a use-after-free on synchronous filter-chain teardown.
- Broad hardening: a large batch of lifetime/view fixes across HTTP, network, listener and cluster-LB filter state
- a fix for Prometheus native-histogram bucket indices being off by one.
- several use-after-free fixes.
- a batch of handshake lifecycle fixes.
- Fixed a family of races where route-level configuration (AWS signing, composite, filter chain, local ratelimit, dynamic modules, SDS secrets) could be destroyed on a worker thread after an RDS update.
- which also fixes inbound-only drain for the Mongo/Redis/Thrift/generic proxies
- connectionless listeners no longer go dark during drain
constraints (2)
- Dynamic-module clusters can now delegate host selection to Envoy's built-in LBs (
ROUND_ROBIN,LEAST_REQUEST,RANDOM,RING_HASH,MAGLEV). - HTTP/1 now accepts the RFC 10008
QUERYmethod
value changes (2)
- the hermetic LLVM/Clang toolchain is bumped from 18 to 22
- HTTP/3 and QUIC are now stable
defaults (1)
- coalesced LB rebuilds on EDS batch updates are now on by default
조치가 필요한 릴리스가 나왔을 때 주간 메일로 알려드립니다. 이번 릴리스의 보안 패치와 브레이킹 체인지 같은 것들입니다.