Skip to content

chore(deps): update dependency envoyproxy/envoy to v1.39.1 - #24

Open
ZxBot wants to merge 1 commit into
mainfrom
renovate/envoyproxy-envoy-1.x
Open

ZxBot wants to merge 1 commit into
mainfrom
renovate/envoyproxy-envoy-1.x

Conversation

@ZxBot

@ZxBot ZxBot commented Sep 10, 2026

Copy link
Copy Markdown
Contributor

ℹ️ Note

This PR body was truncated due to platform limits.

This PR contains the following updates:

Package Update Change
envoyproxy/envoy minor 1.32.101.39.1

Release Notes

envoyproxy/envoy (envoyproxy/envoy)

v1.39.1

Compare Source

Summary of changes:

  • Security fixes:

    • CVE-2026-73511: url normalization: strip path parameters from individual path segments per RFC 3986 section 3.3. Revert with envoy.reloadable_features.strip_path_parameters_per_segment.
    • CVE-2026-73512: http3: UAF on a specifically timed sequence of HTTP/3 frames.
    • CVE-2026-73513: http2: abnormal process termination on trailers received without the END_STREAM flag.
    • CVE-2026-73546: admin: sanitize stat names before converting them to HTML. Guarded by envoy.reloadable_features.sanitize_html_stats_names.
    • CVE-2026-73547: ext_authz: abnormal process termination on requests without a URI path (i.e. CONNECT).
    • CVE-2026-73548: http: payload sent before a generic HTTP upgrade was accepted could be interpreted as a pipelined HTTP/1 request and poison a shared upstream connection. Revert with envoy.reloadable_features.http_pause_generic_upgrade_request_body.
    • CVE-2026-73549: quic: crash handling scoped IPv6 addresses in QUIC client connections and Original Dst clusters.
    • CVE-2026-73550: http2: dropped Host headers now count towards request header map size and count limits. Revert with envoy.reloadable_features.http2_track_size_of_dropped_host_header.
    • CVE-2026-73551: url normalization: strip path parameters from dot and dotdot segments (/.;, /..;) so canonicalization interprets them correctly. Applies only when normalize_path is enabled; revert with envoy.reloadable_features.strip_dotdot_segments_with_parameters.
    • CVE-2026-73552: safe_regex: switch charset mode from UTF-8 to Latin1, as HTTP headers are not UTF-8 encoded. Revert with envoy.reloadable_features.re2_use_latin1_mode.
    • CVE-2026-73553: rbac: RBAC path matching now respects the route's ignore_path_parameters_in_path_matching, preventing authz bypass via appended path parameters. Revert with envoy.reloadable_features.rbac_respect_ignore_path_parameters.
    • CVE-2026-50572: ext_authz: UAF when ext_authz over HTTP causes a request to be rejected.
    • CVE-2026-48521: http3: abnormal process termination when upstream protocol is selected via ALPN and the server uses HTTP/3.
  • Bug fixes:

    • http: fixed a filter manager bug where a body frame moved into the filter-manager buffer via addDecodedData()/addEncodedData() immediately before returning Continue was silently dropped, corrupting large streamed bodies. Revert with envoy.reloadable_features.filter_manager_forward_added_data_on_continue.
    • ext_proc: fixed multiple lifetime bugs in the ext_proc filter and the underlying gRPC async client that could lead to use-after-free or double delivery of callbacks.
    • tls: fixed a memory leak in the OpenSSL compatibility layer where SSL_get0_peer_certificates() leaked an X509 refcount per call, preventing certificates from being freed on connection close.
    • tls: fixed a bug where OpenSSL used glibc's allocator instead of tcmalloc, operating on a separate heap and making OpenSSL allocations invisible to tcmalloc heap profiling.

Docker images:
https://hub.docker.com/r/envoyproxy/envoy/tags?page=1&name=v1.39.1
Docs:
https://www.envoyproxy.io/docs/envoy/v1.39.1/
Release notes:
https://www.envoyproxy.io/docs/envoy/v1.39.1/version_history/v1.39/v1.39.1
Full changelog:
envoyproxy/envoy@v1.39.0...v1.39.1

Signed-off-by: Yan Avlasov yavlasov@google.com
Signed-off-by: Kateryna Nezdolii kateryna.nezdolii@gmail.com
Signed-off-by: Jonh Wendell jonh.wendell@redhat.com
Signed-off-by: Ryan Northey ryan@synca.io

v1.39.0

Compare Source

Summary of changes

Breaking changes

  • build: Envoy now uses Bazel 8. Because Envoy still uses WORKSPACE mode, --enable_workspace and --noenable_bzlmod are required and have been added to .bazelrc; external-repository runfiles now appear directly under the runfiles root.
  • build: the Intel DLB connection balancer (envoy.network.connection_balance.dlb) is disabled for all builds due to a broken source archive.
  • TLS: enforce_rsa_key_usage is deprecated and ignored; Envoy now always enforces the certificate keyUsage extension.
  • TLS inspector: client TLS versions are validated and must be between TLS 1.0 and TLS 1.3 (revertible via envoy.reloadable_features.tls_inspector_enforce_client_tls_version).
  • OpenTelemetry tracing: the tracer now honors Envoy's request-entry sampling decision, including overall_sampling, even when propagated trace context or the configured sampler requests sampling. This may reduce exported spans.
Security
  • HTTP/2 now counts uncompressed cookies toward header-size and header-count limits (CVE-2026-47774), strengthens PRIORITY/WINDOW_UPDATE flood protection, and adds configurable nghttp2 RST_STREAM rate limits.
  • HTTP/3 fixes cover QPACK blocked-decoding denial of service (GHSA-p7c7-7c47-pwch) and inconsistent headers-only content-length handling (CVE-2026-48743).
  • Security fixes were added for ext_authz (CVE-2026-47205), ext_proc (CVE-2026-47207), gRPC stats (CVE-2026-47204), internal redirects (CVE-2026-47221), and OAuth2 lifecycle handling (CVE-2026-48090).
  • OAuth2 adds AES-256-GCM cookie encryption to address CVE-2026-47775. Migration is opt-in: enable oauth2_use_gcm_encryption, monitor oauth_legacy_cbc_decrypt, then disable oauth2_legacy_cbc_decrypt_compat.
  • Additional fixes cover DNS query validation (CVE-2026-48497), JSON nesting limits (CVE-2026-48042), PROXY protocol TLV smuggling (CVE-2026-47692), formatter crashes (CVE-2026-47220), TCP StatsD overflow (CVE-2026-48706), TLS SAN NUL handling (CVE-2026-47778), and Zstd decompression memory exhaustion (CVE-2026-48044).
  • New upstream RBAC and dynamic-forward-proxy resolved-address filtering provide CIDR-based protection against SSRF after DNS resolution and host selection.
