1.17.0
June 12, 2024
CHANGES:
- api: Upgrade from github.com/go-jose/go-jose/v3 v3.0.3 to github.com/go-jose/go-jose/v4 v4.0.1. [GH-26527]
- audit: breaking change - Vault now allows audit logs to contain 'correlation-id' and 'x-correlation-id' headers when they
are present in the incoming request. By default they are not HMAC'ed (but can be configured to HMAC by Vault Operators). [GH-26777] - auth/alicloud: Update plugin to v0.18.0 [GH-27133]
- auth/azure: Update plugin to v0.18.0 [GH-27146]
- auth/centrify: Remove the deprecated Centrify auth method plugin [GH-27130]
- auth/cf: Update plugin to v0.17.0 [GH-27161]
- auth/gcp: Update plugin to v0.18.0 [GH-27140]
- auth/jwt: Update plugin to v0.20.2 [GH-26291]
- auth/jwt: Update plugin to v0.20.3 [GH-26890]
- auth/kerberos: Update plugin to v0.12.0 [GH-27177]
- auth/kubernetes: Update plugin to v0.19.0 [GH-27186]
- auth/oci: Update plugin to v0.16.0 [GH-27142]
- core (enterprise): Seal High Availability (HA) must be enabled by
enable_multiseal
in configuration. - core/identity: improve performance for secondary nodes receiving identity related updates through replication [GH-27184]
- core: Bump Go version to 1.22.4
- core: return an additional "invalid token" error message in 403 response when the provided request token is expired,
exceeded the number of uses, or is a bogus value [GH-25953] - database/couchbase: Update plugin to v0.11.0 [GH-27145]
- database/elasticsearch: Update plugin to v0.15.0 [GH-27136]
- database/mongodbatlas: Update plugin to v0.12.0 [GH-27143]
- database/redis-elasticache: Update plugin to v0.4.0 [GH-27139]
- database/redis: Update plugin to v0.3.0 [GH-27117]
- database/snowflake: Update plugin to v0.11.0 [GH-27132]
- sdk: String templates now have a maximum size of 100,000 characters. [GH-26110]
- secrets/ad: Update plugin to v0.18.0 [GH-27172]
- secrets/alicloud: Update plugin to v0.17.0 [GH-27134]
- secrets/azure: Update plugin to v0.17.1 [GH-26528]
- secrets/azure: Update plugin to v0.19.0 [GH-27141]
- secrets/gcp: Update plugin to v0.19.0 [GH-27164]
- secrets/gcpkms: Update plugin to v0.17.0 [GH-27163]
- secrets/keymgmt (enterprise): Removed
namespace
label on thevault.kmse.key.count
metric. - secrets/kmip (enterprise): Update plugin to v0.15.0
- secrets/kubernetes: Update plugin to v0.8.0 [GH-27187]
- secrets/kv: Update plugin to v0.18.0 [GH-26877]
- secrets/kv: Update plugin to v0.19.0 [GH-27159]
- secrets/mongodbatlas: Update plugin to v0.12.0 [GH-27149]
- secrets/openldap: Update plugin to v0.13.0 [GH-27137]
- secrets/pki: sign-intermediate API will truncate notAfter if calculated to go beyond the signing issuer's notAfter. Previously the notAfter was permitted to go beyond leading to invalid chains. [GH-26796]
- secrets/terraform: Update plugin to v0.8.0 [GH-27147]
- ui/kubernetes: Update the roles filter-input to use explicit search. [GH-27178]
- ui: Update dependencies including D3 libraries [GH-26346]
- ui: Upgrade Ember data from 4.11.3 to 4.12.4 [GH-25272]
- ui: Upgrade Ember to version 5.4 [GH-26708]
- ui: deleting a nested secret will no longer redirect you to the nearest path segment [GH-26845]
- ui: flash messages render on right side of page [GH-25459]
FEATURES:
- PKI Certificate Metadata (enterprise): Add Certificate Metadata Functionality to Record and Return Client Information about a Certificate.
- Adaptive Overload Protection (enterprise): Adds Adaptive Overload Protection
for write requests as a Beta feature (disabled by default). This automatically
prevents overloads caused by too many write requests while maintaining optimal
throughput for the hardware configuration and workload. - Audit Filtering (enterprise) : Audit devices support expression-based filter rules (powered by go-bexpr) to determine which entries are written to the audit log.
- LDAP Secrets engine hierarchical path support: Hierarchical path handling is now supported for role and set APIs. [GH-27203]
- Plugin Identity Tokens: Adds secret-less configuration of AWS auth engine using web identity federation. [GH-26507]
- Plugin Workload Identity (enterprise): Vault can generate identity tokens for plugins to use in workload identity federation auth flows.
- Transit AES-CMAC (enterprise): Added support to create and verify AES backed cipher-based message authentication codes
IMPROVEMENTS:
- activity (enterprise): Change minimum retention window in activity log to 48 months
- agent: Added a new config option,
lease_renewal_threshold
, that controls the refresh rate of non-renewable leases in Agent's template engine. [GH-25212] - agent: Agent will re-trigger auto auth if token used for rendering templates has been revoked, has exceeded the number of uses, or is a bogus value. [GH-26172]
- api: Move CLI token helper functions to importable packages in
api
module. [GH-25744] - audit: timestamps across multiple audit devices for an audit entry will now match. [GH-26088]
- auth/aws: Add inferred_hostname metadata for IAM AWS authentication method. [GH-25418]
- auth/aws: add canonical ARN as entity alias option [GH-22460]
- auth/aws: add support for external_ids in AWS assume-role [GH-26628]
- auth/cert: Adds support for TLS certificate authenticaion through a reverse proxy that terminates the SSL connection [GH-17272]
- cli: Add events subscriptions commands
- command/server: Removed environment variable requirement to generate pprof
files using SIGUSR2. Added CPU profile support. [GH-25391] - core (enterprise): persist seal rewrap status, so rewrap status API is consistent on secondary nodes.
- core/activity: Include ACME client metrics to precomputed queries [GH-26519]
- core/activity: Include ACME clients in activity log responses [GH-26020]
- core/activity: Include ACME clients in vault operator usage response [GH-26525]
- core/config: reload service registration configuration on SIGHUP [GH-17598]
- core: add deadlock detection in barrier and sealwrap
- license utilization reporting (enterprise): Add retention months to license utilization reports.
- proxy/cache (enterprise): Support new configuration parameter for static secret caching,
static_secret_token_capability_refresh_behavior
, to control the behavior when the capability refresh request receives an error from Vault. - proxy: Proxy will re-trigger auto auth if the token used for requests has been revoked, has exceeded the number of uses,
or is an otherwise invalid value. [GH-26307] - raft/snapshotagent (enterprise): upgrade raft-snapshotagent to v0.0.0-20221104090112-13395acd02c5
- replication (enterprise): Add replication heartbeat metric to telemetry
- replication (enterprise): Periodically write current time on the primary to storage, use that downstream to measure replication lag in time, expose that in health and replication status endpoints. [GH-26406]
- sdk/decompression: DecompressWithCanary will now chunk the decompression in memory to prevent loading it all at once. [GH-26464]
- sdk/helper/testcluster: add some new helpers, improve some error messages. [GH-25329]
- sdk/helper/testhelpers: add namespace helpers [GH-25270]
- secrets-sync (enterprise): Added global config path to the administrative namespace.
- secrets/pki (enterprise): Disable warnings about unknown parameters to the various CIEPS endpoints
- secrets/pki: Add a new ACME configuration parameter that allows increasing the maximum TTL for ACME leaf certificates [GH-26797]
- secrets/transform (enterprise): Add delete by token and delete by plaintext operations to Tokenization.
- storage/azure: Perform validation on Azure account name and container name [GH-26135]
- storage/raft (enterprise): add support for separate entry size limit for mount
and namespace table paths in storage to allow increased mount table size without
allowing other user storage entries to become larger. [GH-25992] - storage/raft: panic on unknown Raft operations [GH-25991]
- ui (enterprise): Allow HVD users to access Secrets Sync. [GH-26841]
- ui (enterprise): Update dashboard to make activity log query using the same start time as the metrics overview [GH-26729]
- ui (enterprise): Update filters on the custom messages list view. [GH-26653]
- ui: Allow users to wrap inputted data again instead of resetting form [GH-27289]
- ui: Display ACME clients on a separate page in the UI. [GH-26020]
- ui: Hide dashboard client count card if user does not have permission to view clients. [GH-26848]
- ui: Show computed values from
sys/internal/ui/mounts
endpoint for auth mount configuration view [GH-26663] - ui: Update PGP display and show error for Generate Operation Token flow with PGP [GH-26993]
- ui: Update language in Transit secret engine to reflect that not all keys are for encyryption [GH-27346]
- ui: Update userpass user form to allow setting
password_hash
field. [GH-26577] - ui: fixes cases where inputs did not have associated labels [GH-26263]
- ui: show banner instead of permission denied error when batch token is expired [GH-26396]
- website/docs: Add note about eventual consietency with the MongoDB Atlas database secrets engine [GH-24152]
DEPRECATIONS:
- Request Limiter Beta(enterprise): This Beta feature added in 1.16 has been
superseded by Adaptive Overload Protection and will be removed. - secrets/azure: Deprecate field "password_policy" as we are not able to set it anymore with the new MS Graph API. [GH-25637]
BUG FIXES:
- activity (enterprise): fix read-only storage error on upgrades
- agent: Correctly constructs kv-v2 secret paths in nested namespaces. [GH-26863]
- agent: Fixes a high Vault load issue, by restarting the Conusl template server after backing off instead of immediately. [GH-25497]
- agent:
vault.namespace
no longer gets incorrectly overridden byauto_auth.namespace
, if set [GH-26427] - api: fixed a bug where LifetimeWatcher routines weren't respecting exponential backoff in the presence of unexpected errors [GH-26383]
- audit: Operator changes to configured audit headers (via
/sys/config/auditing
)
will now force invalidation and be reloaded from storage when data is replicated
to other nodes. - auth/ldap: Fix login error for group search anonymous bind. [GH-26200]
- auth/ldap: Fix login error missing entity alias attribute value. [GH-26200]
- auto-auth: Addressed issue where having no permissions to renew a renewable token caused auto-auth to attempt to renew constantly with no backoff [GH-26844]
- cli/debug: Fix resource leak in CLI debug command. [GH-26167]
- cli: fixed a bug where the Vault CLI would error out if
HOME was not set. [GH-26243] - core (enterprise): Fix 403s returned when forwarding invalid token to active node from secondary.
- core (enterprise): Fix an issue that prevented the seal re-wrap status from reporting that a re-wrap is in progress for up to a second.
- core (enterprise): fix bug where raft followers disagree with the seal type after returning to one seal from two. [GH-26523]
- core (enterprise): fix issue where the Seal HA rewrap system may remain running when an active node steps down.
- core/audit: Audit logging a Vault request/response will now use a minimum 5 second context timeout.
If the existing context deadline occurs later than 5s in the future, it will be used, otherwise a
new context, separate from the original will be used. [GH-26616] - core/metrics: store cluster name in unencrypted storage to prevent blank cluster name [GH-26878]
- core/namespace (enterprise): Privileged namespace paths provided in the
administrative_namespace_path
config will now be canonicalized. - core/seal: During a seal reload through SIGHUP, only write updated seal barrier on an active node [GH-26381]
- core/seal: allow overriding of VAULT_GCPCKMS_SEAL_KEY_RING and VAULT_GCPCKMS_SEAL_CRYPTO_KEY environment keys in seal-ha
- core: Add missing field delegated_auth_accessors to GET /sys/mounts/:path API response [GH-26876]
- core: Address a data race updating a seal's last seen healthy time attribute [GH-27014]
- core: Fix
redact_version
listener parameter being ignored for some OpenAPI related endpoints. [GH-26607] - core: Only reload seal configuration when enable_multiseal is set to true. [GH-26166]
- core: when listener configuration
chroot_namespace
is active, Vault will no longer report that the configuration is invalid when Vault is sealed - events (enterprise): Fix bug preventing subscribing and receiving events within a namepace.
- events (enterprise): Terminate WebSocket connection when token is revoked.
- openapi: Fixing approle reponse duration types [GH-25510]
- openapi: added the missing migrate parameter for the unseal endpoint in vault/logical_system_paths.go [GH-25550]
- pki: Fix error in cross-signing using ed25519 keys [GH-27093]
- plugin/wif: fix a bug where the namespace was not set for external plugins using workload identity federation [GH-26384]
- replication (enterprise): fix "given mount path is not in the same namespace as the request" error that can occur when enabling replication for the first time on a secondary cluster
- replication (enterprise): fixed data integrity issue with the processing of identity aliases causing duplicates to occur in rare cases
- router: Fix missing lock in MatchingSystemView. [GH-25191]
- secret/database: Fixed race condition where database mounts may leak connections [GH-26147]
- secrets-sync (enterprise): Fixed an issue with syncing to target projects in GCP
- secrets/azure: Update vault-plugin-secrets-azure to 0.17.2 to include a bug fix for azure role creation [GH-26896]
- secrets/pki (enterprise): cert_role parameter within authenticators.cert EST configuration handler could not be set
- secrets/pki: fixed validation bug which rejected ldap schemed URLs in crl_distribution_points. [GH-26477]
- secrets/transform (enterprise): Fix a bug preventing the use of alternate schemas on PostgreSQL token stores.
- secrets/transit: Use 'hash_algorithm' parameter if present in HMAC verify requests. Otherwise fall back to deprecated 'algorithm' parameter. [GH-27211]
- storage/raft (enterprise): Fix a bug where autopilot automated upgrades could fail due to using the wrong upgrade version
- storage/raft (enterprise): Fix a regression introduced in 1.15.8 that causes
autopilot to fail to discover new server versions and so not trigger an upgrade. [GH-27277] - storage/raft: prevent writes from impeding leader transfers, e.g. during automated upgrades [GH-25390]
- transform (enterprise): guard against a panic looking up a token in exportable mode with barrier storage.
- ui: Do not show resultant-ACL banner when ancestor namespace grants wildcard access. [GH-27263]
- ui: Fix KVv2 cursor jumping inside json editor after initial input. [GH-27120]
- ui: Fix KVv2 json editor to allow null values. [GH-27094]
- ui: Fix a bug where disabling TTL on the AWS credential form would still send TTL value [GH-27366]
- ui: Fix broken help link in console for the web command. [GH-26858]
- ui: Fix configuration link from Secret Engine list view for Ember engines. [GH-27131]
- ui: Fix link to v2 generic secrets engine from secrets list page. [GH-27019]
- ui: Prevent perpetual loading screen when Vault needs initialization [GH-26985]
- ui: Refresh model within a namespace on the Secrets Sync overview page. [GH-26790]
- ui: Remove possibility of returning an undefined timezone from date-format helper [GH-26693]
- ui: Resolved accessibility issues with Web REPL. Associated label and help text with input, added a conditional to show the console/ui-panel only when toggled open, added keyboard focus trap. [GH-26872]
- ui: fix issue where a month without new clients breaks the client count dashboard [GH-27352]
- ui: fixed a bug where the replication pages did not update display when navigating between DR and performance [GH-26325]
- ui: fixes undefined start time in filename for downloaded client count attribution csv [GH-26485]