Consul

Infrastructure & DevOps

Service discovery and service mesh across any runtime.

Latest v2.0.4 · by HashiCorpWritten in GoWebsitehashicorp/consulRSS

Release activity

Release activity — 12 releases across 12 days since Jan 23, 2026. Each cell is one day; darker means more releases that day. Nothing is recorded before Jan 23, 2026. Older weeks are hidden at this screen width.
JunJulAugSep
SundayNo releases on May 31, 2026No releases on Jun 7, 2026No releases on Jun 14, 2026No releases on Jun 21, 2026No releases on Jun 28, 2026No releases on Jul 5, 2026No releases on Jul 12, 2026No releases on Jul 19, 2026No releases on Jul 26, 2026No releases on Aug 2, 2026No releases on Aug 9, 2026No releases on Aug 16, 2026No releases on Aug 23, 2026No releases on Aug 30, 2026No releases on Sep 6, 2026No releases on Sep 13, 2026
MondayNo releases on Jun 1, 2026No releases on Jun 8, 2026No releases on Jun 15, 2026No releases on Jun 22, 2026No releases on Jun 29, 2026No releases on Jul 6, 2026No releases on Jul 13, 2026No releases on Jul 20, 2026No releases on Jul 27, 2026No releases on Aug 3, 2026No releases on Aug 10, 2026No releases on Aug 17, 2026No releases on Aug 24, 2026No releases on Aug 31, 2026No releases on Sep 7, 2026No releases on Sep 14, 2026
TuesdayNo releases on Jun 2, 2026No releases on Jun 9, 2026No releases on Jun 16, 2026No releases on Jun 23, 2026No releases on Jun 30, 2026No releases on Jul 7, 2026No releases on Jul 14, 2026No releases on Jul 21, 2026No releases on Jul 28, 2026No releases on Aug 4, 2026No releases on Aug 11, 2026No releases on Aug 18, 2026No releases on Aug 25, 2026No releases on Sep 1, 2026No releases on Sep 8, 2026
WednesdayNo releases on Jun 3, 2026No releases on Jun 10, 2026No releases on Jun 17, 2026No releases on Jun 24, 2026No releases on Jul 1, 20261 release on Jul 8, 2026No releases on Jul 15, 2026No releases on Jul 22, 2026No releases on Jul 29, 2026No releases on Aug 5, 2026No releases on Aug 12, 2026No releases on Aug 19, 2026No releases on Aug 26, 2026No releases on Sep 2, 2026No releases on Sep 9, 2026
ThursdayNo releases on Jun 4, 2026No releases on Jun 11, 2026No releases on Jun 18, 2026No releases on Jun 25, 2026No releases on Jul 2, 2026No releases on Jul 9, 2026No releases on Jul 16, 2026No releases on Jul 23, 2026No releases on Jul 30, 2026No releases on Aug 6, 2026No releases on Aug 13, 2026No releases on Aug 20, 2026No releases on Aug 27, 2026No releases on Sep 3, 20261 release on Sep 10, 2026
FridayNo releases on Jun 5, 2026No releases on Jun 12, 20261 release on Jun 19, 2026No releases on Jun 26, 2026No releases on Jul 3, 2026No releases on Jul 10, 2026No releases on Jul 17, 2026No releases on Jul 24, 2026No releases on Jul 31, 20261 release on Aug 7, 2026No releases on Aug 14, 2026No releases on Aug 21, 2026No releases on Aug 28, 2026No releases on Sep 4, 2026No releases on Sep 11, 2026
SaturdayNo releases on Jun 6, 2026No releases on Jun 13, 2026No releases on Jun 20, 2026No releases on Jun 27, 2026No releases on Jul 4, 2026No releases on Jul 11, 2026No releases on Jul 18, 2026No releases on Jul 25, 2026No releases on Aug 1, 2026No releases on Aug 8, 2026No releases on Aug 15, 2026No releases on Aug 22, 2026No releases on Aug 29, 2026No releases on Sep 5, 2026No releases on Sep 12, 2026

12 releases since Jan 23, 2026

Changelog

What changed from 1 to 2

v2.0.4

Latest
Changed 3
  • Tokens that hold service:write but not mesh:write will now receive a permission-denied error when attempting to attach builtin/lua or builtin/wasm EnvoyExtensions to a service-defaults config entry
  • FIPS release artifacts are renamed from F2 suffix to F3 suffix and version metadata changes from +ent.fips1402 to +ent.fips1403
  • Migrate FIPS builds from FIPS 140-2 to FIPS 140-3 using the Go Cryptographic Module
Fixed 1
  • Fix a cold-start crash where an api-gateway's Envoy proxy could segfault during worker startup when a route's failover upstream was rendered as an aggregate cluster before its endpoints were assembled
Security 7
  • Upgrade go version to 1.26.7 to address security vulnerabilities
  • Require mesh:write in addition to service:write when attaching code-executing EnvoyExtensions (builtin/lua, builtin/wasm) or upstream escape-hatch overrides to a service-defaults config entry
  • Require mesh:write in addition to service:write when registering a connect-proxy sidecar with bootstrap or xDS escape-hatch keys
  • Fixed a pre-authorization memory exhaustion vulnerability where an mTLS-authenticated RPC client with no ACL token could terminate a Consul server by sending a MessagePack request header with a large declared length
  • Fixed an incorrect authorization vulnerability where a local ACL token with service:write or node:write could delete peer-imported catalog objects by supplying a non-default PeerName in a Catalog.Deregister request
  • Upgrade golang.org/x/mod to v0.41.0, golang.org/x/crypto to v0.57.0, and golang.org/x/net to v0.59.0 to address security vulnerabilities
  • Escape regex metacharacters in service name, namespace, partition, and trust domain values when building Envoy RBAC SPIFFE match patterns

From Consul

2.0.4 (September 10, 2026)