Dynamic modules
  • New extension points: access-log/header formatters, downstream and upstream transport sockets, active health checkers, and stats sinks.
  • Cluster load balancers can read host stats, read and write dynamic metadata and filter state, and publish main-thread state to worker-local slots.
  • Modules can emit metrics from configuration and background contexts; loading and initialization failures now expose server-wide counters tagged by extension instance.
  • Added validation-mode detection, network/listener attribute access, batched header and metadata APIs, effective log-level access, and zero-copy borrowed buffers in the Rust SDK.
  • Fixed listener HTTP-callout crashes, watermark initialization, streaming-response re-entry, independent decode/encode continuation, CatchUnwind re-entry, Struct configuration handling, and HTTP/TCP bridge buffer overflow with more than 64 slices.
MCP (Model Context Protocol) and AI protocols
  • Added a Wuffs-backed streaming JSON parser for MCP, A2A, OpenAI, Anthropic, and related protocols, with bounded field capture, incremental parsing, no DOM allocation, and duplicate-key detection.
  • MCP filtering now exposes processing status, supports configurable duplicate-key rejection, and improves oversized-body behavior for pass-through and rejection modes.
  • MCP router adds elicitation and server-to-client request routing, plus lazy per-backend initialization.
  • MCP JSON REST Bridge adds per-route tool configuration and locally generated tools/list responses.
HTTP, routing and protocol
  • New HTTP filters provide weighted bandwidth sharing and selectable sub-filter chains with per-route configuration.
  • HeaderMatcher now evaluates separately supplied header values individually instead of matching only their comma-joined representation (revertible via envoy.reloadable_features.match_headers_individually).
  • HTTP inspector uses Balsa by default and now fast-fails invalid non-HTTP method bytes instead of buffering up to 64 KiB.
  • Added drain-timeout and maximum-connection-duration jitter to reduce synchronized reconnect spikes.
  • Routing gains cluster refresh on retries, weighted-cluster reselection, formatter/CEL-based redirect paths, and mixed literal/variable URI-template segments.
  • Fixed connection-pool re-entrancy, connectivity-grid teardown and duplicate-attempt bugs, stale on-demand cluster information, and handling of HTTP/2 or HTTP/3 RST_STREAM(NO_ERROR) after complete responses.
TLS, authentication and authorization
  • Added CNSA 1.0/2.0 compliance policies, TLS group formatters for identifying post-quantum key exchange, and suppression of oversized client CA lists.
  • QUIC supports opt-in TLS key logging and session-ticket resumption.
  • TLS certificate compression via the brotli runtime guard is disabled by default; TLS sockets also gain improved connection-reset reporting.
  • OAuth2 adds PRIVATE_KEY_JWT, ID-token forwarding, configurable post-logout redirects, access-token-based cookie lifetime, and safe original-request URI formatting with redirect-domain allowlists.
  • BasicAuth supports missing-credential pass-through and authenticated-username metadata; JWT extraction can mark forwarded claims whose signatures were not verified.
DNS, load balancing and upstream
  • The unified DNS cluster implementation is enabled by default; equivalent c-ares resolvers can be shared across clusters to support shared qcache.
  • DNS clusters gain a minimum TTL refresh floor, while dynamic forward proxy sub-clusters can use DnsCluster configuration and resolved-address CIDR filtering.
  • Client-side weighted round robin adds out-of-band ORCA reporting with configurable port, authority, and transport socket matching.
  • Least-request load balancing can optionally account for pending requests, with a new per-endpoint pending-request gauge.
  • Fixed EDS hostname updates, load reports containing only custom metrics or completed requests, and dynamic-forward-proxy lookup teardown.
Networking and system performance
  • Linux deployments gain worker CPU affinity and an SO_REUSEPORT BPF connection balancer for CPU-local connection steering.
  • Added a Linux sockmap socket interface for accelerating same-host TCP traffic through eBPF.
  • io_uring adds multishot receives, adaptive read buffers, and configurable write backpressure.
  • Reverse tunnels gain opt-in GOAWAY-aware draining and replacement; MySQL proxy adds downstream TLS termination with caching_sha2_password mediation.
  • Added UDP proxy external authorization, network ext_proc metadata reception, and early external-processor stream closure.
Observability
  • New access-log data includes upstream TLS SNI and HTTP/TCP downstream/upstream connection duration points; gRPC access logging adds delivery success/failure counters.
  • Added dynamic-module and Wasm programmable stats sinks, OpenTelemetry metric request chunking, endpoint observability names, and default-tag overrides.
  • Prometheus scraping and large-scale stat-reference release are substantially faster; /peak_heap_dump exposes tcmalloc's peak heap profile.
  • Added process-wide Lua and Wasm VM gauges, single-entry stack traces, and an Envoy-version log-format token.
  • Tap now honors configured runtime sampling and reports sampled-out requests/connections.
Rate limiting and configuration
  • Rate limiting adds static and dynamic per-descriptor limit overrides, zero-token always-reject behavior, and configurable response-metadata namespaces.
  • GCP authentication supports bound access tokens, bound JWTs, and unbound access tokens from the metadata server.
  • Added file-backed IP tagging, in-place watched-file modification events, runtime-adjustable fixed-heap limits, health-check HTTP status events, and xDS unsubscribe callbacks.
  • Redis proxy adds Redis 7.4 hash-field expiry commands and permits custom commands inside transactions.
