# Vault: what changed from 1 to 2 - Product: Vault (https://whatsnew.fyi/product/vault) - Vendor: HashiCorp - Range: changelog entries numbered after v1.21.4 up to and including v2.1.0, stable releases only - Entries below: 6 releases (newest first) - Resolved: 1 is v1.21.4 and 2 is v2.1.0, the newest stable release of each major we track - Carrying security changes: 6 · CVEs mentioned: 6 · Mentioning breaking changes: 4 · Removing or deprecating something: 3 - Page: https://whatsnew.fyi/product/vault/compare/1...2 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. Reuse: the summaries, labels and curation here are © What's New. Quote freely with attribution and a link back; wholesale republication of the corpus is not permitted — terms: https://whatsnew.fyi/terms. The vendors' own release notes remain their publishers'. ## What changed (110 changes, grouped by kind) ### Added #### v2.1.0 (2026-09-01) - Add Agent Registry UI with a new Agentic Security section to the primary navigation where operators can view, search, and manage registered AI agents, their associated Vault entities and aliases, assigned policies, and operational status - Integrate with AWS Route53, Azure DNS, Google Cloud DNS, and BIND and other RFC2136-compliant servers for automatic DNS-01 challenge fulfillment for PKI External CA - Add support for PKCS#12 (PFX) and Java keytool (JKS) certificate bundles to relevant PKI endpoints - Add support for SLH-DSA as the PQC component for Hybrid sign/verify operations in Transit engine, compatible with both ECDSA and Ed25519 - Add global denylist for revoking OAuth JWTs to prevent authorization of specific tokens across all namespaces #### v2.0.4 (2026-08-04) - Add ability to view secrets in YAML format - Add an endpoint at sys/config/oauth-resource-server/id/:config_id to read oauth resource server profiles by config_id - Add global deny_slash_in_templated_path configuration option to reject the presence of slashes in rendered identity templates in policies - Add VAULT_EVENT_NOTIFICATIONS_BOUNDED_QUEUE_SIZE environment variable to configure bounded event queues for event notification subscribers - 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 - Include entity status and entity/alias timestamp details in entity list key_info responses - Add support for fine-grained policy control options in Rich Authorization Requests including allowed_parameters, denied_parameters, and required_parameters #### v2.0.3 (2026-06-17) - 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 - consumption-billing: Add a new sys/billing/config endpoint to allow configuration of billing data retention (min 13 months, max 6 years) #### v2.0.1 (2026-05-19) - Add start_month and end_month parameters to /sys/billing/overview endpoint to allow querying billing data for specific time ranges - Add migration_done_at_epoch to sys/seal-status response - Create a new billing dashboard with responsive layout to display metric data - Add Workload Identity Federation (WIF) support in the UI for AWS, Azure, and GCP sync destinations - Add billing tracking for OS Local Account static roles to support consumption-based billing metrics and high-water mark (HWM) tracking - Add consumption billing metrics for OIDC tokens - Add consumption billing metrics for PKI External CA certificates - Add consumption billing metrics for SPIFFE JWT tokens #### v2.0.0 (2026-04-14) - 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 - Add supplemental_audit_data key within audit entries of type response to describe request and response data ### Changed #### v2.1.0 (2026-09-01) - Add Agentic IAM terms to client licensing model and update terms for Vault Platform licensing model - Bump Go version to 1.26.7 - Prevent issuer_id from being mutated after OAuth Resource Server profile creation - Prevent unique_id_claim from being mutated after OAuth Resource Server profile creation - The OAuth Resource Server feature no longer requires activation via the sys/activation-flags/oauth-resource-server/activate endpoint - Update OAuth Resource Server config to include custom claim options for the token's unique identifier and actor - Update OpenLDAP plugin to v0.18.4+ent - Remove the restriction that disallowed the use of 'deny' in ceiling policies in agent registry - Replace go.uber.org/atomic with sync/atomic (stdlib) for atomic boolean operations in the pkiexternalca package - Update Oracle Cloud library to enable seal integration with newer regions - Expose the RSA Private Key field in the UI when generating credentials with the snowflake database secrets engine - Update secrets engine delete confirmation modal to require typing 'delete-engine' to confirm, display the engine name, secret count for KV engines, and a list of what will be permanently deleted #### v2.0.4 (2026-08-04) - Update OCI auth plugin to v0.21.3 - Bump Go version to 1.26.5 - Support login via x-forwarded cert headers in auth/cert even with tls disabled on the vault listener - 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 - 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 - Enforce slot and token_label as mutually exclusive identifiers for an HSM token in core/managed-keys/PKCS#11 - Improve SCIM User and Group listing endpoint performance by using prefix sort instead of a separate sort pass #### v2.0.3 (2026-06-17) - auth/cf: Update plugin to v0.23.1 - core/acl: LIST requests with a trailing slash now correctly respect more-specific deny policies - 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 - 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 - ui (enterprise): Migrate charts from Lineal to Carbon Charts in the Client usage overview and Vault usage dashboard #### v2.0.2 (2026-06-05) - Bump Go version to 1.26.4 - Update secrets/azure (enterprise) plugin to v0.26.4+ent #### v2.0.1 (2026-05-19) - Set cap_ipc_lock capability on vault container at build time - Require sudo capability to invoke the identity entity merge API endpoint (identity/entity/merge) - Bump Go version to 1.26.3 - Change to using Trail of Bits libraries for PQC signature implementation in Transit #### v2.0.0 (2026-04-14) - Static roles in secrets/ldap will be migrated from a plugin-managed queue to the Vault Enterprise Rotation Manager system - Vault now rejects paths that are not canonical, such as paths containing double slashes - Bump Go version to 1.26.2 ### Fixed #### v2.1.0 (2026-09-01) - Fix CA chain extraction from Vault PKI API responses where ca_chain field was always empty in templates due to incorrect type handling of array responses #### v2.0.4 (2026-08-04) - Fix a bug where auth method headers accumulated on the shared API client across re-auth cycles in Proxy/Agent #### v2.0.3 (2026-06-17) - 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 #### v2.0.2 (2026-06-05) - Fix plugin signature verification failure with expired pgp key when registering a plugin - Fix key version dropdown selected state when editing a transit key in the UI #### v2.0.1 (2026-05-19) - Fix bug where rotation and wif config updates were not persisted to storage in auth/aws - Fix failure to detect errors during storage writes of totp keys - Fix dynamic secret revocation in database/mssql by executing custom statements as a single batch ### Removed #### v2.0.4 (2026-08-04) - Remove gnupg, openssl, and procps packages from UBI based container images - Remove support for duplicate attributes in HCL configuration files and policy definitions and remove the VAULT_ALLOW_PENDING_REMOVAL_DUPLICATE_HCL_ATTRIBUTES environment variable #### v2.0.2 (2026-06-05) - 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 #### v2.0.0 (2026-04-14) - Migrate docker helpers from github.com/docker/docker to github.com/moby/moby ### Security #### v2.1.0 (2026-09-01) - Update go.etcd.io/etcd/client/pkg/v3 to v3.7.1 to fix security vulnerability GO-2026-6107 - Update software.sslmate.com/src/go-pkcs12 to v0.7.2 to fix security vulnerability GO-2026-5052 #### v2.0.4 (2026-08-04) - 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 - Prevent the identity/entity/merge endpoint from processing requests that involve any SCIM-managed entity to prevent bypassing SCIM ownership guardrails - Prevent the entity batch-delete endpoint from deleting the underlying storage of entities that belong to another namespace - Reject identity entity/name updates with mismatched id or external_id selectors to prevent retargeting updates to a different entity #### v2.0.3 (2026-06-17) - 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 #### v2.0.2 (2026-06-05) - Limit RSA key sizes to a maximum of 8192 bits in secrets/ssh to address CVE-2026-39829 #### v2.0.1 (2026-05-19) - Reject wildcards in rendered identity templates - Remove dependency on github.com/jackc/pgx/v3 and github.com/jackc/pgx/v4 to resolve GHSA-j88v-2chj-qfwx - Update github.com/Azure/go-ntlmssp to v0.1.1 to fix security vulnerability - Update github.com/apache/thrift to fix security vulnerability GHSA-wf45-q9ch-q8gh - Update github.com/jackc/pgx/v5 to fix security vulnerability GHSA-j88v-2chj-qfwx - Update golang.org/x/net to resolve GO-2026-4918 - Validate that both path and file_path cannot be empty for requests to sys/audit/{path} #### v2.0.0 (2026-04-14) - 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 - Update go.opentelemetry.io/otel/sdk to fix CVE-2026-39883 - Update github.com/go-jose/go-jose to fix security vulnerability CVE-2026-34986 and GHSA-78h2-9frx-2jm8 - Fix an issue where a user may be able to bypass authentication to Vault due to incorrect caching of the AWS client - Ensure that the certificate being renewed matches the certificate attached to the session - Correctly remove any Vault tokens from the Authorization header when this header is forwarded to plugin backends - Upgrade to github.com/jackc/pgx/v5 to resolve GO-2026-4518 and GHSA-jqcq-xjh3-6g23 - Update github.com/aws/aws-sdk-go-v2/ to fix security vulnerability GHSA-xmrv-pmrh-hhx2 - Update github.com/hashicorp/go-getter to fix security vulnerability GHSA-92mm-2pjq-r785 - Reject URL-encoded paths that do not specify a canonical path - Disable scarf analytics for ui builds - 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 - 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 ## Release notes ### v2.1.0 - Date: 2026-09-01 - Version: v2.1.0 - Original notes: https://github.com/hashicorp/vault/releases/tag/v2.1.0 - Permalink: https://whatsnew.fyi/product/vault/releases/v2.1.0 - **security** — Update go.etcd.io/etcd/client/pkg/v3 to v3.7.1 to fix security vulnerability GO-2026-6107 - **security** — Update software.sslmate.com/src/go-pkcs12 to v0.7.2 to fix security vulnerability GO-2026-5052 - **changed** — Add Agentic IAM terms to client licensing model and update terms for Vault Platform licensing model - **changed** — Bump Go version to 1.26.7 - **changed** — Prevent issuer_id from being mutated after OAuth Resource Server profile creation - **changed** — Prevent unique_id_claim from being mutated after OAuth Resource Server profile creation - **changed** — The OAuth Resource Server feature no longer requires activation via the sys/activation-flags/oauth-resource-server/activate endpoint - **changed** — Update OAuth Resource Server config to include custom claim options for the token's unique identifier and actor - **changed** — Update OpenLDAP plugin to v0.18.4+ent - **added** — Add Agent Registry UI with a new Agentic Security section to the primary navigation where operators can view, search, and manage registered AI agents, their associated Vault entities and aliases, assigned policies, and operational status - **added** — Integrate with AWS Route53, Azure DNS, Google Cloud DNS, and BIND and other RFC2136-compliant servers for automatic DNS-01 challenge fulfillment for PKI External CA - **added** — Add support for PKCS#12 (PFX) and Java keytool (JKS) certificate bundles to relevant PKI endpoints - **added** — Add support for SLH-DSA as the PQC component for Hybrid sign/verify operations in Transit engine, compatible with both ECDSA and Ed25519 - **changed** — Remove the restriction that disallowed the use of 'deny' in ceiling policies in agent registry - **changed** — Replace go.uber.org/atomic with sync/atomic (stdlib) for atomic boolean operations in the pkiexternalca package - **added** — Add global denylist for revoking OAuth JWTs to prevent authorization of specific tokens across all namespaces - **changed** — Update Oracle Cloud library to enable seal integration with newer regions - **changed** — Expose the RSA Private Key field in the UI when generating credentials with the snowflake database secrets engine - **changed** — Update secrets engine delete confirmation modal to require typing 'delete-engine' to confirm, display the engine name, secret count for KV engines, and a list of what will be permanently deleted - **fixed** — Fix CA chain extraction from Vault PKI API responses where ca_chain field was always empty in templates due to incorrect type handling of array responses ##### 2.1.0 ###### September 01, 2026 SECURITY: * core: Update go.etcd.io/etcd/client/pkg/v3 to v3.7.1 to fix security vulnerability GO-2026-6107. * core: Update software.sslmate.com/src/go-pkcs12 to v0.7.2 to fix security vulnerability GO-2026-5052. CHANGES: * License: Add Agentic IAM terms to client licensing model and update terms for Vault Platform licensing model. * core: Bump Go version to 1.26.7. * oauth-resource-server (enterprise): Prevent issuer_id from being mutated after OAuth Resource Server profile creation. Operators must delete and recreate profiles to change the issuer_id. * oauth-resource-server (enterprise): Prevent unique_id_claim from being mutated after OAuth Resource Server profile creation. Operators must delete and recreate profiles to change the unique_id_claim. * oauth-resource-server (enterprise): The OAuth Resource Server feature no longer requires activation via the `sys/activation-flags/oauth-resource-server/activate` endpoint. * oauth-resource-server (enterprise): Update OAuth Resource Server config to include custom claim options for the token's unique identifier and actor. * secrets/openldap (enterprise): Update plugin to [v0.18.4+ent](https://github.com/hashicorp/vault-plugin-secrets-openldap/releases/tag/v0.18.4+ent) FEATURES: * **Agent Registry UI (enterprise)**: Adds a new Agentic Security section to the primary navigation with an Agent Registry page where operators can view, search, and manage registered AI agents, their associated Vault entities and aliases, assigned policies, and operational status. * **Automatic DNS-01 Challenge Fulfillment for PKI External CA**: Integrate with the following DNS providers for automatic DNS-01 challenge fulfillment: AWS Route53, Azure DNS, Google Cloud DNS, and BIND and other RFC2136-compliant servers. * **PKI PKCS#12 and JKS Support**: Adds support for PKCS#12 (PFX) and Java keytool (JKS) certificate bundles to relevant PKI endpoints. Bundles are returned as base64-encoded, password-protected files. * **SLH-DSA support for Hybrid sign/verify in Transit engine (enterprise)**: Add support for SLH-DSA as the PQC component for Hybrid sign/verify operations. This is compatible with both ECDSA (p-256, P-384, P-521) and Ed25519. * secrets/pki-external-ca (enterprise): Add support for handling dns-01 challenges for Azure, AWS, GCP, and rfc2136 DNS. IMPROVEMENTS: * agent-registry (enterprise): Removed the restriction that disallowed the use of 'deny' in ceiling policies, resulting in request errors. * agent/pkiexternalca: Replace go.uber.org/atomic with sync/atomic (stdlib) for atomic boolean operations in the pkiexternalca package. * auth/token: Add global denylist for revoking OAuth JWTs to prevent authorization of specific tokens across all namespaces. * core/seal (enterprise): Update Oracle Cloud library to enable seal integration with newer regions. * ui: Bump `dompurify` from `3.4.6` to `3.4.13`. * ui: Bump shell-quote from 1.8.4 to 1.9.0. * ui: Exposing the RSA Private Key field in the UI when generating credentials with the snowflake database secrets engine. Previously, this field was only shown in the cli. * ui: Secrets engine delete confirmation modal now requires typing `delete-engine` to confirm, displays the engine name, secret count (KV engines only), and a list of what will be permanently deleted. ConfirmModal has now been updated to include a optional type-to-confirm. BUG FIXES: * agent/pki-external-ca: Fix CA chain extraction from Vault PKI API responses where `ca_chain` field was always empty in templates due to incorrect type handling of array responses * api: Account for the HTTP Age header when calculating a lease's remaining lifetime, so that leases read or renewed through a caching proxy such as Vault Agent are renewed before they expire. * core (enterprise): Fix a data race and potential panic during seal/unseal * core (enterprise): Fix panic in `collectOperatorImportMetrics` when `rout _[Truncated at 4000 characters — full notes: https://github.com/hashicorp/vault/releases/tag/v2.1.0]_ ### 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]_