BREAKING CHANGES:

  • acl: Tokens that hold service:write but not mesh:write will now receive a permission-denied error when attempting to attach builtin/lua or builtin/wasm EnvoyExtensions (or upstream envoy_listener_json/envoy_cluster_json escape-hatch overrides) to a service-defaults config entry, or when registering a connect-proxy sidecar with bootstrap or xDS escape-hatch keys set in the top-level Proxy.Config map or per-upstream in Proxy.Upstreams[*].Config. Operators must grant mesh:write to any token that legitimately needs these capabilities. [GH-23864]
  • fips: (Enterprise only) FIPS release artifacts are renamed. Version metadata changes from +ent.fips1402 to +ent.fips1403, and package and container artifacts change from the F2 suffix to F3 (for example, consul-F2_1.20.4-1_amd64.deb becomes consul-F3_1.20.4-1_amd64.deb). Pipelines that pin FIPS artifact names or version strings must be updated.

SECURITY:

  • Upgrade go version to 1.26.7 to address security vulnerabilities. [GH-23869]
  • acl: Require mesh:write in addition to service:write when attaching code-executing EnvoyExtensions (builtin/lua, builtin/wasm) or upstream escape-hatch overrides (envoy_listener_json, envoy_cluster_json in UpstreamConfig defaults or overrides) to a service-defaults config entry. Previously a holder of service:write on a service could attach a Lua script or Wasm module, or an upstream escape-hatch override, that Envoy compiled and executed on every proxied request as the sidecar process user, with access to mTLS private keys, request bodies, and the host filesystem. [GH-23864]
  • acl: Require mesh:write in addition to service:write when registering a connect-proxy sidecar with bootstrap or xDS escape-hatch keys, whether set in the top-level Proxy.Config map or per-upstream in Proxy.Upstreams[*].Config (envoy_bootstrap_json_tpl, envoy_extra_static_listeners_json, envoy_public_listener_json, envoy_listener_json, envoy_cluster_json, envoy_local_cluster_json, envoy_extra_static_clusters_json, envoy_extra_stats_sinks_json, envoy_tracing_json, envoy_stats_config_json, envoy_listener_tracing_json). Key matching is case-insensitive to match the mapstructure decoding used downstream. Previously a holder of service:write on the proxy and its destination could inject arbitrary Envoy filter chain configuration into the sidecar bootstrap or xDS resources, including via a per-upstream override or a mixed-case key. [GH-23864]
  • agent: Fixed a pre-authorization memory exhaustion vulnerability where an mTLS-authenticated RPC client with no ACL token could terminate a Consul server by sending a MessagePack request header with a large declared length. The MessagePack decoder allocated a byte slice of the declared size before method lookup, ACL token validation, or the rate-limiting interceptor could run, allowing a single oversized header to OOM-kill the server process.

Two mitigations are applied:

  1. Each RPC request header is now validated against RPCMaxHeaderBytes (default 512 bytes) before it is decoded. Every length prefix in the header is checked against the limit, so an oversized value is rejected before the decoder allocates memory for it, and the connection is closed before any ACL evaluation. Request bodies remain unbounded by this limit.

  2. A per-request read deadline (reusing RPCHandshakeTimeout) is applied inside handleConsulConn and handleInsecureConn so that a slow attacker trickling an oversized header cannot retain a goroutine and logical heap indefinitely.

  • catalog: Fixed an incorrect authorization vulnerability where a local ACL token with service:write or node:write could delete peer-imported catalog objects by supplying a non-default PeerName in a Catalog.Deregister request. Authorization was checked only against the local service or node name, not the peer origin, allowing deletion of objects in a peer-scoped catalog namespace the caller does not control. Catalog.Deregister now rejects any request whose PeerName is not the default, mirroring the existing guard on Catalog.Register and Catalog.ListServices. Legitimate peer-state deletion continues through the internal PeeringBackend.CatalogDeregister path.
  • security: Upgrade golang.org/x/mod to v0.41.0, golang.org/x/crypto to v0.57.0, and golang.org/x/net to v0.59.0 to address security vulnerabilities. [GH-23913]
  • xds: escape regex metacharacters in service name, namespace, partition, and trust domain values when building Envoy RBAC SPIFFE match patterns, preventing an intention/authorization bypass via regex injection.