Other notable changes and fixes
  • Fixed Hickory DNS resolver leaks and use-after-free, file-server cancellation use-after-free, Golang filter re-entry, outlier-detection teardown, missing network namespaces, and asynchronous TLS close handling.
  • Fixed RTDS guard removal, VHDS subscriptions, Wasm VM cache invalidation when environment variables change, and upstream Wasm metric scoping.
  • Improved UDP proxy attempted-host and address logging, Zipkin timestamp trace IDs, gRPC access-log failure accounting, and health-check event detail.
  • Added TCP proxy delayed route selection, drain-close handling, and connection-duration access logging.

Docker images:
https://hub.docker.com/r/envoyproxy/envoy/tags?page=1&name=v1.39.0
Docs:
https://www.envoyproxy.io/docs/envoy/v1.39.0/
Release notes:
https://www.envoyproxy.io/docs/envoy/v1.39.0/version_history/v1.39/v1.39.0
Full changelog:
envoyproxy/envoy@v1.38.0...v1.39.0

Signed-off-by: Kateryna Nezdolii kateryna.nezdolii@gmail.com
Signed-off-by: Ryan Northey ryan@synca.io
Signed-off-by: Jonh Wendell jwendell@redhat.com

v1.38.4

Compare Source

Summary of changes:

  • Security fixes:

    • CVE-2026-73511: url normalization: strip path parameters from individual path segments per RFC 3986 section 3.3. Revert with envoy.reloadable_features.strip_path_parameters_per_segment.
    • CVE-2026-73512: http3: UAF on a specifically timed sequence of HTTP/3 frames.
    • CVE-2026-73513: http2: abnormal process termination on trailers received without the END_STREAM flag.
    • CVE-2026-73546: admin: sanitize stat names before converting them to HTML. Guarded by envoy.reloadable_features.sanitize_html_stats_names.
    • CVE-2026-73547: ext_authz: abnormal process termination on requests without a URI path (i.e. CONNECT).
    • CVE-2026-73548: http: payload sent before a generic HTTP upgrade was accepted could be interpreted as a pipelined HTTP/1 request and poison a shared upstream connection. Revert with envoy.reloadable_features.http_pause_generic_upgrade_request_body.
    • CVE-2026-73549: quic: crash handling scoped IPv6 addresses in QUIC client connections and Original Dst clusters.
    • CVE-2026-73550: http2: dropped Host headers now count towards request header map size and count limits. Revert with envoy.reloadable_features.http2_track_size_of_dropped_host_header.
    • CVE-2026-73551: url normalization: strip path parameters from dot and dotdot segments (/.;, /..;) so canonicalization interprets them correctly. Applies only when normalize_path is enabled; revert with envoy.reloadable_features.strip_dotdot_segments_with_parameters.
    • CVE-2026-73552: safe_regex: switch charset mode from UTF-8 to Latin1, as HTTP headers are not UTF-8 encoded. Revert with envoy.reloadable_features.re2_use_latin1_mode.
    • CVE-2026-73553: rbac: RBAC path matching now respects the route's ignore_path_parameters_in_path_matching, preventing authz bypass via appended path parameters. Revert with envoy.reloadable_features.rbac_respect_ignore_path_parameters.
    • CVE-2026-50572: ext_authz: UAF when ext_authz over HTTP causes a request to be rejected.
    • CVE-2026-48521: http3: abnormal process termination when upstream protocol is selected via ALPN and the server uses HTTP/3.
  • Bug fixes:

    • http: fixed a filter manager bug where a body frame moved into the filter-manager buffer via addDecodedData()/addEncodedData() immediately before returning Continue was silently dropped, corrupting large streamed bodies. Revert with envoy.reloadable_features.filter_manager_forward_added_data_on_continue.
    • ext_proc: fixed multiple lifetime bugs in the ext_proc filter and the underlying gRPC async client that could lead to use-after-free or double delivery of callbacks.
    • router: fixed a lifetime bug in dynamic forward proxy async host selection when the cluster is removed while lookup is still pending.
    • tls: fixed a memory leak in the OpenSSL compatibility layer where SSL_get0_peer_certificates() leaked an X509 refcount per call, preventing certificates from being freed on connection close.
    • tls: fixed a bug where OpenSSL used glibc's allocator instead of tcmalloc, operating on a separate heap and making OpenSSL allocations invisible to tcmalloc heap profiling.

Docker images:
https://hub.docker.com/r/envoyproxy/envoy/tags?page=1&name=v1.38.4
Docs:
https://www.envoyproxy.io/docs/envoy/v1.38.4/
Release notes:
https://www.envoyproxy.io/docs/envoy/v1.38.4/version_history/v1.38/v1.38.4
Full changelog:
envoyproxy/envoy@v1.38.3...v1.38.4

Signed-off-by: Yan Avlasov yavlasov@google.com
Signed-off-by: Kateryna Nezdolii kateryna.nezdolii@gmail.com
Signed-off-by: Jonh Wendell jonh.wendell@redhat.com
Signed-off-by: Ryan Northey ryan@synca.io

v1.38.3

Compare Source

Summary of changes:

  • Security fixes:

    • CVE-2026-47205: Authz per route crash
    • CVE-2026-47207: ext_proc response in one gRPC message
    • CVE-2026-47221: router internal redirects crash
    • CVE-2026-47220: REQUESTED_SERVER_NAME crash
    • CVE-2026-47775: OAuth2 code verifier padding oracle
    • CVE-2026-48044: zstd RLE zip bomb
    • CVE-2026-47204: grpc_stats filter segfault on Connect protocol requests to direct_response routes
    • CVE-2026-47692: PROXY Protocol v2 header generator emits "skipped" TLVs, causing 65 KB attacker-controlled spillover into the upstream application stream
    • CVE-2026-47778: Embedded NUL in TLS SAN Truncation, Auth Bypass
    • CVE-2026-48042: Stack overflow in destructor of highly nested JSON
    • CVE-2026-48090: OAuth2 filter late async token completion after stream teardown results in UAF/crash risk
    • CVE-2026-48497: Abnormal process termination in DNS UDP filter
    • CVE-2026-48743: HTTP/3 to HTTP/1 request smuggling via headers-only request with nonzero Content-Length
    • CVE-2026-48706: Envoy Heap Buffer Overflow in TcpStatsdSink
    • GHSA-p7c7-7c47-pwch: Denial-of-Service Attack Against the HTTP/3 Stack via QPACK Blocked Decoding
  • Upstream security fixes:

  • Behavior changes:

    • build: disabled the contrib extension envoy.network.connection_balance.dlb (Intel DLB connection balancer) at the Bazel layer for all builds and platforms due to a breakage at the source archive. See #​45491 for local workarounds.
  • Minor behavior changes:

    • tls: runtime guard envoy.reloadable_features.tls_certificate_compression_brotli is now disabled by default. When disabled, QUIC retains zlib-only certificate compression and TCP TLS performs no certificate compression. It can be re-enabled by setting the runtime guard to true.

