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_regexのLatin1モード(CVE-2026-73552)、RBACのignore_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検出が、実際にデフォルトで有効になりました。
breaking
Content-TypeのないQUERYを拒否すべてのプロトコルで、
Content-TypeのないQUERYが拒否されるようになりました。
影響確認 (8)
security
JSON/REST bridgeのパストラバーサル防止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
X25519MLKEM768をデフォルトECDH曲線に追加envoy.を設定していない場合に適用されます。reloadable_features. pqc_default_ecdh_curves デフォルトのECDH曲線に、
X25519MLKEM768のハイブリッド鍵交換が追加されました。breaking
WORKSPACEからBazelモジュールへ移行WORKSPACEを設定している場合に適用されます。WORKSPACEファイルが削除され、Envoy、API、ドキュメントは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
対応が必要なリリースが出たときに、週次メールでお知らせします。 今回のセキュリティパッチと破壊的変更も、その一例です。