IMPROVEMENTS:

  • fips: (Enterprise only) Migrate FIPS builds from FIPS 140-2 (BoringCrypto/CNG cgo toolchain) to FIPS 140-3 using the Go Cryptographic Module (GOFIPS140=v1.0.0, CMVP Certificate #5247). The runtime FIPS line now reports FIPS 140-3 Enabled, crypto module v1.0.0. FIPS builds no longer require cgo or a vendored Go toolchain. FIPS 140-2 and FIPS 140-3 agents are permitted to join the same cluster; rolling upgrades from +ent.fips1402 to +ent.fips1403 are supported.

BUG FIXES:

  • api-gateway: Fix a cold-start crash where an api-gateway's Envoy proxy could segfault during worker startup when a route's failover upstream was rendered as an aggregate cluster before its endpoints were assembled. Consul now holds each xDS stream's first push until the gateway's discovery-chain endpoints are ready (per-stream, first-push only, skipped for streams Envoy resumes, and bounded by a 30s deadline), and renders a failover upstream as a plain EDS cluster instead of an aggregate whenever its member endpoints are not yet available -- restoring full failover automatically once they arrive. Steady-state updates are never withheld. [GH-23892]
  • mesh: (Enterprise only) Fix named-port upstreams to a multiport service that has a configured service-router, service-splitter, or service-resolver. The service's declared default port continues to follow the configured discovery chain, while other named ports connect directly to that port on the root service instead of failing. Upstreams that do not name a port resolve through the default port.
View originalPermalink
How v2.0.4 went

v2.0.3

Added 1
  • Add two new opt-in ProxyDefaults.spec.config keys for controlling the server response header on API Gateway HTTP listeners: envoy_suppress_envoy_headers and envoy_server_header_name
Fixed 4
  • Stop logging the raw ACL token in debug-level content-type logs
  • Fixed a regression that caused an HTTP API gateway to reject its configuration with an inconsistent protocols error when a backend service's service-router composed a route to a destination in a different service, namespace, or partition
  • Fix WAN flood-join to ignore non-alive destination members (leaving/left/failed), allowing rejoined servers to heal back to alive in WAN membership
  • Addition of XFCC headers to gRPC request similar to HTTP request for connect-proxy inbound listener
Security 11
  • Update brace-expansion to address DoS via unbounded intermediate arrays
  • Update fast-uri to address Host Confusion via backslash authority introducer
  • Update golang.org/x/text to v0.39.0 to address GO-2026-5970
  • Update google.golang.org/grpc to v1.82.1 to address GHSA-hrxh-6v49-42gf
  • Update socket.io-parser to address Zero-attachment Memory Exhaustion
  • Upgrade to use Go 1.26.5 to resolve vulnerabilities GO-2026-4970 (os) and GO-2026-5856 (crypto/tls)

From Consul

2.0.3 (August 7, 2026)

SECURITY:

  • Update brace-expansion to address GHSA-rgw5-rvv9-x895 (DoS via unbounded intermediate arrays). [GH-23786]
  • Update fast-uri to address GHSA-7p8r-x3mc-p8w7 (Host Confusion via backslash authority introducer). [GH-23786]
  • Update golang.org/x/text to v0.39.0 to address GO-2026-5970. [GH-23761]
  • Update google.golang.org/grpc to v1.82.1 to address GHSA-hrxh-6v49-42gf. [GH-23761]
  • Update socket.io-parser to address CVE-2026-69185 (Zero-attachment Memory Exhaustion). [GH-23786]
  • Upgrade to use Go 1.26.5. This resolves vulnerabilities GO-2026-4970 (os). GO-2026-5856 (crypto/tls). [GH-23761]
  • agent: Fixed a denial-of-service vulnerability where GET /v1/agent/connect/ca/roots and POST /v1/agent/connect/authorize used the agent-side cache unconditionally, even when http_config { use_cache = false } was configured by the operator. A remote caller could bypass this setting and grow the agent cache without bound by varying the request ACL token. Both endpoints now skip the cache and issue a direct RPC when use_cache is disabled. (SECVULN-50292, SECVULN-50293) [GH-23797]
  • agent: Fixed a nil-pointer dereference panic in ShadowServiceRouterConfigEntry.CheckEnt when a service-router config entry contained a route with a nil Destination. A crafted snapshot restore or replication message containing such an entry could crash the FSM decode path. The nil guard now treats a missing destination as non-enterprise data and continues decoding safely. (SECVULN-50291) [GH-23797]
  • agent: Fixed a security bypass where a user-supplied public listener (envoy_public_listener_json) with an HTTP Connection Manager filter would skip Consul's inbound request-normalization defaults. An attacker could exploit the un-normalized path to bypass L7 intention deny rules using percent-encoded path equivalents. Consul now injects path normalization (enabled by default, unless the mesh config option InsecureDisablePathNormalization is set) on every HCM filter chain in user-provided public listeners before L7 intention enforcement is applied. (SECVULN-50295) [GH-23797]
  • agent: Fixed an unauthenticated denial-of-service vulnerability where PUT /v1/agent/check/update/:id, PUT /v1/agent/check/register, PUT /v1/agent/service/register, and POST /v1/agent/connect/authorize decoded unbounded JSON request bodies before resolving the caller's ACL token. An unauthenticated caller could retain multiple large JSON decoder buffers concurrently inside the Consul process before each request was rejected with HTTP 403, causing attacker-controlled heap growth. All four endpoints now cap the request body at 512 KiB before any decoding occurs, returning HTTP 413 for oversized bodies. This limit applies to chunked transfer encoding as well as declared Content-Length. (SECVULN-50418) [GH-23796]
  • agent: Fixed an unauthenticated denial-of-service vulnerability where the external gRPC and gRPC-TLS listeners accepted an unlimited number of TCP connections per source IP before any request processing, ACL check, or rate limiting could occur. A remote attacker could exhaust agent file descriptors, goroutines, and memory by opening many connections and withholding the gRPC or TLS handshake. A new per-client-IP connection limiter is now applied before the gRPC server observes the connection, controlled by the new limits.grpc_max_conns_per_client configuration option (default 100). The gRPC handshake timeout has also been reduced from the library default of 120 seconds to 20 seconds. (SECVULN-50294) [GH-23797]

IMPROVEMENTS:

  • ui: migrate yadda/Gherkin acceptance tests to native QUnit (harness, intentions/create, components, settings) [GH-23741]
  • xds: Add two new opt-in ProxyDefaults.spec.config keys for controlling the server response header on API Gateway HTTP listeners: envoy_suppress_envoy_headers (removes the header entirely) and envoy_server_header_name (renames it to a custom value). If both are set, suppress takes precedence. [GH-13027]

BUG FIXES:

  • agent: Stop logging the raw ACL token in debug-level content-type logs. [GH-23731]
  • api-gateway: Fixed a regression that caused an HTTP API gateway to reject its configuration with an "inconsistent protocols" error (resulting in intermittent 503s) when a backend service's service-router composed a route to a destination in a different service, namespace, or partition during discovery-chain synthesis. [GH-23793]
  • serf: Fix WAN flood-join to ignore non-alive destination members (leaving/left/failed), allowing rejoined servers to heal back to alive in WAN membership. [GH-23709]
  • xds: Addition of XFCC headers to GPRC request similar to HTTP request for connect-proxy inbound listener [GH-23744]
View originalPermalink
How v2.0.3 went

v2.0.2

Added 2
  • Add ExtAuthzFilter to HTTPRoute Filters and gateway-wide ExtAuthz toggle to the api-gateway config entry (Enterprise only)
  • Add External Processor (ext_proc) Envoy Extension support to api-gateway and connect-proxy (Enterprise only)
Changed 2
  • Update support for nomad and vault version to v2.0.3
  • Migrate armon/go-metrics to hashicorp/go-metrics and update Go dependencies across all modules
Fixed 1
  • Only emit the client cert SDS block when both CertFile and KeyFile are set
Security 3
  • Upgrade alpine base image version to 3.24 to address CVE-2026-41989 and ALPINE-CVE-2026-2100
  • Upgrade Serf and Memberlist to use the latest versions
  • Return errors when injecting the L4 intention (RBAC) filter or the mTLS transport socket onto an inbound public listener, so the listener is not served without intention enforcement or mTLS

From Consul

2.0.2 (July 8, 2026)

SECURITY:

  • Upgrade alpine base image version to 3.24 to address [CVE-2026-41989], [ALPINE-CVE-2026-2100]. [GH-23711]
  • dependency: Upgrade Serf and Memberlist to use the latest versions. [GH-23704]
  • xds: Return errors when injecting the L4 intention (RBAC) filter or the mTLS transport socket onto an inbound public listener, so the listener is not served without intention enforcement or mTLS. [GH-23686]

FEATURES:

  • config-entry(api-gateway): (Enterprise only) Add ExtAuthzFilter to HTTPRoute Filters and gateway-wide ExtAuthz toggle to the api-gateway config entry [GH-23703]
  • config-entry: (Enterprise only) Addition of External Processor (ext_proc) Envoy Extension support to api-gateway and connect-proxy [GH-23705]

IMPROVEMENTS:

  • ci: upgrade GitHub Actions that used the deprecated Node 20 runtime to Node 24, and restore GOTOOLCHAIN=auto after setup-go so backward-compatibility and integration test lanes resolve the correct Go toolchain. [GH-23687]
  • connect: update support for nomad and vault version to v2.0.3 [GH-23624]
  • deps: Migrate armon/go-metrics to hashicorp/go-metrics and update Go dependencies across all modules [GH-23635]

BUG FIXES:

  • xds: only emit the client cert SDS block when both CertFile and KeyFile are set. [GH-23679]

KNOWN ISSUES:

  • consul-k8s: In setups using consul OSS version, consul-k8s-connect-injector fails to come up because of a missing CRD RouteExtProc. A new version(2.0.2-oss) of consul helm chart is released to resolve this issue. Use the Chart version '2.0.2-oss' for OSS distribution of consul of this release v2.0.2.
  • consul (enterprise only): Since (2.0.0) API-GW understands traffic routing via discovery chain configs(resolvers, routers, splitters) attached to services in its route-match destinations. API gateways understands listeners on a hostname basis and compiles overall traffic routing rules for services pointed in the routes for those listeners. A bug surfaced when the destination service has defined failovers/redirects/subsets with targets in different namespace/partition in its resolvers config. The reconciliation of overall discovery chain for all routable targets of api gateway post this feature encounters issues due to missing synthetic defaults for protocols in the said use case and causes xds rendering issues.
View originalPermalink
How v2.0.2 went

v2.0.1

Changed 4
  • Reduce Dockerfile layers by merging RUN commands and following best practices
  • Product usage reporting now preserves export cadence across restarts and leader re-elections by resuming from the last successful export time
  • Auth method TokenNameFormat field accepts OIDC and JWT claim mapping values
  • Remove block-slot addon dependency from UI
Fixed 2
  • Strip the x-forwarded-client-cert header from inbound HTTP requests before forwarding them to local service instances
  • Fix a bug where renaming a server or wiping and rejoining it with the same IP and Raft node ID could cause an out-of-order serf event to evict the live leader from the internal server lookup, resulting in Raft leader not found errors
Security 2
  • Upgrade Go version to 1.26.4 to address GO-2026-5039, GO-2026-5038, GO-2026-5037
  • Upgrade Envoy version to 1.37.4, 1.36.8, 1.35.12 and add new version 1.38.2, remove 1.34.14

From Consul

2.0.1 (June 18, 2026)

SECURITY:

IMPROVEMENTS:

  • dockerfile: layer reduction by merging RUN commands and minor changes following best practices. [GH-23650]
  • product-telemetry: product usage reporting now preserves export cadence across restarts and leader re-elections by resuming from the last successful export time, preventing delays
  • server: Auth method TokenNameFormat field accepts OIDC and JWT claim mapping values [GH-23616]
  • ui: Removed block-slot addon dependency [GH-23481]

BUG FIXES:

  • connect: Strip the x-forwarded-client-cert header from inbound HTTP requests before forwarding them to local service instances. [GH-23544]
  • server: Fixed a bug where renaming a server (or wiping and rejoining it with the same IP and Raft node ID) could cause an out-of-order serf event to evict the live leader from the internal server lookup, resulting in Raft leader not found in server lookup mapping (HTTP 500) errors on follower RPCs until the next member event resynced the mapping. [GH-23533]
View originalPermalink
How v2.0.1 went

v2.0.0

Added 8
  • Add new rate-limit config entry kind for dynamic, cluster-wide RPC rate limiting stored in Raft and automatically replicated to all servers
  • Add SDS certificate support for API Gateway listeners, including listener-level default TLS certificates and HTTP/TCP route service TLS SDS overrides
  • Add gateway-level default upstream limits and route service-level limit overrides for MaxConnections, MaxPendingRequests, and MaxConcurrentRequests
  • Add new API /v1/internal/rpc/methods that lists all RPC method names
  • Add new Connect CA provider for Cyberark WIM (connect.ca_provider = "pan-distributed-issuer")
  • Add stable cluster identity and leader-gated global registry sync for service summary publishing
  • Add product telemetry for self-managed Consul with anonymous, opt-in usage reporting
  • Introduce support for multi-port (named port) services in Consul, including the ability to specify and route traffic using port names and to retrieve virtual IPs for specific service ports
Changed 4
  • Update cluster upstream tls in terminating-gateway to use sds instead of static certs, allowing for dynamic certificate updates without needing to restart the terminating gateway
  • Add certificate expiry monitoring with Prometheus metrics and structured logging with configurable severity thresholds
  • Upgrade github.com/hashicorp/vault/sdk from v0.7.0 to v0.25.1 and github.com/hashicorp/vault/api from v1.12.2 to v1.16.0
  • Add eventually-consistent background cache for Enterprise usage metrics, reducing GET /v1/operator/usage latency from O(P*N*K) to O(1)
Security 7
  • Upgrade envoy version to 1.37.2 and newer versions
  • Upgrade go version to 1.26
  • Increase default HTTP server timeouts to prevent breaking long-polling blocking queries, with read_timeout and write_timeout now set to 15 minutes (up from 30 seconds)
  • Apply HTTP request path normalization on api-gateway and terminating-gateway HTTP listeners to prevent L7 intention RBAC bypass via non-normalized paths (CVE-2024-10005)
  • Update ubi base image to ubi9-minimal:9.7
  • Upgrade curl to >= 8.20.0 in the container image to address CVE-2026-6429, CVE-2026-4873, CVE-2026-5773, CVE-2026-6253, CVE-2026-6276, CVE-2026-7168, and CVE-2026-5545
  • Update UBI base image to 9.8 for fixing CVE-2026-2100

From Consul

2.0.0 (May 22, 2026)

SECURITY:

  • connect: Upgrade envoy version to 1.37.2 and newer versions [GH-23469]
  • go: Upgrade go version to 1.26 [GH-23493]
  • agent: Increased default HTTP server timeouts to prevent breaking long-polling blocking queries. read_timeout and write_timeout are now set to 15 minutes (up from 30 seconds), while read_header_timeout (10s) and idle_timeout (120s) still provide protection against Slowloris attacks. All timeouts remain configurable via the http_config block. [GH-23267]
  • api-gateway, terminating-gateway: Apply HTTP request path normalization on api-gateway and terminating-gateway HTTP listeners to prevent L7 intention RBAC bypass via non-normalized paths (CVE-2024-10005). [GH-23534]
  • docker: update ubi base image to ubi9-minimal:9.7. [GH-23553]
  • docker: Upgrade curl to >= 8.20.0 from Alpine edge in the container image to address CVE-2026-6429, CVE-2026-4873, CVE-2026-5773, CVE-2026-6253, CVE-2026-6276, CVE-2026-7168, CVE-2026-5545. Alpine 3.23 stable does not yet carry the patched version. [GH-23750]
  • docker: Update to UBI base image to 9.8 for fixing [CVE_2026-2100] [GH-23588]

FEATURES:

  • (Enterprise Only) update to go-licensing/v4 and go-census/v3 inorder to adapt to new licenses of PAO.
  • Global Rate Limiter: (Enterprise Only) a new "rate-limit" config entry kind that enables dynamic, cluster-wide RPC rate limiting stored in Raft and automatically replicated to all servers. This allows operators to apply or adjust global rate limits at runtime without restarting Consul servers — a critical capability for emergency scenarios where the cluster is under excessive load.
  • api-gateway: Added SDS certificate support for API Gateway listeners, including listener-level default TLS certificates and HTTP/TCP route service TLS SDS overrides. Service overrides inherit the listener SDS cluster when omitted, and gateway validation/xDS generation now rejects conflicting override mappings to keep certificate selection deterministic. [GH-23354]
  • api-gateway: add support for gateway-level default upstream limits and route service-level limit overrides for MaxConnections, MaxPendingRequests, and MaxConcurrentRequests. [GH-23396]
  • api: Added new API "/v1/internal/rpc/methods" that lists all RPC method names. Requires an operator:read ACL token. This is useful when users want to configure rate limits that exclude specific RPC endpoints. [GH-23329]
  • ca: (Enterprise Only) Added new Connect CA provider for Cyberark WIM (connect.ca_provider = "pan-distributed-issuer"), enabling Consul to issue certificates through Cyberark WIM.
  • server: (Enterprise Only) add stable cluster identity and leader-gated global registry sync for service summary publishing.
  • telemetry: (Enterprise Only) Product telemetry for self-managed Consul with anonymous, opt-in usage reporting.
  • mesh: (Enterprise Only) Introduce support for multi-port (named port) services in Consul, including the ability to specify and route traffic using port names, as well as to retrieve virtual IPs for specific service ports. It also enforces that certain advanced multi-port features are only available in Consul Enterprise, and includes new utility functions for cluster naming and ALPN protocol generation.

IMPROVEMENTS:

  • agent: (Enterprise Only) Add eventually-consistent background cache for Enterprise usage metrics, reducing GET /v1/operator/usage latency from O(PNK) to O(1) and lowering CPU/memory pressure during high-frequency scraping via a watch-driven maintainer goroutine.
  • mesh: (Enterprise Only) Introduce support for multi-port (named port) services in Consul, including the ability to specify and route traffic using port names, as well as to retrieve virtual IPs for specific service ports. It also enforces that certain advanced multi-port features are only available in Consul Enterprise, and includes new utility functions for cluster naming and ALPN protocol generation.
  • terminating-gateway: Updated the cluster upstream tls to use sds instead of static certs, allowing for dynamic certificate updates without needing to restart the terminating gateway. [GH-23288]
  • telemetry: Add certificate expiry monitoring with Prometheus metrics (labeled with datacenter/partition/namespace), structured logging with configurable severity thresholds, and enhanced Connect CA API to include NotAfter field for root and intermediate certificates. [GH-23147]
  • deps: Upgrade github.com/hashicorp/vault/sdk from v0.7.0 to v0.25.1 and github.com/hashicorp/vault/api from v1.12.2 to v1.16.0. [GH-23574]
  • test-integ: upgrade testcontainers-go (v0.22.0->v0.40.0) and docker/docker (v24.0.5->v28.5.1) in the integration test module. This removes opencontainers/runc as a Go dependency of the test framework. These are test infrastructure dependencies only and have no impact on the consul binary or any consul deployment. [GH-23573]
  • xds: add Consecutive5xx, ConsecutiveGatewayFailure, and EnforcingConsecutiveGatewayFailure fields to PassiveHealthCheck, allowing operators to configure Envoy outlier detection thresholds for 5xx responses and gateway failures (502/503/504) on upstreams defaults.

BUG FIXES:

  • audit-logging: (Enterprise Only) Fixed JSON unmarshall error when array of obj is passed for auditReq body.
  • cli: Enhanced error messages in consul config write command to provide actionable guidance when config entries cannot be modified due to references by gateways or routers. [GH-22921]
  • xds: Fixed XDS package to generate correct endpoints and cluster configurations for API Gateways when peered, and updated the API Gateway update handler to propogate mesh gateway config to its upstreams. [GH-23454]
  • XDS: Fixes issue with mesh-gateway in remote mode on AWS EKS, as DNS hostnames are assigned to AWS NLBs instead of IPs and envoy's EDS endpoint validation expects address to be an IP. Now EDS load assignment is skipped for non-peer remote mesh gateway targets with hostname based gateways keeping CDS/EDS in sync. [GH-23543]
  • api-gateway: resolve service subsets for routes during API gateway discovery chain synthesis. [GH-23294]
  • ui: Fix broken documentation links [GH-23578]
View originalPermalink
How v2.0.0 went

v2.0.0-rc2

Pre-release
Fixed 2
  • Fixed issue with mesh-gateway in remote mode on AWS EKS where DNS hostnames are assigned to AWS NLBs instead of IPs by skipping EDS load assignment for non-peer remote mesh gateway targets with hostname based gateways to keep CDS/EDS in sync
  • Resolve service subsets for routes during API gateway discovery chain synthesis
Security 4
  • Increased default HTTP server timeouts to prevent breaking long-polling blocking queries, with read_timeout and write_timeout now set to 15 minutes (up from 30 seconds), while read_header_timeout (10s) and idle_timeout (120s) still provide protection against Slowloris attacks
  • Apply HTTP request path normalization on api-gateway and terminating-gateway HTTP listeners to prevent L7 intention RBAC bypass via non-normalized paths (CVE-2024-10005)
  • Update ubi base image to ubi9-minimal:9.7
  • Fixed Consul transaction endpoint authorization bypasses where service and check mutations could be authorized using request-provided names while applying changes by ID, including a bypass using the reserved consul service name

From Consul

2.0.0-rc2 (May 15, 2026)

SECURITY:

  • agent: Increased default HTTP server timeouts to prevent breaking long-polling blocking queries. read_timeout and write_timeout are now set to 15 minutes (up from 30 seconds), while read_header_timeout (10s) and idle_timeout (120s) still provide protection against Slowloris attacks. All timeouts remain configurable via the http_config block. [GH-23267]
  • api-gateway, terminating-gateway: Apply HTTP request path normalization on api-gateway and terminating-gateway HTTP listeners to prevent L7 intention RBAC bypass via non-normalized paths (CVE-2024-10005). [GH-23534]
  • docker: update ubi base image to ubi9-minimal:9.7. [GH-23553]
  • security: Fixed Consul transaction endpoint authorization bypasses where service and check mutations could be authorized using request-provided names while applying changes by ID, including a bypass using the reserved consul service name. [GH-12716]

BUG FIXES:

  • XDS: Fixes issue with mesh-gateway in remote mode on AWS EKS, as DNS hostnames are assigned to AWS NLBs instead of IPs and envoy's EDS endpoint validation expects address to be an IP. Now EDS load assignment is skipped for non-peer remote mesh gateway targets with hostname based gateways keeping CDS/EDS in sync. [GH-23543]
  • api-gateway: resolve service subsets for routes during API gateway discovery chain synthesis. [GH-23294]
View originalPermalink
How v2.0.0-rc2 went

v2.0.0-rc1

Pre-release
Added 9
  • Global Rate Limiter: a new rate-limit config entry kind that enables dynamic, cluster-wide RPC rate limiting stored in Raft and automatically replicated to all servers
  • API Gateway listeners now support SDS certificate support, including listener-level default TLS certificates and HTTP/TCP route service TLS SDS overrides
  • API Gateway now supports gateway-level default upstream limits and route service-level limit overrides for MaxConnections, MaxPendingRequests, and MaxConcurrentRequests
  • Added new API /v1/internal/rpc/methods that lists all RPC method names
  • Added new Connect CA provider for Cyberark WIM (connect.ca_provider = pan-distributed-issuer), enabling Consul to issue certificates through Cyberark WIM
  • Introduced support for multi-port (named port) services in Consul, including the ability to specify and route traffic using port names and to retrieve virtual IPs for specific service ports
Changed 1
  • Terminating gateway cluster upstream TLS now uses SDS instead of static certs, allowing for dynamic certificate updates without needing to restart the terminating gateway
Fixed 3
  • Fixed JSON unmarshall error when array of obj is passed for auditReq body
  • Enhanced error messages in consul config write command to provide actionable guidance when config entries cannot be modified due to references by gateways or routers
  • Fixed XDS package to generate correct endpoints and cluster configurations for API Gateways when peered
Security 2
  • Upgrade envoy version to 1.37.2 and newer versions
  • Upgrade go version to 1.26

From Consul

2.0.0-rc1 (April 29, 2026)

SECURITY:

  • connect: Upgrade envoy version to 1.37.2 and newer versions [GH-23469]
  • go: Upgrade go version to 1.26 [GH-23493]

FEATURES:

  • (Enterprise Only) update to go-licensing/v4 and go-census/v3 inorder to adapt to new licenses of PAO.
  • Global Rate Limiter: (Enterprise Only) a new "rate-limit" config entry kind that enables dynamic, cluster-wide RPC rate limiting stored in Raft and automatically replicated to all servers. This allows operators to apply or adjust global rate limits at runtime without restarting Consul servers — a critical capability for emergency scenarios where the cluster is under excessive load.
  • api-gateway: Added SDS certificate support for API Gateway listeners, including listener-level default TLS certificates and HTTP/TCP route service TLS SDS overrides. Service overrides inherit the listener SDS cluster when omitted, and gateway validation/xDS generation now rejects conflicting override mappings to keep certificate selection deterministic. [GH-23354]
  • api-gateway: add support for gateway-level default upstream limits and route service-level limit overrides for MaxConnections, MaxPendingRequests, and MaxConcurrentRequests. [GH-23396]
  • api: Added new API "/v1/internal/rpc/methods" that lists all RPC method names. Requires an operator:read ACL token. This is useful when users want to configure rate limits that exclude specific RPC endpoints. [GH-23329]
  • ca: (Enterprise Only) Added new Connect CA provider for Cyberark WIM (connect.ca_provider = "pan-distributed-issuer"), enabling Consul to issue certificates through Cyberark WIM.
  • server: (Enterprise Only) add stable cluster identity and leader-gated global registry sync for service summary publishing.
  • telemetry: (Enterprise Only) Product telemetry for self-managed Consul with anonymous, opt-in usage reporting.
  • mesh: (Enterprise Only) Introduce support for multi-port (named port) services in Consul, including the ability to specify and route traffic using port names, as well as to retrieve virtual IPs for specific service ports. It also enforces that certain advanced multi-port features are only available in Consul Enterprise, and includes new utility functions for cluster naming and ALPN protocol generation.

IMPROVEMENTS:

  • agent: (Enterprise Only) Add eventually-consistent background cache for Enterprise usage metrics, reducing GET /v1/operator/usage latency from O(PNK) to O(1) and lowering CPU/memory pressure during high-frequency scraping via a watch-driven maintainer goroutine.
  • mesh: (Enterprise Only) Introduce support for multi-port (named port) services in Consul, including the ability to specify and route traffic using port names, as well as to retrieve virtual IPs for specific service ports. It also enforces that certain advanced multi-port features are only available in Consul Enterprise, and includes new utility functions for cluster naming and ALPN protocol generation.
  • terminating-gateway: Updated the cluster upstream tls to use sds instead of static certs, allowing for dynamic certificate updates without needing to restart the terminating gateway. [GH-23288]
  • telemetry: Add certificate expiry monitoring with Prometheus metrics (labeled with datacenter/partition/namespace), structured logging with configurable severity thresholds, and enhanced Connect CA API to include NotAfter field for root and intermediate certificates. [GH-23147]

BUG FIXES:

  • audit-logging: (Enterprise Only) Fixed JSON unmarshall error when array of obj is passed for auditReq body.
  • cli: Enhanced error messages in consul config write command to provide actionable guidance when config entries cannot be modified due to references by gateways or routers. [GH-22921]
  • xds: Fixed XDS package to generate correct endpoints and cluster configurations for API Gateways when peered, and updated the API Gateway update handler to propogate mesh gateway config to its upstreams. [GH-23454]
View originalPermalink
How v2.0.0-rc1 went

v1.22.7

Added 1
  • Add TokenNameFormat field to auth-method and parse the same for token name
Changed 2
  • Remove the use of hashstructure_v2 from compiled discovery chain hashing and replace it with explicit custom hash implementations
  • Remove consul docs website related code from UI as it is being maintained in a separate internal repository
Fixed 1
  • Fix HTTPRoute PathPrefix routing to preserve the original request path when replacePrefixMatch is not configured
Security 3
  • Update google.golang.org/grpc to fix CVE-2026-33186
  • Upgrade go.opentelemetry.io/otel to 1.42.0 to remediate CVE-2026-24051 (Path Hijacking / Untrusted Search Paths on macOS)
  • Update Rollup to 2.80.0 in UI to address CVE-2026-27606

From Consul

1.22.7 (April 21, 2026)

SECURITY:

  • security: update google.golang.org/grpc to fix CVE-2026-33186 [GH-23379]
  • security: upgrade go.opentelemetry.io/otel to 1.42.0 to remediate CVE-2026-24051 (Path Hijacking / Untrusted Search Paths on macOS). [GH-23387]
  • test-sds-server: bump github.com/hashicorp/consul to v1.22.5 in integration test module to align with the CVE-2026-2808 fixed release line. [GH-23437]
  • ui: (Enterprise only) Backport Rollup update to 2.80.0 for release/1.21.x to address CVE-2026-27606 (SECVULN-38912).

IMPROVEMENTS:

  • acl: Addition of TokenNameFormat field to auth-method and parse the same for token name [GH-23444]
  • discovery-chain: removes the use of hashstructure_v2 ([github.com/mitchellh/hashstructure/v2] from compiled discovery chain hashing and replaces it with explicit custom hash implementations. [GH-23393]
  • ui: removed consul docs website related code as it is being maintained in a separate internal repository. [GH-23398]

BUG FIXES:

  • api-gateway: fix HTTPRoute PathPrefix routing to preserve the original request path when replacePrefixMatch is not configured [GH-23390]
View originalPermalink
How v1.22.7 went

v1.22.6

Added 1
  • Add support to disable traffic with weight 0 in services for HTTPRoute backends, allowing explicit zero-weight backends to be excluded from traffic
Changed 1
  • Replace deprecated SideNav component with AppSideNav for improved navigation structure
Fixed 2
  • Fix Consul UI to work in non-secure environments by enabling Ember Data's UUID polyfill for crypto.randomUUID
  • Fix Consul UI services page navigation by ensuring route transitions trigger the expected model hook behavior after Ember upgrade
Security 4
  • Upgrade Envoy version to 1.35.9 and 1.34.13
  • Update google.golang.org/grpc to fix CVE-2026-33186
  • Upgrade Go version to 1.25.8
  • Bump golang.org/x/* dependencies to align with consul-enterprise and address security vulnerabilities

From Consul

1.22.6 (March 23, 2026)

SECURITY:

  • security: upgrade envoy version to 1.35.9 and 1.34.13 [GH-23372]
  • security: update google.golang.org/grpc to fix CVE-2026-33186 [GH-23379]
  • security: upgrade go version to 1.25.8 [GH-23322]
  • security: bump golang.org/x/* dependencies to align with consul-enterprise and address security vulnerabilities. [GH-23322]

IMPROVEMENTS:

  • api-gateway: Add support to disable traffic with weight 0 in services for HTTPRoute backends, allowing explicit zero-weight backends to be excluded from traffic. [GH-23216]
  • ui: Fixed Consul UI to work in non-secure environments by enabling Ember Data's UUID polyfill for crypto.randomUUID. [GH-23341]
  • ui: Fixed Consul UI services page navigation by ensuring route transitions trigger the expected model hook behavior after Ember upgrade. [GH-23271]
  • ui: Replaced deprecated SideNav component with AppSideNav for improved navigation structure. [GH-23289]
View originalPermalink
How v1.22.6 went

v1.22.5

Added 1
  • Add --aws-iam-endpoint flag to consul login command for AWS IAM auth method to support custom IAM endpoint configuration
Fixed 3
  • Fix duplicate matcher errors in Envoy when using multiple file-system certificates on a single TLS listener by consolidating certificates into a single filter chain
  • Fix vault provider failure when signing intermediate CA with isCA=true in CSR
  • Cancel context check for watches cache fetch to stop execution when manager deregisters the watch
Security 6
  • Upgrade Go version to 1.25.7
  • Update Consul build Go base image to alpine3.23
  • Migrate to aws-sdk-go-v2 from aws-sdk-go (v1) and updated consul-awsauth and go-secure-stdlib/awsutil dependencies to their v2 versions
  • Configure HTTP server timeouts to prevent Slowloris denial-of-service attacks on agent HTTP endpoints and pprof endpoints
  • Patch Vault CA provider to prevent arbitrary file reads via Kubernetes, JWT, and AppRole methods
  • Introduce debounce timing for synchronization operations within federationStateAntiEntropySync

From Consul

1.22.5 (February 26, 2026)

SECURITY:

  • security: upgrade go version to 1.25.7 [GH-23204]
  • dockerfile: the Consul build Go base image to alpine3.23 [GH-23194]
  • connect: Migrate to aws-sdk-go-v2 from aws-sdk-go (v1). Also updated consul-awsauth and go-secure-stdlib/awsutil dependencies to their v2 versions. [GH-23109]
  • security: Configure HTTP server timeouts to prevent Slowloris denial-of-service attacks on agent HTTP endpoints and pprof endpoints. [GH-22739]
  • security: Patched Vault CA provider to prevent arbitrary file reads via Kubernetes, JWT, and AppRole methods. [GH-23249]
  • security: Introduced debounce timing for synchronization operations within federationStateAntiEntropySync. [GH-23196]

IMPROVEMENTS:

  • api-gateway: Fixed "duplicate matcher" errors in Envoy when using multiple file-system certificates on a single TLS listener. The certificates are now consolidated into a single filter chain, allowing Envoy to select the correct one. [GH-23212]
  • agent: Fix vault provider failure when signing intermediate CA with isCA=true in CSR [GH-23202]
  • cli: Added --aws-iam-endpoint flag to consul login command for AWS IAM auth method to support custom IAM endpoint configuration [GH-23109]
  • docs: Refreshed the security documentation to include the new HTTP server timeout defaults and relevant configuration options. [GH-23246]
  • api: Cancel context check for watches cache fetch to stop execution when manager deregisters the watch. [GH-23157]
View originalPermalink
How v1.22.5 went

v1.22.4

Added 1
  • Add --aws-iam-endpoint flag to consul login command for AWS IAM auth method to support custom IAM endpoint configuration
Fixed 3
  • Fix duplicate matcher errors in Envoy when using multiple file-system certificates on a single TLS listener by consolidating certificates into a single filter chain
  • Fix vault provider failure when signing intermediate CA with isCA=true in CSR
  • Cancel context check for watches cache fetch to stop execution when manager deregisters the watch
Security 4
  • Upgrade Go version to 1.25.7
  • Update Consul build Go base image to alpine3.23
  • Migrate to aws-sdk-go-v2 from aws-sdk-go (v1) and update consul-awsauth and go-secure-stdlib/awsutil dependencies to their v2 versions
  • Configure HTTP server timeouts to prevent Slowloris denial-of-service attacks on agent HTTP endpoints and pprof endpoints

From Consul

⚠️ Important Notice

We have identified an issue in Consul and Consul Enterprise Feb Patch Release (1.22.4, 1.22.4-ent, 1.21.10-ent, 1.18.20-ent) that requires a corrective patch release.

We recommend that customers avoid using these versions in production environments and wait for the upcoming patch release.

Customers who have upgraded to these versions should temporarily revert to the previous stable release while we prepare a corrected update.

A new patched release is expected by the end of the this month.

Further updates will be shared once the new version is available. We apologize for the inconvenience and appreciate your patience.

1.22.4 (February 18, 2026)

SECURITY:

  • security: upgrade go version to 1.25.7 [GH-23204]
  • dockerfile: the Consul build Go base image to alpine3.23 [GH-23194]
  • connect: Migrate to aws-sdk-go-v2 from aws-sdk-go (v1). Also updated consul-awsauth and go-secure-stdlib/awsutil dependencies to their v2 versions. [GH-23109]
  • security: Configure HTTP server timeouts to prevent Slowloris denial-of-service attacks on agent HTTP endpoints and pprof endpoints. [GH-22739]

IMPROVEMENTS:

  • api-gateway: Fixed "duplicate matcher" errors in Envoy when using multiple file-system certificates on a single TLS listener. The certificates are now consolidated into a single filter chain, allowing Envoy to select the correct one. [GH-23212]
  • agent: Fix vault provider failure when signing intermediate CA with isCA=true in CSR [GH-23202]
  • cli: Added --aws-iam-endpoint flag to consul login command for AWS IAM auth method to support custom IAM endpoint configuration [GH-23109]
  • api: Cancel context check for watches cache fetch to stop execution when manager deregisters the watch. [GH-23157]
View originalPermalink
How v1.22.4 went

v1.22.3

Added 2
  • Add consul services imported-services command and /v1/exported-services API endpoint to list services imported by partitions within a local datacenter
  • Add ability to configure Virtual IP range for transparent proxy with CIDRs
Security 1
  • Update the Consul Build Go base image to alpine3.23.2

From Consul

1.22.3 (January 23, 2026)

SECURITY:

  • Update the Consul Build Go base image to alpine3.23.2 [GH-23138]

IMPROVEMENTS:

  • api: Add consul services imported-services and new api(/v1/exported-services) command to list services imported by partitions within a local datacenter [GH-12045]
  • connect: added ability to configure Virtual IP range for t-proxy with CIDRs [GH-23085]
View originalPermalink
How v1.22.3 went
View all

Discussion

If you publish Consul, you can claim this product by proving you administer its repository.