Docker images:
https://hub.docker.com/r/envoyproxy/envoy/tags?page=1&name=v1.38.3
Docs:
https://www.envoyproxy.io/docs/envoy/v1.38.3/
Release notes:
https://www.envoyproxy.io/docs/envoy/v1.38.3/version_history/v1.38/v1.38.3
Full changelog:
envoyproxy/envoy@v1.38.2...v1.38.3

Signed-off-by: Greg Greenway ggreenway@apple.com
Signed-off-by: Jonh Wendell jonh.wendell@redhat.com
Signed-off-by: Kateryna Nezdolii kateryna.nezdolii@gmail.com
Signed-off-by: Ryan Northey ryan@synca.io
Signed-off-by: Boteng Yao boteng@google.com

v1.38.2

Compare Source

Summary of changes:

  • Bug fixes:

    • runtime: fixed RTDS runtime guard override removal so deleting an override restores the process-wide runtime guard value to the default value.
  • New features:

    • http2: added opt-in histograms for HTTP/2 header statistics, including header-entry count, header-map byte size, reassembled cookie header length, and individual cookie header count. Enable with envoy.reloadable_features.http2_record_histograms; the histograms and runtime guard will be removed in a future Envoy release.
    • http2: added envoy.reloadable_features.http2_max_cookies_size_in_kb to limit the size of the reassembled cookie header. By default, no cookie-size limit is enforced.

Docker images:
https://hub.docker.com/r/envoyproxy/envoy/tags?page=1&name=v1.38.2
Docs:
https://www.envoyproxy.io/docs/envoy/v1.38.2/
Release notes:
https://www.envoyproxy.io/docs/envoy/v1.38.2/version_history/v1.38/v1.38.2
Full changelog:
envoyproxy/envoy@v1.38.1...v1.38.2

Signed-off-by: Ryan Northey ryan@synca.io
Signed-off-by: Kateryna Nezdolii kateryna.nezdolii@gmail.com

v1.38.1

Compare Source

Summary of changes:

  • Security fixes:

    • CVE-2026-47774: http2: HTTP/2 streams are now reset if they violate the configured maximum header list size. Uncompressed cookies now count towards mutable_max_request_headers_kb and max_headers_count limits, protecting against an HPACK cookie-bomb that could cause excessive memory usage. This can be reverted with envoy.reloadable_features.http2_include_cookies_in_limits.
    • oauth2: fixed a timing side-channel in HMAC verification that could leak HMAC secret validity.
    • oauth2: fixed a crash where AES-CBC decryption of token cookies could spuriously succeed (~1/256) on a secret mismatch, tripping a HeaderString validation assert.
    • CVE-2026-27135: http2: applied nghttp2 CVE-2026-27135 patch.
  • Bug fixes:

    • dynamic_modules: fixed a crash in the HTTP filter when a stream was already above the downstream write-buffer high watermark at filter-chain construction time.
  • Minor behavior changes:

    • router: the upstream transport failure reason is no longer included in the HTTP response body sent to downstream clients (still available in access logs via %UPSTREAM_TRANSPORT_FAILURE_REASON%). Revert with envoy.reloadable_features.hide_transport_failure_reason_in_response_body.
    • upstream: load balancer rebuild coalescing during EDS batch host updates is now opt-in. Re-enable with envoy.reloadable_features.coalesce_lb_rebuilds_on_batch_update.

Docker images:
https://hub.docker.com/r/envoyproxy/envoy/tags?page=1&name=v1.38.1
Docs:
https://www.envoyproxy.io/docs/envoy/v1.38.1/
Release notes:
https://www.envoyproxy.io/docs/envoy/v1.38.1/version_history/v1.38/v1.38.1
Full changelog:
envoyproxy/envoy@v1.38.0...v1.38.1

Signed-off-by: Jonh Wendell jonh.wendell@redhat.com
Signed-off-by: Greg Greenway ggreenway@apple.com
Signed-off-by: Ryan Northey ryan@synca.io

v1.38.0

Compare Source

Summary of changes

Breaking changes
  • tcp_proxy: max_early_data_bytes must be set explicitly for upstream_connect_mode values other than IMMEDIATE; missing configurations now fail validation at startup.
  • on_demand: the on-demand filter no longer performs internal redirects after a successful CDS fetch, so earlier filters are not invoked twice (revertible via envoy.reloadable_features.on_demand_cluster_no_recreate_stream).
  • BoringSSL/FIPS: the --define=boringssl=fips flag has been removed; use --config=boringssl-fips.
  • TLS: enforce_rsa_key_usage now defaults to true; the option will be removed in the next release.
  • ext_proc: the processing_effect_lib has moved from extensions/filters/http/ext_proc to extensions/filters/common/processing_effect.
Dynamic modules
  • New extension points: tracers, TLS certificate validators, custom clusters, load balancing policies, input matchers, upstream HTTP-to-TCP bridge, and listener filters with HTTP callouts.
  • Bootstrap extensions gained init-manager integration, drain/shutdown lifecycle hooks, listener-lifecycle callbacks, timer and admin-handler APIs, and metrics support.
  • Network filter callbacks for flow-control and connection state (read_disable, watermarks, half-close, buffer limits, etc.) and persistent read/write buffers across callbacks.
  • Listener-filter socket and TLS introspection (SNI, ALPN, JA3/JA4, SSL SANs/subject) plus write_to_socket/close_socket callbacks enabling Postgres SSL, MySQL, and similar protocol negotiation.
  • Module loading from local file paths and remote HTTP sources (SHA256-verified, cached, with optional NACK-on-cache-miss).
  • Process-wide function and shared-data registries for zero-copy cross-module interactions.
  • Rust SDK: unified declare_all_init_functions! macro for registering any combination of HTTP/network/listener/UDP/bootstrap/access-logger filters, opt-in CatchUnwind panic wrapper, multi-logger support.
  • Custom metrics on load balancers with configurable metrics_namespace, get_host_health_by_address fast path, host-membership update callbacks.
  • ABI forward-compatibility: modules built against the v1.38 SDK can be loaded by a v1.39 Envoy binary.
  • New envoy_dynamic_module_callback_is_validation_mode callback and typed filter-state support.
