Envoy v1.39.0は、keyUsage強制の必須化、DLBバランサーの無効化、TLS inspectorの検証強化、OTelサンプリング挙動の変更といった複数の破壊的変更と、HTTP/2、HTTP/3、ext_authz、ext_proc、OAuth2、DNSなど多岐にわたる約20件のmedium評価CVE修正をまとめた大型リリースです。dynamic modulesの拡張ポイントやAI向けストリーミングJSONパーサーなど、非アクション項目の機能・性能改善も多数含まれます。
securityコアプロトコルと拡張機能にわたる広範なCVE修正
本リリースではHTTP/2、HTTP/3、ext_authz、ext_proc、gRPC stats、内部リダイレクト、OAuth2、DNS、JSONパース、PROXYプロトコル、フォーマッタ、StatsD、TLS SAN処理、Zstd展開にわたる約20件のCVEが修正されており、いずれもリリースノート上ではmedium評価です。主なものはHTTP/2のcookieによるヘッダー上限回避(CVE-2026-47774)、HTTP/3のQPACKブロッキング復号DoS(GHSA-p7c7-7c47-pwch)、Zstd展開時のメモリ枯渇(CVE-2026-48044)です。修正はv1.39.0に含まれます。
securityOAuth2のcookie暗号化がAES-256-GCMへ移行(オプトイン)
OAuth2はCVE-2026-47775対策としてAES-256-GCMによるcookie暗号化を追加しました。移行はオプトイン方式で、oauth2_use_gcm_encryptionを有効化し、oauth_legacy_cbc_decryptメトリクスを監視した後、レガシー復号が観測されなくなった時点でoauth2_legacy_cbc_decrypt_compatを無効化する手順です。
breaking証明書keyUsageの強制が必須化
Envoyは証明書のkeyUsage拡張を常に強制するようになり、enforce_rsa_key_usageフィールドは非推奨となり無視されます。v1.39.0では無条件に適用されるため、これまで緩い検証に依存していた証明書は検証に失敗する可能性があります。
breakingDLBコネクションバランサーが全ビルドで無効化
Intel DLBコネクションバランサー(envoy.network.connection_balance.dlb)は、ソースアーカイブの破損を理由に全ビルドで無効化されました。この拡張を設定している環境が対象です。
breakingTLS inspectorが範囲外のクライアントTLSバージョンを拒否
TLS inspectorはクライアントのTLSバージョンがTLS 1.0からTLS 1.3の範囲内であることを検証し、範囲外を拒否するようになりました。v1.39.0では無条件で有効ですが、envoy.reloadable_features.tls_inspector_enforce_client_tls_versionで元の挙動に戻せます。
breakingOTelトレーシングがEnvoy自身のサンプリング判断を優先
OpenTelemetryトレーサーは、伝播されたトレースコンテキストや設定済みサンプラーがサンプリングを要求している場合でも、overall_samplingを含むEnvoy自身のリクエスト単位のサンプリング判断を優先するようになりました。ダウンストリームやコンテキストによるサンプリング判断がEnvoyの設定より優先されることに依存している環境が対象で、エクスポートされるスパン数が減る可能性があります。
主な変更 (8)
- HTTP/2、HTTP/3、ext_authz、ext_proc、gRPC stats、内部リダイレクト、OAuth2、DNS、JSONパース、PROXYプロトコル、フォーマッタ、StatsD、TLS SAN処理、Zstd展開にわたる約20件のmedium評価CVE修正。主なものはCVE-2026-47774(HTTP/2 cookieヘッダー上限回避)、GHSA-p7c7-7c47-pwch(HTTP/3 QPACK DoS)、CVE-2026-48044(Zstdメモリ枯渇)
- OAuth2にAES-256-GCMによるcookie暗号化を追加(CVE-2026-47775)。レガシーCBC復号からのオプトイン段階移行が可能
- 証明書keyUsage強制が必須化(enforce_rsa_key_usageは非推奨)。TLS inspectorはクライアントTLSバージョンが1.0〜1.3の範囲外だと拒否
- Intel DLBコネクションバランサー拡張がソースアーカイブ破損により全ビルドで無効化
- OpenTelemetryトレーサーがEnvoy自身のサンプリング判断(overall_sampling含む)を優先するようになり、エクスポートされるスパン数が減少する可能性
- 統合DNSクラスタ実装がデフォルトで有効化され、c-aresリゾルバとqcacheをクラスタ間で共有可能に
- HeaderMatcherが個別に指定されたヘッダー値をカンマ結合形式だけでなく個別にマッチするよう変更(フィーチャーゲートで元に戻せる)
- 非アクション項目としては、dynamic modulesの拡張ポイントとRust SDK、MCP/A2A/OpenAI/Anthropic向けの新しいWuffsベースのストリーミングJSONパーサー、帯域共有・サブフィルタチェーン用の新HTTPフィルタ、CNSA/ポスト量子TLSポリシー、io_uringやSO_REUSEPORT BPFによる性能改善、コネクションプールの再入問題やDNSリゾルバのリーク等多数のバグ修正が含まれる