# Vault changelog > Manage secrets and protect sensitive data. - Vendor: HashiCorp - Category: Developer Tools - Official site: https://www.vaultproject.io - Tracked by: What's New (https://whatsnew.fyi/product/vault) - Harvested from: GitHub (hashicorp/vault) - Entries below: 10 (newest first) What's New is an index, not a publisher: every entry below links to the vendor's own release notes, which are the authoritative source. Entries are labelled where they are hand-curated sample data, pre-releases, or drawn from a secondary source such as a developer blog. ## Releases ### v2.0.4 - Date: 2026-08-04 - Version: v2.0.4 - Original notes: https://github.com/hashicorp/vault/releases/tag/v2.0.4 - Permalink: https://whatsnew.fyi/product/vault/releases/v2.0.4 - **removed** — Remove gnupg, openssl, and procps packages from UBI based container images - **security** — Fix privilege-escalation vulnerability where a denied_parameters constraint on the policies request field could be bypassed by submitting a mixed-case policy name by normalizing the policies parameter to lowercase before evaluating allowed_parameters/denied_parameters constraints - **security** — Prevent the identity/entity/merge endpoint from processing requests that involve any SCIM-managed entity to prevent bypassing SCIM ownership guardrails - **security** — Prevent the entity batch-delete endpoint from deleting the underlying storage of entities that belong to another namespace - **security** — Reject identity entity/name updates with mismatched id or external_id selectors to prevent retargeting updates to a different entity - **changed** — Update OCI auth plugin to v0.21.3 - **changed** — Bump Go version to 1.26.5 - **removed** — Remove support for duplicate attributes in HCL configuration files and policy definitions and remove the VAULT_ALLOW_PENDING_REMOVAL_DUPLICATE_HCL_ATTRIBUTES environment variable - **added** — Add ability to view secrets in YAML format - **changed** — Support login via x-forwarded cert headers in auth/cert even with tls disabled on the vault listener - **added** — Add an endpoint at sys/config/oauth-resource-server/id/:config_id to read oauth resource server profiles by config_id - **changed** — Make OAuth resource server JWT typ validation more permissive by allowing a missing typ header and restricting present typ values to at+jwt, application/at+jwt, and JWT - **added** — Add global deny_slash_in_templated_path configuration option to reject the presence of slashes in rendered identity templates in policies - **changed** — Enforce that providing a non-empty value for one PKCS#11 field while the other is already saved is rejected and require explicitly clearing the old field by sending it as an empty string to switch addressing modes - **changed** — Enforce slot and token_label as mutually exclusive identifiers for an HSM token in core/managed-keys/PKCS#11 - **added** — Add VAULT_EVENT_NOTIFICATIONS_BOUNDED_QUEUE_SIZE environment variable to configure bounded event queues for event notification subscribers - **added** — Add filtering support to the GET /scim/v2/Users and GET /scim/v2/Groups endpoints with support for userName eq, externalId eq, active eq, and meta.lastModified filters - **changed** — Improve SCIM User and Group listing endpoint performance by using prefix sort instead of a separate sort pass - **added** — Include entity status and entity/alias timestamp details in entity list key_info responses - **added** — Add support for fine-grained policy control options in Rich Authorization Requests including allowed_parameters, denied_parameters, and required_parameters - **fixed** — Fix a bug where auth method headers accumulated on the shared API client across re-auth cycles in Proxy/Agent ##### 2.0.4 ###### August 04, 2026 BREAKING CHANGES: * containers: The following packages have been removed from UBI based container images: gnupg, openssl, procps. SECURITY: * acl: Fix privilege-escalation vulnerability where a `denied_parameters` constraint on the `policies` request field could be bypassed by submitting a mixed-case policy name (e.g. "Super-Admin" instead of "super-admin"). Vault now normalizes the `policies` parameter to lowercase before evaluating `allowed_parameters`/`denied_parameters` constraints. * identity/scim (enterprise): The `identity/entity/merge` endpoint now rejects requests that involve any SCIM-managed entity, preventing privileged operators from bypassing SCIM ownership guardrails to transfer aliases, group memberships, or policies across SCIM boundaries. * identity: Prevent the entity batch-delete endpoint (identity/entity/batch-delete) from deleting the underlying storage of entities that belong to another namespace. * identity: entity/name updates now reject mismatched id or external_id selectors to prevent retargeting updates to a different entity CHANGES: * auth/oci: Update plugin to [v0.21.3](https://github.com/hashicorp/vault-plugin-auth-oci/releases/tag/v0.21.3) * core: Bump Go version to 1.26.5. * core: remove support for duplicate attributes in HCL configuration files and policy definitions. Parsing HCL with duplicate attributes now always fails, and the VAULT_ALLOW_PENDING_REMOVAL_DUPLICATE_HCL_ATTRIBUTES environment variable that previously restored the legacy behavior has been removed. FEATURES: * secrets: Added ability to view secrets in YAML format IMPROVEMENTS: * auth/cert: Support login via x-forwarded cert headers even with tls disabled on the vault listener. * core (enterprise): Add an endpoint at `sys/config/oauth-resource-server/id/:config_id` to read oauth resource server profiles by `config_id` * core (enterprise): Make OAuth resource server JWT `typ` validation more permissive for tokens from IdPs such as Okta by allowing a missing `typ` header, while restricting present `typ` values to `at+jwt`, `application/at+jwt`, and `JWT`. * core (entreprise): Ameriolate sealwrap lock contention for core paths. * core/acl: Adds a global `deny_slash_in_templated_path` configuration option to reject the presence of slashes in rendered identity templates in policies, defaulting to `false`. * core/identity: Adds a global `deny_slash_in_templated_path` configuration option to reject the presence of slashes in rendered identity templates in policies, defaulting to `false`. * core/managed-keys/PKCS#11 (enterprise): Providing a non-empty value for one field while the other is already saved is rejected. To switch addressing modes, you must explicitly clear the old field by sending it as an empty string ("") in the same request alongside the new value. * core/managed-keys/PKCS#11 (enterprise): slot and token_label are now strictly enforced as mutually exclusive identifiers for an HSM token * events: Add `VAULT_EVENT_NOTIFICATIONS_BOUNDED_QUEUE_SIZE` environment variable to configure bounded event queues for event notification subscribers. Set to a positive integer (e.g., 16) to enable buffered channels of that size (maximum 1000). This prevents resource exhaustion in deployments with high subscriber counts, but comes at the cost of the potential for subscribers to miss events. Defaults to 0 (unbuffered) for backward compatibility. * identity/scim (enterprise): Added filtering support to the `GET /scim/v2/Users` and `GET /scim/v2/Groups` endpoints per RFC 7644. Supported filters: `userName eq`, `externalId eq`, `active eq`, and `meta.lastModified gt/ge/lt/le` for Users; `displayName eq` and `meta.lastModified gt/ge/lt/le` for Groups. Unsupported filter expressions return HTTP 400. `ServiceProviderConfig` now advertises `filter.supported: true`. * identity/scim (enterprise): Improve SCIM User and Group listing endpoint performance by using pr _[Truncated at 4000 characters — full notes: https://github.com/hashicorp/vault/releases/tag/v2.0.4]_ ### v2.0.3 - Date: 2026-06-17 - Version: v2.0.3 - Original notes: https://github.com/hashicorp/vault/releases/tag/v2.0.3 - Permalink: https://whatsnew.fyi/product/vault/releases/v2.0.3 - **security** — auth/radius: Added case_insensitive_names toggle to prevent username collisions and enable case-insensitive user handling - **security** — core/acl: Fix LIST ACL bypass where a trailing-slash request could skip a more-specific deny rule - **security** — core: Use constant-time recovery token comparison - **security** — secrets/spiffe (enterprise): Ensure template values are properly escaped - **security** — transform (enterprise): Add appropriate db specific quoting and escaping - **changed** — auth/cf: Update plugin to v0.23.1 - **changed** — core/acl: LIST requests with a trailing slash now correctly respect more-specific deny policies - **changed** — core: Vault will now redirect non-canonicalized paths (containing /./, /../, or //) to a cleaned path, instead of rejecting these requests - **changed** — secrets/azure: Update plugin to v0.26.5+ent - **added** — AI Agent Support (Beta/Enterprise): Adds beta support for first-class AI agents with an Agent Registry and support for using Vault as an OAuth resource server for registered agent entities - **added** — consumption-billing: Add a new sys/billing/config endpoint to allow configuration of billing data retention (min 13 months, max 6 years) - **changed** — core (Enterprise): Make deadlock detection in sealwrap configurable by adding "sealwrap" to existing configuration detect_deadlocks - **changed** — identity/scim (enterprise): Update PATCH operations on scim/v2/Users to allow multiple modifications in the same patch call, support for patch operations on user metadata and name in addition to active status, and allow specifying path value in patch operations - **changed** — sdk/helper/keysutil: The lock manager's GetPolicy function now always returns a locked Policy, even when caching is enabled - **changed** — ui (enterprise): Migrate charts from Lineal to Carbon Charts in the Client usage overview and Vault usage dashboard - **fixed** — core/rotationMgr: Fix storage routing for local mounts in namespaces to prevent metadata replication and ensure GDPR compliance - **fixed** — kmip (enterprise): Fix a bug that prevents the legacy CA from working on a named listener - **fixed** — secret-sync (enterprise): Fix GCP Secret Manager replication policy persistence across Vault restarts - **fixed** — secrets/database/mssql: Deregister stale TLS configurations when MySQL connection TLS settings change or the connection is closed, preventing retained certificate pools from accumulating - **fixed** — secrets/pki: Fix PKI certificate issuance not_after time to respect max TTL SECURITY: * auth/radius: Added case_insensitive_names toggle to prevent username collisions and enable case-insensitive user handling. * core/acl: Fix LIST ACL bypass where a trailing-slash request could skip a more-specific deny rule. * core: Use constant-time recovery token comparison * secrets/spiffe (enterprise): Ensure template values are properly escaped. * transform (enterprise): Add appropriate db specific quoting and escaping. CHANGES: * auth/cf: Update plugin to [v0.23.1](https://github.com/hashicorp/vault-plugin-auth-cf/releases/tag/v0.23.1) * core/acl: LIST requests with a trailing slash now correctly respect more-specific deny policies. Previously, a deny on `path "kv/*" { deny }` could be bypassed for `LIST kv/private/` if a broader allow `path "kv/*"` also existed. Policies relying on the previous (incorrect) behavior may now be denied. * core: Vault will now redirect non-canonicalized paths (containing `/./`, `/../`, or `//`) to a cleaned path, instead of rejecting these requests * secrets/azure: Update plugin to [v0.26.5+ent](https://github.com/hashicorp/vault-plugin-secrets-azure/releases/tag/v0.26.5+ent) FEATURES: * **AI Agent Support (Beta/Enterprise)**: Adds beta support for first-class AI agents. Adds an Agent Registry to register agents, and adds support for using Vault as an OAuth resource server for registered agent entities. When configured, allows OAuth 2.0 JWTs to be used to directly authorize requests to Vault, without needing a Vault token. IMPROVEMENTS: * consumption-billing: Add a new `sys/billing/config` endpoint to allow configuration of billing data retention (min 13 months, max 6 years). * core (Enterprise): Make deadlock detection in sealwrap configurable by adding "sealwrap" to existing configuration detect_deadlocks. * identity/scim (enterprise): Update PATCH operations on scim/v2/Users to allow multiple modifications in the same patch call, support for patch operations on user metadata and name in addition to active status, and allow specifying `path` value in patch operations * sdk/helper/keysutil: The lock manager's GetPolicy function now always returns a locked Policy, even when caching is enabled. The PolicyRequest struct has a new field to indicate whether the caller requires a write lock on the policy. * ui (enterprise): Migrate charts from Lineal to Carbon Charts in the Client usage overview and Vault usage dashboard. BUG FIXES: * core/rotationMgr: Fix storage routing for local mounts in namespaces to prevent metadata replication and ensure GDPR compliance. * kmip (enterprise): Fix a bug that prevents the legacy CA from working on a named listener. * secret-sync (enterprise): Fix GCP Secret Manager replication policy persistence across Vault restarts. * secrets/database/mssql: Deregister stale TLS configurations when MySQL connection TLS settings change or the connection is closed, preventing retained certificate pools from accumulating. * secrets/pki: Fix PKI certificate issuance not_after time to respect max TTL. * secrets/transit: Add managed key support to Transit rewrap endpoint. * storage/raft: reject `performance_multiplier` values less than or equal to zero ### v2.0.2 - Date: 2026-06-05 - Version: v2.0.2 - Original notes: https://github.com/hashicorp/vault/releases/tag/v2.0.2 - Permalink: https://whatsnew.fyi/product/vault/releases/v2.0.2 - **removed** — Remove `cap_ipc_lock` capability on `vault` at build time to allow running Vault in common container runtimes; Vault in containers will no longer be able to call `mlock()` to lock memory - **security** — Limit RSA key sizes to a maximum of 8192 bits in secrets/ssh to address CVE-2026-39829 - **changed** — Bump Go version to 1.26.4 - **changed** — Update secrets/azure (enterprise) plugin to v0.26.4+ent - **fixed** — Fix plugin signature verification failure with expired pgp key when registering a plugin - **fixed** — Fix key version dropdown selected state when editing a transit key in the UI BREAKING CHANGES: * containers: Remove `cap_ipc_lock` capability on `vault` at build time to allow running Vault in common container runtimes. Vault in containers will no longer be able to call `mlock()` to lock memory. Operators should set `disable_mlock = true` in Vault's configuration. Runtime operators are advised to disable swapping to guarantee data safety. * secrets/ssh: RSA key sizes are now limited to a maximum size of 8192 bits addressing CVE-2026-39829 CHANGES: * core: Bump Go version to 1.26.4 * secrets/azure (enterprise): Update plugin to [v0.26.4+ent](https://github.com/hashicorp/vault-plugin-secrets-azure-enterprise/releases/tag/v0.26.4+ent) BUG FIXES: * plugins: Fix plugin signature verification failure with expired pgp key when registering a plugin. * ui/transit: Fix key version dropdown selected state when editing a transit key. ### v2.0.1 - Date: 2026-05-19 - Version: v2.0.1 - Original notes: https://github.com/hashicorp/vault/releases/tag/v2.0.1 - Permalink: https://whatsnew.fyi/product/vault/releases/v2.0.1 - **security** — Reject wildcards in rendered identity templates - **security** — Remove dependency on github.com/jackc/pgx/v3 and github.com/jackc/pgx/v4 to resolve GHSA-j88v-2chj-qfwx - **security** — Update github.com/Azure/go-ntlmssp to v0.1.1 to fix security vulnerability - **security** — Update github.com/apache/thrift to fix security vulnerability GHSA-wf45-q9ch-q8gh - **security** — Update github.com/jackc/pgx/v5 to fix security vulnerability GHSA-j88v-2chj-qfwx - **security** — Update golang.org/x/net to resolve GO-2026-4918 - **security** — Validate that both path and file_path cannot be empty for requests to sys/audit/{path} - **changed** — Set cap_ipc_lock capability on vault container at build time - **changed** — Require sudo capability to invoke the identity entity merge API endpoint (identity/entity/merge) - **changed** — Bump Go version to 1.26.3 - **changed** — Change to using Trail of Bits libraries for PQC signature implementation in Transit - **added** — Add start_month and end_month parameters to /sys/billing/overview endpoint to allow querying billing data for specific time ranges - **added** — Add migration_done_at_epoch to sys/seal-status response - **added** — Create a new billing dashboard with responsive layout to display metric data - **added** — Add Workload Identity Federation (WIF) support in the UI for AWS, Azure, and GCP sync destinations - **added** — Add billing tracking for OS Local Account static roles to support consumption-based billing metrics and high-water mark (HWM) tracking - **added** — Add consumption billing metrics for OIDC tokens - **added** — Add consumption billing metrics for PKI External CA certificates - **added** — Add consumption billing metrics for SPIFFE JWT tokens - **fixed** — Fix bug where rotation and wif config updates were not persisted to storage in auth/aws - **fixed** — Fix failure to detect errors during storage writes of totp keys - **fixed** — Fix dynamic secret revocation in database/mssql by executing custom statements as a single batch BREAKING CHANGES: - containers: set cap_ipc_lock capability on vault at build time. Container runtimes will need to add IPC_LOCK capabilities when running the vault container. SECURITY: - api: Update golang.org/x/net to resolve GO-2026-4918" - core/identity: reject wildcards in rendered identity templates - core: Resolve GHSA-j88v-2chj-qfwx by removing our dependency on github.com/jackc/pgx/v3 and github.com/jackc/pgx/v4 - core: Update github.com/Azure/go-ntlmssp to fix security vulnerability v0.1.1. - core: Update github.com/apache/thrift to fix security vulnerability GHSA-wf45-q9ch-q8gh - core: Update github.com/jackc/pgx/v5 to fix security vulnerability GHSA-j88v-2chj-qfwx. - core: Update golang.org/x/net to resolve GO-2026-4918" - core: Validate both path and file_path cannot be empty for requests to sys/audit/{path} - sdk: Resolve GHSA-j88v-2chj-qfwx by removing our dependency on github.com/jackc/pgx/v3 and github.com/jackc/pgx/v4 - sdk: Update github.com/Azure/go-ntlmssp to fix security vulnerability v0.1.1. - sdk: Update github.com/jackc/pgx/v5 to fix security vulnerability GHSA-j88v-2chj-qfwx. - sdk: Update golang.org/x/net to resolve GO-2026-4918" CHANGES: - auth/jwt: Update plugin to v0.26.3 - core: Bump Go version to 1.26.3 - identity: Require sudo capability to invoke the identity entity merge API endpoint (identity/entity/merge). - secrets/azure: Update plugin to v0.26.2+ent - secrets/openldap: Update plugin to v0.18.1+ent FEATURES: - Billing metrics dashboard: Create a new billing dashboard with responsive layout to display metric data. - Secrets Sync UI: Added Workload Identity Federation (WIF) support in the UI for AWS, Azure, and GCP sync destinations IMPROVEMENTS: - api: Add start_month and end_month parameters to /sys/billing/overview endpoint to allow querying billing data for specific time ranges. - api: Add migration_done_at_epoch to sys/seal-status response. - consumption-billing: Add billing tracking for OS Local Account static roles to support consumption-based billing metrics and high-water mark (HWM) tracking. - consumption-billing: Added consumption billing metrics for OIDC tokens. - consumption-billing: Added consumption billing metrics for PKI External CA certificates. - consumption-billing: Added consumption billing metrics for SPIFFE JWT tokens. - consumption-billing: Enabled sys/billing/overview endpoint in admin namespace. - consumption-billing: Float64 values returned by sys/billing/overview are now rounded to 4 decimal places. - consumption-billing: Increased billing data retention from 2 months to 37 months. The /sys/internal/billing/overview API endpoint now returns 37 months of historical consumption billing data by default. - consumption-billing: The /sys/internal/billing/overview API endpoint now always returns all metric types in the response, even when their values are zero. This ensures consistent response structure for easier client-side parsing. - core (Enterprise): Sanitized config now shows kms_library config. - core/seal (enterprise): Make it possible for new nodes to join a cluster configured with Seal High Availability. - scim: The SCIM Group PATCH handler now supports the path field in the form members[value eq "id"] on remove operations. - sdk: Expand support for docker test cluster options like seals, kms libraries, and entropy augmentation. DockerClusterNode.UpdateConfig now takes a full set of cluster options instead of just node config. - sdk: add WIF and rotation helpers for checking if params were updated to allow the consumer to know when changes need to be persisted to storage - secrets/pki (enterprise): Allow SCEP to use an issuer that is backed by an RSA based PKCS#11 managed key - secrets/transit: Change to using Trail of Bits libraries for PQC signature implementation in Transit - ui/dashboard: Reorganized dashboard widgets to improve layout and usability. Update _[Truncated at 4000 characters — full notes: https://github.com/hashicorp/vault/releases/tag/v2.0.1]_ ### v2.0.0 - Date: 2026-04-14 - Version: v2.0.0 - Original notes: https://github.com/hashicorp/vault/releases/tag/v2.0.0 - Permalink: https://whatsnew.fyi/product/vault/releases/v2.0.0 - **removed** — Migrate docker helpers from github.com/docker/docker to github.com/moby/moby - **security** — Upgrade cloudflare/circl to v1.6.3 to resolve CVE-2026-1229 - **security** — Upgrade filippo.io/edwards25519 to v1.1.1 to resolve GO-2026-4503 - **security** — Update go.opentelemetry.io/otel/sdk to fix CVE-2026-39883 - **security** — Update github.com/go-jose/go-jose to fix security vulnerability CVE-2026-34986 and GHSA-78h2-9frx-2jm8 - **security** — Fix an issue where a user may be able to bypass authentication to Vault due to incorrect caching of the AWS client - **security** — Ensure that the certificate being renewed matches the certificate attached to the session - **security** — Correctly remove any Vault tokens from the Authorization header when this header is forwarded to plugin backends - **security** — Upgrade to github.com/jackc/pgx/v5 to resolve GO-2026-4518 and GHSA-jqcq-xjh3-6g23 - **security** — Update github.com/aws/aws-sdk-go-v2/ to fix security vulnerability GHSA-xmrv-pmrh-hhx2 - **security** — Update github.com/hashicorp/go-getter to fix security vulnerability GHSA-92mm-2pjq-r785 - **security** — Reject URL-encoded paths that do not specify a canonical path - **added** — Add configurable max_token_header_size listener option (default 8 KB) to bound the size of authentication token headers, preventing a potential denial-of-service attack via oversized header contents - **security** — Disable scarf analytics for ui builds - **security** — Upgrade go.opentelemetry.io/otel/sdk to v1.40.0 to resolve GO-2026-4394 - **security** — Update github.com/dvsekhvalnov/jose2go to fix security vulnerability CVE-2025-63811 - **security** — Update golang/x/crypto to v0.45.0 to resolve GHSA-f6x5-jh6r-wrfv, GHSA-j5w8-q4qc-rx2x, GO-2025-4134 and GO-2025-4135 - **changed** — Static roles in secrets/ldap will be migrated from a plugin-managed queue to the Vault Enterprise Rotation Manager system - **added** — Add supplemental_audit_data key within audit entries of type response to describe request and response data - **changed** — Vault now rejects paths that are not canonical, such as paths containing double slashes - **changed** — Bump Go version to 1.26.2 BREAKING CHANGES: * sdk/helpers/docker: Migrate docker helpers from github.com/docker/docker to github.com/moby/moby. This was necessary as github.com/docker/docker is no longer maintained. Resolves GHSA-x744-4wpc-v9h2 and GHSA-pxq6-2prw-chj9. SECURITY: * Upgrade `cloudflare/circl` to v1.6.3 to resolve CVE-2026-1229 * Upgrade `filippo.io/edwards25519` to v1.1.1 to resolve GO-2026-4503 * api/auth/gcp: Update go.opentelemetry.io/otel/sdk to fix CVE-2026-39883. * api/auth: Update github.com/go-jose/go-jose to fix security vulnerability CVE-2026-34986 and GHSA-78h2-9frx-2jm8. * auth/aws: fix an issue where a user may be able to bypass authentication to Vault due to incorrect caching of the AWS client * auth/cert: ensure that the certificate being renewed matches the certificate attached to the session. * core: Correctly remove any Vault tokens from the Authorization header when this header is forwarded to plugin backends. The header will only be forwarded if "Authorization" is explicitly included in the list of passthrough request headers. * core: Resolve GO-2026-4518 and GHSA-jqcq-xjh3-6g23 by upgrading to github.com/jackc/pgx/v5 * core: Update github.com/aws/aws-sdk-go-v2/ to fix security vulnerability GHSA-xmrv-pmrh-hhx2. * core: Update github.com/go-jose/go-jose to fix security vulnerability CVE-2026-34986 and GHSA-78h2-9frx-2jm8. * core: Update github.com/hashicorp/go-getter to fix security vulnerability GHSA-92mm-2pjq-r785. * core: Update go.opentelemetry.io/otel/sdk to fix CVE-2026-39883. * core: reject URL-encoded paths that do not specify a canonical path * http: Added configurable `max_token_header_size` listener option (default 8 KB) to bound the size of authentication token headers (`X-Vault-Token` and `Authorization: Bearer`), preventing a potential denial-of-service attack via oversized header contents. The stdlib-level `MaxHeaderBytes` backstop is also now set on the HTTP server. Set `max_token_header_size = -1` to disable the limit. * sdk: Resolve GO-2026-4518 and GHSA-jqcq-xjh3-6g23 by upgrading to github.com/jackc/pgx/v5 * sdk: Update github.com/go-jose/go-jose to fix security vulnerability CVE-2026-34986 and GHSA-78h2-9frx-2jm8. * ui: disable scarf analytics for ui builds * vault/sdk: Upgrade `cloudflare/circl` to v1.6.3 to resolve CVE-2026-1229 * vault/sdk: Upgrade `go.opentelemetry.io/otel/sdk` to v1.40.0 to resolve GO-2026-4394 * Update github.com/dvsekhvalnov/jose2go to fix security vulnerability CVE-2025-63811. * go: update to golang/x/crypto to v0.45.0 to resolve GHSA-f6x5-jh6r-wrfv, GHSA-j5w8-q4qc-rx2x, GO-2025-4134 and GO-2025-4135. CHANGES: * secrets/ldap (enterprise): Static roles will be migrated from a plugin-managed queue to the Vault Enterprise Rotation Manager system. Static role migration progress can be checked and managed through a new static-migration endpoint. See the [LDAP documentation](https://developer.hashicorp.com/vault/docs/secrets/ldap#static-role-migration-to-rotation-manager) for more details on this process. * audit: A new top-level key called `supplemental_audit_data` can now appear within audit entries of type "response" within the request and response data structures. These new fields can contain data that further describe the request/response data and are mainly used for non-JSON based requests and responses to help auditing. The `audit-non-hmac-request-keys` and `audit-non-hmac-response-keys` apply to keys within `supplemental_audit_data` to remove the HMAC of the field values if so desired. * auth/alicloud: Update plugin to [v0.23.1](https://github.com/hashicorp/vault-plugin-auth-alicloud/releases/tag/v0.23.1) * auth/azure: Update plugin to [v0.24.0](https://github.com/hashicorp/vault-plugin-auth-azure/releases/tag/v0.24.0) * auth/cf: Update plugin to [v0.23.0](https://github.com/hashicorp/vault-plugin-auth-cf/releases/tag/v0.23.0) * auth/gcp: Update plugin to [v0.23.1](https://github.com/hashicorp/vault-plugin-auth-gcp/releases/tag/v0. _[Truncated at 4000 characters — full notes: https://github.com/hashicorp/vault/releases/tag/v2.0.0]_ ### v2.0.0-rc1 - Date: 2026-04-03 - Version: v2.0.0-rc1 - Original notes: https://github.com/hashicorp/vault/releases/tag/v2.0.0-rc1 - Permalink: https://whatsnew.fyi/product/vault/releases/v2.0.0-rc1 - Labels: Pre-release ### v1.21.4 - Date: 2026-03-05 - Version: v1.21.4 - Original notes: https://github.com/hashicorp/vault/releases/tag/v1.21.4 - Permalink: https://whatsnew.fyi/product/vault/releases/v1.21.4 - **security** — Upgrade cloudflare/circl to v1.6.3 to resolve CVE-2026-1229 - **security** — Upgrade filippo.io/edwards25519 to v1.1.1 to resolve GO-2026-4503 - **security** — Upgrade go.opentelemetry.io/otel/sdk to v1.40.0 to resolve GO-2026-4394 - **changed** — Bump Go version to 1.25.7 - **changed** — Upgrade duo_api_golang client to 0.2.0 to include the new Duo certificate authorities - **removed** — Remove ability to bulk delete secrets engines from the list view - **changed** — Enhance sys/seal-backend-status to provide more information about seal backends - **changed** — Obey configured best_effort_wal_wait_duration when forwarding kmip requests - **changed** — Return the POSTPKIOperation capability within SCEP GetCACaps endpoint for better legacy client support - **fixed** — Buffer the POST body on binary paths to allow re-reading on non-logical forwarding attempts to address SCEP, EST and CMPv2 certificate issuances with slow replication of entities - **fixed** — Fix excessive logging when updating existing aliases - **fixed** — Client credentials should not be required when using Azure Managed Identities in managed keys - **fixed** — Fix bug where requests to external plugins that modify storage were not populating the X-Vault-Index response header - **fixed** — Allow issuance of certificates without the server_flag key usage from SCEP, EST and CMPV2 protocols - **fixed** — Address cache invalidation issues with CMPv2 on performance standby nodes - **fixed** — Address issues using SCEP on performance standby nodes failing due to configuration invalidation issues along with errors writing to storage - **fixed** — Modify the SCEP GetCACaps endpoint to dynamically reflect the configured encryption and digest algorithms - **fixed** — The root/sign-intermediate endpoint should not fail when provided a CSR with a basic constraint extension containing isCa set to true - **fixed** — Allow glob-style DNS names in alt_names SECURITY: * Upgrade `cloudflare/circl` to v1.6.3 to resolve CVE-2026-1229 * Upgrade `filippo.io/edwards25519` to v1.1.1 to resolve GO-2026-4503 * vault/sdk: Upgrade `cloudflare/circl` to v1.6.3 to resolve CVE-2026-1229 * vault/sdk: Upgrade `go.opentelemetry.io/otel/sdk` to v1.40.0 to resolve GO-2026-4394 CHANGES: * core: Bump Go version to 1.25.7 * mfa/duo: Upgrade duo_api_golang client to 0.2.0 to include the new Duo certificate authorities * ui: Remove ability to bulk delete secrets engines from the list view. IMPROVEMENTS: * core/seal: Enhance sys/seal-backend-status to provide more information about seal backends. * secrets/kmip (Enterprise): Obey configured best_effort_wal_wait_duration when forwarding kmip requests. * secrets/pki (enterprise): Return the POSTPKIOperation capability within SCEP GetCACaps endpoint for better legacy client support. BUG FIXES: * core (enterprise): Buffer the POST body on binary paths to allow re-reading on non-logical forwarding attempts. Addresses an issue for SCEP, EST and CMPv2 certificate issuances with slow replication of entities * core/identity (enterprise): Fix excessive logging when updating existing aliases * core/managed-keys (enterprise): client credentials should not be required when using Azure Managed Identities in managed keys. * plugins (enterprise): Fix bug where requests to external plugins that modify storage weren't populating the X-Vault-Index response header. * secrets (pki): Allow issuance of certificates without the server_flag key usage from SCEP, EST and CMPV2 protocols. * secrets/pki (enterprise): Address cache invalidation issues with CMPv2 on performance standby nodes. * secrets/pki (enterprise): Address issues using SCEP on performance standby nodes failing due to configuration invalidation issues along with errors writing to storage * secrets/pki (enterprise): Modify the SCEP GetCACaps endpoint to dynamically reflect the configured encryption and digest algorithms. * secrets/pki: The root/sign-intermediate endpoint should not fail when provided a CSR with a basic constraint extension containing isCa set to true * secrets/pki: allow glob-style DNS names in alt_names. ### v1.21.3 - Date: 2026-03-04 - Version: v1.21.3 - Original notes: https://github.com/hashicorp/vault/releases/tag/v1.21.3 - Permalink: https://whatsnew.fyi/product/vault/releases/v1.21.3 - **security** — Ensure that the certificate being renewed matches the certificate attached to the session in auth/cert - **changed** — Bump Go version to 1.25.6 - **added** — Recognize and support Hashi-built plugins when run as external binaries in the UI - **changed** — Allow GCP managed keys to leverage workload identity federation credentials in core/managed-keys - **added** — Add alias_metadata to tokenutil fields that auth method roles use in sdk - **added** — Added telemetry counters for secret-sync reconciliation loop operations, including the number of corrections detected, retry attempts, and operation outcomes - **added** — Added telemetry counters for secret-sync sync/unsync operations with status breakdown by destination type, and exposed operation counters in the destinations list API response - **fixed** — Fix Vault Agent discarding cached tokens on transient server errors instead of retrying - **fixed** — Fix crash when seal HSM is disconnected in core - **fixed** — Fix issue when specifying root explicitly in Default Auth UI - **fixed** — Fix issue where Vault may consume more memory than intended under heavy authentication load in identity - **fixed** — Fix SCEP related digest errors when requests contained compound octet strings in secrets/pki - **fixed** — Fix login form so ?with= query param correctly displays only the specified mount when multiple mounts of the same auth type are configured with listing_visibility=unauth in ui - **changed** — Revert Kubernetes CA Certificate auth method configuration form field type to file selector in ui ##### February 05, 2026 **SECURITY:** auth/cert: ensure that the certificate being renewed matches the certificate attached to the session. **CHANGES:** core: Bump Go version to 1.25.6 **FEATURES:** UI: Hashi-Built External Plugin Support: Recognize and support Hashi-built plugins when run as external binaries **IMPROVEMENTS:** core/managed-keys (enterprise): Allow GCP managed keys to leverage workload identity federation credentials sdk: Add alias_metadata to tokenutil fields that auth method roles use. secret-sync (enterprise): Added telemetry counters for reconciliation loop operations, including the number of corrections detected, retry attempts, and operation outcomes (success or failure with internal/external cause labels). secret-sync (enterprise): Added telemetry counters for sync/unsync operations with status breakdown by destination type, and exposed operation counters in the destinations list API response. **BUG FIXES:** agent: Fix Vault Agent discarding cached tokens on transient server errors instead of retrying core (enterprise): Fix crash when seal HSM is disconnected default-auth: Fix issue when specifying "root" explicitly in Default Auth UI identity: Fix issue where Vault may consume more memory than intended under heavy authentication load. secrets/pki (enterprise): Fix SCEP related digest errors when requests contained compound octet strings ui: Fixes login form so ?with= query param correctly displays only the specified mount when multiple mounts of the same auth type are configured with listing_visibility="unauth" ui: Reverts Kubernetes CA Certificate auth method configuration form field type to file selector ### v1.21.2 - Date: 2026-01-07 - Version: v1.21.2 - Original notes: https://github.com/hashicorp/vault/releases/tag/v1.21.2 - Permalink: https://whatsnew.fyi/product/vault/releases/v1.21.2 - **changed** — Bump OCI auth plugin to v0.20.1 - **changed** — Bump Go version to 1.25.5 - **changed** — Container images are now exported using a compressed OCI image layout - **changed** — UBI container images are now built on the UBI 10 minimal image - **changed** — Update Azure secrets plugin to v0.25.1+ent with improved retry handling during Azure application and service principal creation to reduce transient failures - **changed** — Upgrade aerospike client library to v8 - **changed** — Check rotation manager queue every 5 seconds instead of 10 seconds to improve responsiveness - **changed** — Update golang/x/crypto to v0.45.0 to resolve GHSA-f6x5-jh6r-wrfv, GHSA-j5w8-q4qc-rx2x, GO-2025-4134 and GO-2025-4135 - **changed** — Ensure rotations for shared paths only execute on the Primary cluster's active node and rotations for local paths execute on the cluster-local active node - **added** — Added support for a boolean force_delete flag (default: false) in secrets-sync to allow deletion of a destination even if its associations cannot be unsynced - **changed** — Prevent rotation attempts on read-only storage - **changed** — Avoid loading issuer information multiple times per leaf certificate signing in PKI secrets - **fixed** — Resolve a stability issue where Vault Enterprise could encounter a panic during month-end billing activity rollover - **fixed** — Skip JSON limit parsing on cluster listener - **fixed** — Vault now protects plugins with ResolveRole operations from panicking on quota creation - **fixed** — Fix rare panic due to race when enabling a secondary with Consul storage in replication - **fixed** — Fix a bug where a performance secondary would panic if a write was made to a local mount - **fixed** — Improved unsync error handling in secret-sync by treating cases where the destination no longer exists as successful - **fixed** — Fix bug where deletion of the latest KV-V2 secret version caused the associated external secret to be deleted entirely by implementing a version fallback mechanism - **fixed** — Fix issue where secrets were not properly un-synced after destination config changes in secrets-sync ##### 1.21.2 ###### January 07, 2026 CHANGES: * auth/oci: bump plugin to v0.20.1 * core: Bump Go version to 1.25.5 * packaging: Container images are now exported using a compressed OCI image layout. * packaging: UBI container images are now built on the UBI 10 minimal image. * secrets/azure: Update plugin to v0.25.1+ent. Improves retry handling during Azure application and service principal creation to reduce transient failures. * storage: Upgrade aerospike client library to v8. IMPROVEMENTS: * core: check rotation manager queue every 5 seconds instead of 10 seconds to improve responsiveness * go: update to golang/x/crypto to v0.45.0 to resolve GHSA-f6x5-jh6r-wrfv, GHSA-j5w8-q4qc-rx2x, GO-2025-4134 and GO-2025-4135. * rotation: Ensure rotations for shared paths only execute on the Primary cluster's active node. Ensure rotations for local paths execute on the cluster-local active node. * sdk/rotation: Prevent rotation attempts on read-only storage. * secrets-sync (enterprise): Added support for a boolean force_delete flag (default: false). When set to true, this flag allows deletion of a destination even if its associations cannot be unsynced. This option should be used only as a last-resort deletion mechanism, as any secrets already synced to the external provider will remain orphaned and require manual cleanup. * secrets/pki: Avoid loading issuer information multiple times per leaf certificate signing. BUG FIXES: * core/activitylog (enterprise): Resolve a stability issue where Vault Enterprise could encounter a panic during month-end billing activity rollover. * http: skip JSON limit parsing on cluster listener. * quotas: Vault now protects plugins with ResolveRole operations from panicking on quota creation. * replication (enterprise): fix rare panic due to race when enabling a secondary with Consul storage. * rotation: Fix a bug where a performance secondary would panic if a write was made to a local mount. * secret-sync (enterprise): Improved unsync error handling by treating cases where the destination no longer exists as successful. * secrets-sync (enterprise): Corrected a bug where the deletion of the latest KV-V2 secret version caused the associated external secret to be deleted entirely. The sync job now implements a version fallback mechanism to find and sync the highest available active version, ensuring continuity and preventing the unintended deletion of the external secret resource. * secrets-sync (enterprise): Fix issue where secrets were not properly un-synced after destination config changes. * secrets-sync (enterprise): Fix issue where sync store deletion could be attempted when sync is disabled. * ui/pki: Fix handling of values that contain commas in list fields like `crl_distribution_points`. ### v1.21.1 - Date: 2025-11-19 - Version: v1.21.1 - Original notes: https://github.com/hashicorp/vault/releases/tag/v1.21.1 - Permalink: https://whatsnew.fyi/product/vault/releases/v1.21.1 - **security** — Fix an issue where a user may be able to bypass authentication to Vault due to incorrect caching of the AWS client in auth/aws - **security** — Disable scarf analytics for ui builds - **changed** — Update auth/kubernetes plugin to v0.23.1 - **changed** — Update auth/saml plugin to v0.7.0 - **changed** — Update auth/saml plugin to v0.7.1, which adds the environment variable VAULT_SAML_DENY_INTERNAL_URLS to allow prevention of idp_metadata_url, idp_sso_url, or acs_urls fields from containing URLs that resolve to internal IP addresses - **changed** — Bump Go version to 1.25.4 - **changed** — Update secrets/azure plugin to v0.25.0+ent - **changed** — sign-verbatim endpoints no longer ignore basic constraints extension in CSRs, using them in generated certificates if isCA=false or returning an error if isCA=true - **security** — Update github.com/dvsekhvalnov/jose2go to fix security vulnerability CVE-2025-63811 - **added** — Add sudo-permissioned sys/reporting/scan endpoint which will output a set of files containing information about Vault state to the location specified by the reporting_scan_directory config item - **changed** — Require non-empty passwords on login command in auth/ldap to prevent unauthenticated access to Vault - **added** — Reading and listing from a snapshot are now tracked via the vault.route.read-snapshot.{mount_point} and vault.route.list-snapshot.{mount_point} metrics - **added** — Add metrics for the number of issued PKI certificates in license utilization reporting - **added** — Add warning about list comparison when using allowed_parameters or denied_parameters in policies - **added** — Add parallelization support to sync and unsync operations for secret-key granularity associations in secret-sync - **added** — Include the certificate's AuthorityKeyID in response fields for API endpoints that issue, sign, or fetch certs in secrets/pki - **added** — Add sys/billing/certificates API endpoint to retrieve the number of issued PKI certificates - **fixed** — sys/internal/counters/activity outputs the correct mount type when called from a non root namespace - **fixed** — Role parameter alias_metadata now populates alias custom metadata field instead of alias metadata across multiple auth methods - **fixed** — Fixed panic when supplying integer as a lease_id in renewal - **fixed** — Avoid shifting timezones by ignoring cron.SpecSchedule in core/rotation - **fixed** — Interpret all new rotation manager rotation_schedules as UTC to avoid inadvertent use of tz-local ##### 1.21.1 ###### November 20, 2025 SECURITY: * auth/aws: fix an issue where a user may be able to bypass authentication to Vault due to incorrect caching of the AWS client * ui: disable scarf analytics for ui builds CHANGES: * auth/kubernetes: Update plugin to [v0.23.1](https://github.com/hashicorp/vault-plugin-auth-kubernetes/releases/tag/v0.23.1) * auth/saml: Update plugin to [v0.7.0](https://github.com/hashicorp/vault-plugin-auth-saml/releases/tag/v0.7.0) * auth/saml: Update plugin to v0.7.1, which adds the environment variable VAULT_SAML_DENY_INTERNAL_URLS to allow prevention of idp_metadata_url, idp_sso_url, or acs_urls fields from containing URLs that resolve to internal IP addresses * core: Bump Go version to 1.25.4 * secrets/azure: Update plugin to [v0.25.0+ent](https://github.com/hashicorp/vault-plugin-secrets-azure/releases/tag/v0.25.0+ent) * secrets/pki: sign-verbatim endpoints no longer ignore basic constraints extension in CSRs, using them in generated certificates if isCA=false or returning an error if isCA=true IMPROVEMENTS: * Update github.com/dvsekhvalnov/jose2go to fix security vulnerability CVE-2025-63811. * api: Added sudo-permissioned `sys/reporting/scan` endpoint which will output a set of files containing information about Vault state to the location specified by the `reporting_scan_directory` config item. * auth/ldap: Require non-empty passwords on login command to prevent unauthenticated access to Vault. * core/metrics: Reading and listing from a snapshot are now tracked via the `vault.route.read-snapshot.{mount_point}` and `vault.route.list-snapshot.{mount_point}` metrics. * license utilization reporting (enterprise): Add metrics for the number of issued PKI certificates. * policies: add warning about list comparison when using allowed_parameters or denied_parameters * secret-sync: add parallelization support to sync and unsync operations for secret-key granularity associations * secrets/pki: Include the certificate's AuthorityKeyID in response fields for API endpoints that issue, sign, or fetch certs. * sys (enterprise): Add sys/billing/certificates API endpoint to retrieve the number of issued PKI certificates. * ui/activity (enterprise): Add clarifying text to explain the "Initial Usage" column will only have timestamps for clients initially used after upgrading to version 1.21 * ui/activity (enterprise): Allow manual querying of client usage if there is a problem retrieving the license start time. * ui/activity (enterprise): Reduce requests to the activity export API by only fetching new data when the dashboard initially loads or is manually refreshed. * ui/activity (enterprise): Support filtering months dropdown by ISO timestamp or display value. * ui/activity: Display total instead of new monthly clients for HCP managed clusters * ui/pki: Adds support to configure `server_flag`, `client_flag`, `code_signing_flag`, and `email_protection_flag` parameters for creating/updating a role. BUG FIXES: * activity (enterprise): sys/internal/counters/activity outputs the correct mount type when called from a non root namespace * auth/approle (enterprise): Role parameter `alias_metadata` now populates alias custom metadata field instead of alias metadata. * auth/aws (enterprise): Role parameter `alias_metadata` now populates alias custom metadata field instead of alias metadata. * auth/cert (enterprise): Role parameter `alias_metadata` now populates alias custom metadata field instead of alias metadata. * auth/github (enterprise): Role parameter `alias_metadata` now populates alias custom metadata field instead of alias metadata. * auth/ldap (enterprise): Role parameter `alias_metadata` now populates alias custom metadata field instead of alias metadata. * auth/okta (enterprise): Role parameter `alias_metadata` now populates alias custom metadata field instead of alias metadata. * auth/radius (enterprise): Role parameter `alias_metadata` now populates al _[Truncated at 4000 characters — full notes: https://github.com/hashicorp/vault/releases/tag/v1.21.1]_