MCP (Model Context Protocol) and A2A
  • MCP router: full method coverage — resources/list|read|subscribe|unsubscribe, resources/templates/list, prompts/list|get, completion/complete, logging/setLevel, plus notifications/cancelled and notifications/roots/list_changed.
  • SSE streaming support: pass-through for tools/call and fan-out aggregation for tools/list, initialize, resources/list, and prompts/list.
  • MCP filter: HTTP DELETE session termination, relaxed application/json Content-Type matching, optional traceparent/tracestate/baggage propagation from MCP parameters, statistics added to the MCP router, and default metadata namespace changed to envoy.filters.http.mcp.
  • New MCP JSON REST Bridge HTTP filter (work-in-progress) transcoding JSON-RPC to REST, with tools/call request transcoding and session negotiation.
  • Added parsing support for the A2A (Agent2Agent) JSON-RPC protocol.
HTTP, routing and protocol
  • HTTP/2: new max_header_field_size_kb to raise the nghttp2 64 KiB per-header limit; applied the nghttp2 CVE-2026-27135 patch.
  • HTTP/1: optional strict chunked-encoding parsing behind a runtime guard.
  • Optional JSON format for the x-forwarded-client-cert (XFCC) header.
  • New envoy.filters.http.sse_to_metadata filter (extract SSE event values into dynamic metadata, useful for LLM token-usage metrics), with a pluggable envoy.content_parsers.json parser.
  • New envoy.filters.http.file_server filter for serving files directly from disk.
  • Refactored route(), clusterInfo(), and virtualHost() to return OptRef<const T>, with new *SharedPtr() companions.
  • Happy Eyeballs now handles interleaving of non-IP addresses.
TLS, security and authorization
  • TLS certificate compression (RFC 8879) extended: brotli added to QUIC, and both brotli and zlib added to TCP TLS.
  • enforce_rsa_key_usage defaults to true on upstream TLS contexts; the option will be removed next release.
  • On-demand upstream certificate fetching via SDS using the envoy.tls.certificate_selectors.on_demand_secret extension.
  • Exposed verified issuer SHA-256 fingerprint and serial number via %DOWNSTREAM_PEER_ISSUER_FINGERPRINT_256% / %DOWNSTREAM_PEER_ISSUER_SERIAL% and corresponding Lua accessors.
  • Per-connection SPIFFE trust-domain selection for multi-tenant deployments; reduced file-watch overhead and support for watched_directory.
  • ext_authzshadow_mode (decision written to filter state without terminating requests), path_override, honoring status_on_error on 5xx/HTTP-call failures, fix for propagating headers from denied responses.
  • OAuth2 — per-route configuration, TLS_CLIENT_AUTH (RFC 8705 mTLS client auth), OauthExpires cookie cleared on logout, oauth2_encrypt_tokens runtime guard removed (encryption now default, opt-out via disable_token_encryption).
  • RBAC header matcher now validates each header value individually (guarded) to prevent concatenation-based bypasses.
  • Query-parameter values added via query_parameter_mutations are now URL-encoded to prevent injection.
  • OpenSSL can now be used as an alternative to the default BoringSSL (build with --config=openssl Bazel flag); HTTP/3 (QUIC) is disabled and OpenSSL builds are not covered by the Envoy security policy.
Observability
  • New formatters: SPAN_ID, QUERY_PARAMS, UPSTREAM_LOCAL_CLOSE_REASON, DOWNSTREAM_LOCAL_CLOSE_REASON, UPSTREAM_DETECTED_CLOSE_TYPE, DOWNSTREAM_DETECTED_CLOSE_TYPE, %UPSTREAM_HOSTS_ATTEMPTED% and related attempt/connection-ID formatters, %FILE_CONTENT(...)%, %SECRET(name)%.
  • *_WITHOUT_PORT address formatters accept an optional MASK_PREFIX_LEN to emit CIDR-masked addresses.
  • Prometheus admin endpoint supports the protobuf exposition format and Prometheus native histograms.
  • Cluster-level and listener-level stats matchers, plus stats-scope metric-count limits.
  • OpenTelemetry stat sink can now export metrics over HTTP (OTLP/HTTP) without a collector sidecar.
  • Access loggers: stats customization and gauge support in the stats access logger; network filters can register as access loggers; new asn_org geoip field; log events on OpenTelemetry spans.
Routing, load balancing and upstream
  • Coalesced load-balancer rebuilds during EDS batch host updates — significant CPU-spike reduction on large clusters.
  • Passive degraded-host detection (detect_degraded_hosts) via the x-envoy-degraded response header.
  • Redis Cluster zone-aware routing (LOCAL_ZONE_AFFINITY / LOCAL_ZONE_AFFINITY_REPLICAS_AND_PRIMARY, Valkey only).
  • New upstream_rq_active_overflow counter distinguishing active-RQ saturation from pending-queue saturation.
  • ODCDS over ADS fix for tcp_proxy; SRDS late-listener init fix; drop_overload now uses cached EDS.
  • EDS metadata comparison uses a cached hash for O(1) per-host comparison.
  • ORCA weight manager prefers named metrics over application utilization by default.
Rate limiting
  • is_negative_hits on hits_addend to refund tokens to the budget.
  • New RemoteAddressMatch rate-limit action (CIDR-based, with inversion and formatter substitution).
  • Per-descriptor x-ratelimit-* response headers and shadow mode in the local rate limit filter.
  • timeout: 0s in HTTP ext_authz and HTTP rate-limit filters now means "no timeout", aligning with other Envoy timeouts.
Memory, resource and connection management
  • Replaced the custom timer-based tcmalloc release with tcmalloc's native ProcessBackgroundActions / SetBackgroundReleaseRate.
  • New MemoryAllocatorManager fields (soft_memory_limit_bytes, max_per_cpu_cache_size_bytes, max_unfreed_memory_bytes).
  • Typed ShrinkHeapConfig for the shrink_heap overload action.
  • cgroup v2 support in the CPU utilization resource monitor, with automatic v1/v2 detection.
  • New per_connection_buffer_high_watermark_timeout on listeners and clusters to close connections stuck above the watermark.
  • Fixed a resource leak in global connection-limit tracking under load shedding.
xDS and configuration
  • set_node_on_first_message_only now supported in Delta-xDS.
  • Delta-xDS failover fix for initial_resource_versions on reconnect.
  • --mode validate now creates bootstrap extensions, actually validating their configs.
  • CEL expressions that attempt to read response-path data on the request path are automatically re-evaluated when the data becomes available.
  • New HttpResponseLocalReplyMatchInput matcher input to distinguish local replies from upstream responses.
  • New HickoryDnsResolverConfig — DNS resolver built on Hickory DNS.
TCP proxy and PROXY protocol
  • New proxy_protocol_tlv_merge_policy (ADD_IF_ABSENT, OVERWRITE_BY_TYPE_IF_EXISTS_OR_ADD, APPEND_IF_EXISTS_OR_ADD).
  • Option to emit an access-log entry when a connection is accepted.
  • max_early_data_bytes is now required when using non-IMMEDIATE upstream_connect_mode.
Other notable changes and fixes
  • Router returns DEADLINE_EXCEEDED (instead of UNAVAILABLE) on router-enforced gRPC timeouts (opt-in).
  • Hot restart fixed for listeners with a network-namespace address.
  • HTTP/3 client pool fix for early-data requests with async certificate validation.
  • Fixes for HTTP/1 zombie-stream FD leaks, internal-redirect hang on buffer overflow, keep-alive header preservation, reset-stream filter-chain safety, idle-timer-before-connected behaviour, and a worker-thread watchdog configuration bug.
  • Several ext_proc fixes: two ext_procs in the same chain, CEL message text-format serialization, empty-data-chunk handling.
  • Geoip HTTP filter promoted to stable.
  • Published contrib binaries now carry a -contrib version suffix.

Docker images:
https://hub.docker.com/r/envoyproxy/envoy/tags?page=1&name=v1.38.0
Docs:
https://www.envoyproxy.io/docs/envoy/v1.38.0/
Release notes:
https://www.envoyproxy.io/docs/envoy/v1.38.0/version_history/v1.38/v1.38.0
Full changelog:
envoyproxy/envoy@v1.37.0...v1.38.0

Signed-off-by: Ryan Northey ryan@synca.io
Signed-off-by: Jonh Wendell jwendell@redhat.com
Signed-off-by: Raven Black ravenblack@dropbox.com

v1.37.6

Compare Source

Summary of changes:

  • Security fixes:

    • CVE-2026-73511: url normalization: strip path parameters from individual path segments per RFC 3986 section 3.3. Revert with envoy.reloadable_features.strip_path_parameters_per_segment.
    • CVE-2026-73512: http3: UAF on a specifically timed sequence of HTTP/3 frames.
    • CVE-2026-73513: http2: abnormal process termination on trailers received without the END_STREAM flag.
    • CVE-2026-73546: admin: sanitize stat names before converting them to HTML. Guarded by envoy.reloadable_features.sanitize_html_stats_names.
    • CVE-2026-73547: ext_authz: abnormal process termination on requests without a URI path (i.e. CONNECT).
    • CVE-2026-73548: http: payload sent before a generic HTTP upgrade was accepted could be interpreted as a pipelined HTTP/1 request and poison a shared upstream connection. Revert with envoy.reloadable_features.http_pause_generic_upgrade_request_body.
    • CVE-2026-73549: quic: crash handling scoped IPv6 addresses in QUIC client connections and Original Dst clusters.
    • CVE-2026-73550: http2: dropped Host headers now count towards request header map size and count limits. Revert with envoy.reloadable_features.http2_track_size_of_dropped_host_header.
    • CVE-2026-73551: url normalization: strip path parameters from dot and dotdot segments (/.;, /..;) so canonicalization interprets them correctly. Applies only when normalize_path is enabled; revert with envoy.reloadable_features.strip_dotdot_segments_with_parameters.
    • CVE-2026-73552: safe_regex: switch charset mode from UTF-8 to Latin1, as HTTP headers are not UTF-8 encoded. Revert with envoy.reloadable_features.re2_use_latin1_mode.
    • CVE-2026-73553: rbac: RBAC path matching now respects the route's ignore_path_parameters_in_path_matching, preventing authz bypass via appended path parameters. Revert with envoy.reloadable_features.rbac_respect_ignore_path_parameters.
    • CVE-2026-50572: ext_authz: UAF when ext_authz over HTTP causes a request to be rejected.
    • CVE-2026-48521: http3: abnormal process termination when upstream protocol is selected via ALPN and the server uses HTTP/3.
  • Bug fixes:

    • http: fixed a filter manager bug where a body frame moved into the filter-manager buffer via addDecodedData()/addEncodedData() immediately before returning Continue was silently dropped, corrupting large streamed bodies. Revert with envoy.reloadable_features.filter_manager_forward_added_data_on_continue.
    • ext_proc: fixed multiple lifetime bugs in the ext_proc filter and the underlying gRPC async client that could lead to use-after-free or double delivery of callbacks.
    • ext_proc: fixed a bug where unnecessary empty data chunks were processed by the filter chain. Revert with envoy.reloadable_features.ext_proc_return_stop_iteration.
    • router: fixed a lifetime bug in dynamic forward proxy async host selection when the cluster is removed while lookup is still pending.

Docker images:
https://hub.docker.com/r/envoyproxy/envoy/tags?page=1&name=v1.37.6
Docs:
https://www.envoyproxy.io/docs/envoy/v1.37.6/
Release notes:
https://www.envoyproxy.io/docs/envoy/v1.37.6/version_history/v1.37/v1.37.6
Full changelog:
envoyproxy/envoy@v1.37.5...v1.37.6

Signed-off-by: Yan Avlasov yavlasov@google.com
Signed-off-by: Kateryna Nezdolii kateryna.nezdolii@gmail.com
Signed-off-by: Jonh Wendell jonh.wendell@redhat.com
Signed-off-by: Ryan Northey ryan@synca.io

v1.37.5

Compare Source

Summary of changes:

  • Security fixes:

    • CVE-2026-47205:Authz per route crash
    • CVE-2026-47207: ext_proc response in one gRPC message
    • CVE-2026-47221: router internal redirects crash
    • CVE-2026-47220: REQUESTED_SERVER_NAME crash
    • CVE-2026-47775: OAuth2 code verifier padding oracle
    • CVE-2026-48044: zstd RLE zip bomb
    • CVE-2026-47204: grpc_stats filter segfault on Connect protocol requests to direct_response routes
    • CVE-2026-47692: PROXY Protocol v2 header generator emits "skipped" TLVs, causing 65 KB attacker-controlled spillover into the upstream application stream
    • CVE-2026-47778: Embedded NUL in TLS SAN Truncation, Auth Bypass
    • CVE-2026-48042: Stack overflow in destructor of highly nested JSON
    • CVE-2026-48090: OAuth2 filter late async token completion after stream teardown results in UAF/crash risk
    • CVE-2026-48497: Abnormal process termination in DNS UDP filter
    • CVE-2026-48743: HTTP/3 to HTTP/1 request smuggling via headers-only request with nonzero Content-Length
    • CVE-2026-48706: Envoy Heap Buffer Overflow in TcpStatsdSink
    • GHSA-p7c7-7c47-pwch: Denial-of-Service Attack Against the HTTP/3 Stack via QPACK Blocked Decoding
  • Upstream security fixes:

  • Behavior changes:

    • build: disabled the contrib extension envoy.network.connection_balance.dlb (Intel DLB connection balancer) at the Bazel layer for all builds and platforms due to a breakage at the source archive. See #​45491 for local workarounds.

Docker images:
https://hub.docker.com/r/envoyproxy/envoy/tags?page=1&name=v1.37.5
Docs:
https://www.envoyproxy.io/docs/envoy/v1.37.5/
Release notes:
https://www.envoyproxy.io/docs/envoy/v1.37.5/version_history/v1.37/v1.37.5
Full changelog:
envoyproxy/envoy@v1.37.4...v1.37.5

Signed-off-by: Greg Greenway ggreenway@apple.com
Signed-off-by: Jonh Wendell jonh.wendell@redhat.com
Signed-off-by: Kateryna Nezdolii kateryna.nezdolii@gmail.com
Signed-off-by: Ryan Northey ryan@synca.io
Signed-off-by: Boteng Yao boteng@google.com

v1.37.4

Compare Source

Summary of changes:

  • Bug fixes:

    • runtime: fixed RTDS runtime guard override removal so deleting an override restores the process-wide runtime guard value to the default value.
  • New features:

    • http2: added opt-in histograms for HTTP/2 header statistics, including header-entry count, header-map byte size, reassembled cookie header length, and individual cookie header count. Enable with envoy.reloadable_features.http2_record_histograms; the histograms and runtime guard will be removed in a future Envoy release.
    • http2: added envoy.reloadable_features.http2_max_cookies_size_in_kb to limit the size of the reassembled cookie header. By default, no cookie-size limit is enforced.

Docker images:
https://hub.docker.com/r/envoyproxy/envoy/tags?page=1&name=v1.37.4
Docs:
https://www.envoyproxy.io/docs/envoy/v1.37.4/
Release notes:
https://www.envoyproxy.io/docs/envoy/v1.37.4/version_history/v1.37/v1.37.4
Full changelog:
envoyproxy/envoy@v1.37.3...v1.37.4

Signed-off-by: Ryan Northey ryan@synca.io
Signed-off-by: Kateryna Nezdolii kateryna.nezdolii@gmail.com

v1.37.3

Compare Source

Summary of changes:

  • Security fixes:

    • CVE-2026-47774: http2: HTTP/2 streams are now reset if they violate the configured maximum header list size. Uncompressed cookies now count towards mutable_max_request_headers_kb and max_headers_count limits, protecting against an HPACK cookie-bomb that could cause excessive memory usage. This can be reverted with envoy.reloadable_features.http2_include_cookies_in_limits.
    • oauth2: fixed a timing side-channel in HMAC verification that could leak HMAC secret validity.
    • oauth2: fixed a crash where AES-CBC decryption of token cookies could spuriously succeed (~1/256) on a secret mismatch, tripping a HeaderString validation assert.
    • CVE-2026-27135: http2: applied nghttp2 CVE-2026-27135 patch.
  • Bug fixes:

    • load_report: fixed a shutdown race with ADS stream by introducing proper gRPC stream cleanup.

Docker images:
https://hub.docker.com/r/envoyproxy/envoy/tags?page=1&name=v1.37.3
Docs:
https://www.envoyproxy.io/docs/envoy/v1.37.3/
Release notes:
https://www.envoyproxy.io/docs/envoy/v1.37.3/version_history/v1.37/v1.37.3
Full changelog:
envoyproxy/envoy@v1.37.2...v1.37.3

Signed-off-by: Jonh Wendell jonh.wendell@redhat.com
Signed-off-by: Greg Greenway ggreenway@apple.com
Signed-off-by: Ryan Northey ryan@synca.io

v1.37.2

Compare Source

Summary of changes:

  • Fixed a crash on listener removal with a process-level access log rate limiter
  • Dynamic module filters could send incomplete request/response bodies when adjacent filters in the chain performed buffering.
  • Internal redirect logic could hang a request when the request buffer overflows.
  • Update/fix Docker release images.
  • Updates to stats.

Docker images:
https://hub.docker.com/r/envoyproxy/envoy/tags?page=1&name=v1.37.2
Docs:
https://www.envoyproxy.io/docs/envoy/v1.37.2/
Release notes:
https://www.envoyproxy.io/docs/envoy/v1.37.2/version_history/v1.37/v1.37.2
Full changelog:
envoyproxy/envoy@v1.37.1...v1.37.2

Signed-off-by: Ryan Northey ryan@synca.io

v1.37.1

Compare Source

Summary of changes:

  • Security fixes:

    • CVE-2026-26330: ratelimit: fix a bug where response phase limit may result in crash
    • CVE-2026-26308: fix multivalue header bypass in rbac
    • CVE-2026-26310: network: fix crash in getAddressWithPort() when called with a scoped IPv6 address
    • CVE-2026-26309: json: fixed an off-by-one write that could corrupted the string null terminator
    • CVE-2026-26311: http: ensure decode* methods are blocked after a downstream reset
  • Bug fixes:

    • oauth2: Fixed OAuth2 refresh requests so host rewriting no longer overrides the original Host header value.
    • ext_proc: Fixed a bug to support two ext_proc filters configured in the chain.
    • ext_proc: Fixed message-valued CEL attribute serialization to use protobuf text format instead of debug string output, restoring compatibility with protobuf 30+.
    • ext_authz: Fixed headers from denied authorization responses (non-200) not being properly propagated to the client.
    • ext_authz: Fixed the HTTP ext_authz client to respect status_on_error configuration when the authorization server returns a 5xx error or when HTTP call failures occur.
    • access_log: Fixed a crash on listener removal with a process-level access log rate limiter.
  • Other changes:

    • release: Published contrib binaries now include the -contrib suffix in their version string and fixed distroless-contrib images.
    • dynamic modules: Introduced extended ABI forward compatibility mechanism for dynamic modules.
  • Dependency updates:

    • Migrated googleurl source to GitHub (google/gurl).
    • Updated Kafka test binary to 3.9.2.
    • Updated Docker base images.

Docker images:
https://hub.docker.com/r/envoyproxy/envoy/tags?page=1&name=v1.37.1
Docs:
https://www.envoyproxy.io/docs/envoy/v1.37.1/
Release notes:
https://www.envoyproxy.io/docs/envoy/v1.37.1/version_history/v1.37/v1.37.1
Full changelog:
envoyproxy/envoy@v1.37.0...v1.37.1

Signed-off-by: Ryan Northey ryan@synca.io
Signed-off-by: Boteng Yao boteng@google.com

v1.37.0

Compare Source

Summary of changes

Dynamic modules expansion
  • Added support for network, listener, UDP listener, and access logger filters
  • Introduced streaming HTTP callouts to HTTP filters
  • Enhanced ABI for streaming body manipulation and header operations
  • Added global module loading and improved module search path handling
HTTP and protocol enhancements
  • Container-aware CPU detection for improved resource utilization in containerized environments
  • HTTP/2 performance optimizations including reduced allocations for well-known headers
  • Enhanced cookie matching in route configuration
  • Added vhost header customization and forward client cert matching via xDS matcher
Filter ecosystem growth
  • New transform filter for request/response body modification
  • New MCP (Model Context Protocol) filter and router for agentic network
  • Network-layer geoip filter for non-HTTP geolocation
  • Postgres Inspector listener filter for PostgreSQL traffic routing
Security and authorization
  • Proto API Scrubber filter now production-ready with comprehensive metrics
  • Enhanced ext_authz with error response support and improved header handling
  • Better TLS certificate validation failure messages in access logs
  • On-demand certificate fetching via SDS
Composite filter improvements
  • Support for filter chains and named filter chains
  • Improved scalability through filter chain reuse across match actions
Observability
  • New stats-based access logger
  • Process-level rate limiting for access logs
  • Enhanced OTLP stats sink with metric dropping support
  • Added execution counters and improved tracing support across filters
Router and traffic management
  • Cluster-level retry policies, hash policies, and request mirroring
  • Composite cluster extension for retry-aware cluster selection
  • Substitution formatting for direct response bodies and descriptor values
Other notable changes
  • Fixed multiple memory leaks and crashes in HTTP/2, Lua, and connection handling
  • Improved QUIC path migration using QUICHE logic
  • Enhanced TCP proxy with upstream connect mode and early data buffering
  • Added MaxMind Country database support for geoip

Breaking changes

  • Changed default HTTP reset code from NO_ERROR to INTERNAL_ERROR
  • Changed reset behavior to ignore upstream protocol errors by default
  • Proto API Scrubber now returns 404 Not Found instead of 403 Forbidden for blocked methods
  • Removed multiple runtime guards and legacy code paths

Deprecations

  • OpenTelemetry access log common_config field deprecated in favor of explicit http_service/grpc_service configuration

Docker images:
https://hub.docker.com/r/envoyproxy/envoy/tags?page=1&name=v1.37.0
Docs:
https://www.envoyproxy.io/docs/envoy/v1.37.0/
Release notes:
https://www.envoyproxy.io/docs/envoy/v1.37.0/version_history/v1.37/v1.37.0
Full changelog:
envoyproxy/envoy@v1.36.0...v1.37.0

Signed-off-by: Ryan Northey ryan@synca.io
Signed-off-by: Boteng Yao boteng@google.com

v1.36.10

Compare Source

Summary of changes:

  • Security fixes:
    • CVE-2026-73511: url normalization: strip path parameters from individual path segments per RFC 3986 section 3.3. Revert with envoy.reloadable_features.strip_path_parameters_per_segment.
    • CVE-2026-73512: http3: UAF on a specifically timed sequence

Note

PR body was truncated to here.


Configuration

📅 Schedule: (in timezone Europe/Rome)

  • Branch creation
    • At any time (no schedule defined)
  • Automerge
    • At any time (no schedule defined)

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR has been generated by Mend Renovate CLI.

@ZxBot
ZxBot requested a review from a team as a code owner September 10, 2026 00:27
@ZxBot
ZxBot force-pushed the renovate/envoyproxy-envoy-1.x branch 2 times, most recently from 09cffc9 to 510bf9c Compare September 17, 2026 00:37
@ZxBot
ZxBot force-pushed the renovate/envoyproxy-envoy-1.x branch from 510bf9c to 7d3c82f Compare September 19, 2026 00:42
@ZxBot
ZxBot force-pushed the renovate/envoyproxy-envoy-1.x branch from 7d3c82f to 1d1164d Compare September 21, 2026 10:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant