1.15.0
September 27, 2023
SECURITY:
- secrets/transit: fix a regression that was honoring nonces provided in non-convergent modes during encryption. [GH-22852]
CHANGES:
- auth/alicloud: Update plugin to v0.16.0 [GH-22646]
- auth/azure: Update plugin to v0.16.0 [GH-22277]
- auth/azure: Update plugin to v0.16.1 [GH-22795]
- auth/azure: Update plugin to v0.16.2 [GH-23060]
- auth/cf: Update plugin to v0.15.1 [GH-22758]
- auth/gcp: Update plugin to v0.16.1 [GH-22612]
- auth/jwt: Update plugin to v0.17.0 [GH-22678]
- auth/kerberos: Update plugin to v0.10.1 [GH-22797]
- auth/kubernetes: Update plugin to v0.17.0 [GH-22709]
- auth/kubernetes: Update plugin to v0.17.1 [GH-22879]
- auth/ldap: Normalize HTTP response codes when invalid credentials are provided [GH-21282]
- auth/oci: Update plugin to v0.14.2 [GH-22805]
- core (enterprise): Ensure Role Governing Policies are only applied down the namespace hierarchy
- core/namespace (enterprise): Introduce the concept of high-privilege namespace (administrative namespace),
which will have access to some system backend paths that were previously only accessible in the root namespace. [GH-21215] - core: Bump Go version to 1.21.1.
- database/couchbase: Update plugin to v0.9.3 [GH-22854]
- database/couchbase: Update plugin to v0.9.4 [GH-22871]
- database/elasticsearch: Update plugin to v0.13.3 [GH-22696]
- database/mongodbatlas: Update plugin to v0.10.1 [GH-22655]
- database/redis-elasticache: Update plugin to v0.2.2 [GH-22584]
- database/redis-elasticache: Update plugin to v0.2.3 [GH-22598]
- database/redis: Update plugin to v0.2.2 [GH-22654]
- database/snowflake: Update plugin to v0.9.0 [GH-22516]
- events: Log level for processing an event dropped from info to debug. [GH-22997]
- events:
data_path
will include full data path of secret, including name. [GH-22487] - replication (enterprise): Switch to non-deprecated gRPC field for resolver target host
- sdk/logical/events:
EventSender
interface method is nowSendEvent
instead ofSend
. [GH-22487] - secrets/ad: Update plugin to v0.16.1 [GH-22856]
- secrets/alicloud: Update plugin to v0.15.1 [GH-22533]
- secrets/azure: Update plugin to v0.16.2 [GH-22799]
- secrets/azure: Update plugin to v0.16.3 [GH-22824]
- secrets/gcp: Update plugin to v0.17.0 [GH-22746]
- secrets/gcpkms: Update plugin to v0.15.1 [GH-22757]
- secrets/keymgmt: Update plugin to v0.9.3
- secrets/kubernetes: Update plugin to v0.6.0 [GH-22823]
- secrets/kv: Update plugin to v0.16.1 [GH-22716]
- secrets/mongodbatlas: Update plugin to v0.10.1 [GH-22748]
- secrets/openldap: Update plugin to v0.11.2 [GH-22734]
- secrets/terraform: Update plugin to v0.7.3 [GH-22907]
- secrets/transform (enterprise): Enforce a transformation role's max_ttl setting on encode requests, a warning will be returned if max_ttl was applied.
- storage/aerospike: Aerospike storage shouldn't be used on 32-bit architectures and is now unsupported on them. [GH-20825]
- telemetry: Replace
vault.rollback.attempt.{MOUNT_POINT}
andvault.route.rollback.{MOUNT_POINT}
metrics withvault.rollback.attempt
andvault.route.rollback metrics
by default. Added a telemetry configurationadd_mount_point_rollback_metrics
which, when set to true, causes vault to emit the metrics with mount points in their names. [GH-22400]
FEATURES:
- Certificate Issuance External Policy Service (CIEPS) (enterprise): Allow highly-customizable operator control of certificate validation and generation through the PKI Secrets Engine.
- Copyable KV v2 paths in UI: KV v2 secret paths are copyable for use in CLI commands or API calls [GH-22551]
- Dashboard UI: Dashboard is now available in the UI as the new landing page. [GH-21057]
- Database Static Role Advanced TTL Management: Adds the ability to rotate
- Event System: Add subscribe capability and subscribe_event_types to policies for events. [GH-22474]
static roles on a defined schedule. [GH-22484] - GCP IAM Support: Adds support for IAM-based authentication to MySQL and PostgreSQL backends using Google Cloud SQL. [GH-22445]
- Improved KV V2 UI: Updated and restructured secret engine for KV (version 2 only) [GH-22559]
- Merkle Tree Corruption Detection (enterprise): Add a new endpoint to check merkle tree corruption.
- Plugin Containers: Vault supports registering, managing, and running plugins inside a container on Linux. [GH-22712]
- SAML Auth Method (enterprise): Enable users to authenticate with Vault using their identity in a SAML Identity Provider.
- Seal High Availability Beta (enterprise): operators can try out configuring more than one automatic seal for resilience against seal provider outages. Not for production use at this time.
- Secrets Sync (enterprise): Add the ability to synchronize KVv2 secret with external secrets manager solutions.
- UI LDAP secrets engine: Add LDAP secrets engine to the UI. [GH-20790]
IMPROVEMENTS:
- Bump github.com/hashicorp/go-plugin version v1.4.9 -> v1.4.10 [GH-20966]
- api: add support for cloning a Client's tls.Config. [GH-21424]
- api: adding a new api sys method for replication status [GH-20995]
- audit: add core audit events experiment [GH-21628]
- auth/aws: Added support for signed GET requests for authenticating to vault using the aws iam method. [GH-10961]
- auth/azure: Add support for azure workload identity authentication (see issue
#18257). Update go-kms-wrapping dependency to include PR
#155 [GH-22994] - auth/azure: Added Azure API configurable retry options [GH-23059]
- auth/cert: Adds support for requiring hexadecimal-encoded non-string certificate extension values [GH-21830]
- auth/ldap: improved login speed by adding concurrency to LDAP token group searches [GH-22659]
- auto-auth/azure: Added Azure Workload Identity Federation support to auto-auth (for Vault Agent and Vault Proxy). [GH-22264]
- auto-auth: added support for LDAP auto-auth [GH-21641]
- aws/auth: Adds a new config field
use_sts_region_from_client
which allows for using dynamic regional sts endpoints based on Authorization header when using IAM-based authentication. [GH-21960] - command/server: add
-dev-tls-san
flag to configure subject alternative names for the certificate generated when using-dev-tls
. [GH-22657] - core (ent) : Add field that allows lease-count namespace quotas to be inherited by child namespaces.
- core : Add field that allows rate-limit namespace quotas to be inherited by child namespaces. [GH-22452]
- core/fips: Add RPM, DEB packages of FIPS 140-2 and HSM+FIPS 140-2 Vault Enterprise.
- core/quotas: Add configuration to allow skipping of expensive role calculations [GH-22651]
- core: Add a new periodic metric to track the number of available policies,
vault.policy.configured.count
. [GH-21010] - core: Fix OpenAPI representation and
-output-policy
recognition of some non-standard sudo paths [GH-21772] - core: Fix regexes for
sys/raw/
andsys/leases/lookup/
to match prevailing conventions [GH-21760] - core: Log rollback manager failures during unmount, remount to prevent replication failures on secondary clusters. [GH-22235]
- core: Use a worker pool for the rollback manager. Add new metrics for the rollback manager to track the queued tasks. [GH-22567]
- core: add a listener configuration "chroot_namespace" that forces requests to use a namespace hierarchy [GH-22304]
- core: add a listener configuration "chroot_namespace" that forces requests to use a namespace hierarchy
- core: remove unnecessary *BarrierView field from backendEntry struct [GH-20933]
- core: use Go stdlib functionalities instead of explicit byte/string conversions [GH-21854]
- docs: Clarify when a entity is created [GH-22233]
- eventbus: updated go-eventlogger library to allow removal of nodes referenced by pipelines (used for subscriptions) [GH-21623]
- events: Allow subscriptions to multiple namespaces [GH-22540]
- events: Enabled by default [GH-22815]
- events: WebSocket subscriptions add support for boolean filter expressions [GH-22835]
- framework: Make it an error for
CreateOperation
to be defined without anExistenceCheck
, thereby fixing misleadingx-vault-createSupported
in OpenAPI [GH-18492] - kmip (enterprise): Add namespace lock and unlock support [GH-21925]
- openapi: Better mount points for kv-v1 and kv-v2 in openapi.json [GH-21563]
- openapi: Fix generated types for duration strings [GH-20841]
- openapi: Fix generation of correct fields in some rarer cases [GH-21942]
- openapi: Fix response definitions for list operations [GH-21934]
- openapi: List operations are now given first-class representation in the OpenAPI document, rather than sometimes being overlaid with a read operation at the same path [GH-21723]
- plugins: Containerized plugins can be configured to still work when running with systemd's PrivateTmp=true setting. [GH-23215]
- replication (enterprise): Avoid logging warning if request is forwarded from a performance standby and not a performance secondary
- replication (enterprise): Make reindex less disruptive by allowing writes during the flush phase.
- sdk/framework: Adds replication state helper for backends to check for read-only storage [GH-21743]
- secrets/database: Improves error logging for static role rotations by including the database and role names. [GH-22253]
- secrets/db: Remove the
service_account_json
parameter when reading DB connection details [GH-23256] - secrets/pki: Add a parameter to allow ExtKeyUsage field usage from a role within ACME. [GH-21702]
- secrets/transform (enterprise): Switch to pgx PostgreSQL driver for better timeout handling
- secrets/transit: Add support to create CSRs from keys in transit engine and import/export x509 certificates [GH-21081]
- storage/dynamodb: Added three permit pool metrics for the DynamoDB backend,
pending_permits
,active_permits
, andpool_size
. [GH-21742] - storage/etcd: Make etcd parameter MaxCallSendMsgSize configurable [GH-12666]
- storage/raft: Cap the minimum dead_server_last_contact_threshold to 1m. [GH-22040]
- sys/metrics (enterprise): Adds a gauge metric that tracks whether enterprise builtin secret plugins are enabled. [GH-21681]
- ui: Add API Explorer link to Sidebar, under Tools. [GH-21578]
- ui: Add pagination to PKI roles, keys, issuers, and certificates list pages [GH-23193]
- ui: Added allowed_domains_template field for CA type role in SSH engine [GH-23119]
- ui: Adds mount configuration details to Kubernetes secrets engine configuration view [GH-22926]
- ui: Adds tidy_revoked_certs to PKI tidy status page [GH-23232]
- ui: Adds warning before downloading KV v2 secret values [GH-23260]
- ui: Display minus icon for empty MaskedInput value. Show MaskedInput for KV secrets without values [GH-22039]
- ui: JSON diff view available in "Create New Version" form for KV v2 [GH-22593]
- ui: KV View Secret card will link to list view if input ends in "/" [GH-22502]
- ui: Move access to KV V2 version diff view to toolbar in Version History [GH-23200]
- ui: Update pki mount configuration details to match the new mount configuration details pattern [GH-23166]
- ui: add example modal to policy form [GH-21583]
- ui: adds allowed_user_ids field to create role form and user_ids to generate certificates form in pki [GH-22191]
- ui: display CertificateCard instead of MaskedInput for certificates in PKI [GH-22160]
- ui: enables create and update KV secret workflow when control group present [GH-22471]
- ui: implement hashicorp design system alert component [GH-21375]
- ui: update detail views that render ttl durations to display full unit instead of letter (i.e. 'days' instead of 'd') [GH-20697]
- ui: update unseal and DR operation token flow components [GH-21871]
- ui: upgrade Ember to 4.12 [GH-22122]
DEPRECATIONS:
- auth/centrify: Centrify plugin is deprecated as of 1.15, slated for removal in 1.17 [GH-23050]
BUG FIXES:
- activity (enterprise): Fix misattribution of entities to no or child namespace auth methods [GH-18809]
- agent: Environment variable VAULT_CACERT_BYTES now works for Vault Agent templates. [GH-22322]
- agent: Fix "generate-config" command documentation URL [GH-21466]
- api/client: Fix deadlock in client.CloneWithHeaders when used alongside other client methods. [GH-22410]
- api: Fix breakage with UNIX domain socket addresses introduced by newest Go versions as a security fix. [GH-22523]
- audit: Prevent panic due to nil pointer receiver for audit header formatting. [GH-22694]
- auth/azure: Fix intermittent 401s by preventing performance secondary clusters from rotating root credentials. [GH-21800]
- auth/token, sys: Fix path-help being unavailable for some list-only endpoints [GH-18571]
- auth/token: Fix parsing of
auth/token/create
fields to avoid incorrect warnings about ignored parameters [GH-18556] - awsutil: Update awsutil to v0.2.3 to fix a regression where Vault no longer
respectsAWS_ROLE_ARN
,AWS_WEB_IDENTITY_TOKEN_FILE
, andAWS_ROLE_SESSION_NAME
. [GH-21951] - cli: Avoid printing "Success" message when
-field
flag is provided during avault write
. [GH-21546] - cli: Fix the CLI failing to return wrapping information for KV PUT and PATCH operations when format is set to
table
. [GH-22818] - core (enterprise): Fix sentinel policy check logic so that sentinel
policies are not used when Sentinel feature isn't licensed. - core (enterprise): Remove MFA Configuration for namespace when deleting namespace
- core/managed-keys (enterprise): Allow certain symmetric PKCS#11 managed key mechanisms (AES CBC with and without padding) to operate without an HMAC.
- core/metrics: vault.raft_storage.bolt.write.time should be a counter not a summary [GH-22468]
- core/quotas (enterprise): Fix a case where we were applying login roles to lease count quotas in a non-login context.
Also fix a related potential deadlock. [GH-21110] - core/quotas: Only perform ResolveRoleOperation for role-based quotas and lease creation. [GH-22597]
- core/quotas: Reduce overhead for role calculation when using cloud auth methods. [GH-22583]
- core: Remove "expiration manager is nil on tokenstore" error log for unauth requests on DR secondary as they do not have expiration manager. [GH-22137]
- core: All subloggers now reflect configured log level on reload. [GH-22038]
- core: Fix bug where background thread to update locked user entries runs on DR secondaries. [GH-22355]
- core: Fix readonly errors that could occur while loading mounts/auths during unseal [GH-22362]
- core: Fixed an instance where incorrect route entries would get tainted. We now pre-calculate namespace specific paths to avoid this. [GH-21470]
- core: Fixed issue with some durations not being properly parsed to include days. [GH-21357]
- core: Fixes list password policy to include those with names containing / characters. [GH-23155]
- core: fix race when updating a mount's route entry tainted status and incoming requests [GH-21640]
- docs: fix wrong api path for ldap secrets cli-commands [GH-23225]
- events: Ensure subscription resources are cleaned up on close. [GH-23042]
- expiration: Fix a deadlock that could occur when a revocation failure happens while restoring leases on startup. [GH-22374]
- identity/mfa: Fixes to OpenAPI representation and returned error codes for
identity/mfa/method/*
APIs [GH-20879] - identity: Remove caseSensitivityKey to prevent errors while loading groups which could result in missing groups in memDB when duplicates are found. [GH-20965]
- license: Add autoloaded license path to the cache exempt list. This is to ensure the license changes on the active node is observed on the perfStandby node. [GH-22363]
- openapi: Fix response schema for PKI Issue requests [GH-21449]
- openapi: Fix schema definitions for PKI EAB APIs [GH-21458]
- plugins: Containerized plugins can be run with mlock enabled. [GH-23215]
- plugins: Fix instance where Vault could fail to kill broken/unresponsive plugins. [GH-22914]
- plugins: Fix instance where broken/unresponsive plugins could cause Vault to hang. [GH-22914]
- plugins: Runtime catalog returns 404 instead of 500 when reading a runtime that does not exist [GH-23171]
- plugins:
vault plugin runtime list
can successfully list plugin runtimes with GET [GH-23171] - raft/autopilot: Add dr-token flag for raft autopilot cli commands [GH-21165]
- replication (enterprise): Fix bug sync invalidate CoreReplicatedClusterInfoPath
- replication (enterprise): Fix discovery of bad primary cluster addresses to be more reliable
- replication (enterprise): Fix panic when update-primary was called on demoted clusters using update_primary_addrs
- replication (enterprise): Fixing a bug by which the atomicity of a merkle diff result could be affected. This means it could be a source of a merkle-diff & sync process failing to switch into stream-wal mode afterwards.
- replication (enterprise): Sort cluster addresses returned by echo requests, so that primary-addrs only gets persisted when the
set of addrs changes. - replication (enterprise): update primary cluster address after DR failover
- sdk/ldaputil: Properly escape user filters when using UPN domains
sdk/ldaputil: use EscapeLDAPValue implementation from cap/ldap [GH-22249] - secrets/azure: Fix intermittent 401s by preventing performance secondary clusters from rotating root credentials. [GH-21631]
- secrets/ldap: Fix bug causing schema and password_policy to be overwritten in config. [GH-22330]
- secrets/pki: Fix bug with ACME tidy, 'unable to determine acme base folder path'. [GH-21870]
- secrets/pki: Fix preserving acme_account_safety_buffer on config/auto-tidy. [GH-21870]
- secrets/pki: Fix removal of issuers to clean up unreferenced CRLs. [GH-23007]
- secrets/pki: Prevent deleted issuers from reappearing when migrating from a version 1 bundle to a version 2 bundle (versions including 1.13.0, 1.12.2, and 1.11.6); when managed keys were removed but referenced in the Vault 1.10 legacy CA bundle, this the error:
no managed key found with uuid
. [GH-21316] - secrets/pki: allowed_domains are now compared in a case-insensitive manner if they use glob patterns [GH-22126]
- secrets/transform (enterprise): Batch items with repeated tokens in the tokenization decode api will now contain the decoded_value element
- secrets/transform (enterprise): Fix nil panic when deleting a template with tokenization transformations present
- secrets/transform (enterprise): Fix nil panic when encoding a tokenization transformation on a non-active node
- secrets/transform (enterprise): Grab shared locks for various read operations, only escalating to write locks if work is required
- secrets/transform (enterprise): Tidy operations will be re-scheduled at a minimum of every minute, not a maximum of every minute
- secrets/transit: fix panic when providing non-PEM formatted public key for import [GH-22753]
- serviceregistration: Fix bug where multiple nodes in a secondary cluster could be labelled active after updating the cluster's primary [GH-21642]
- storage/consul: Consul service registration tags are now case-sensitive. [GH-6483]
- storage/raft: Fix race where new follower joining can get pruned by dead server cleanup. [GH-20986]
- ui (enterprise): Fix error message when generating SSH credential with control group [GH-23025]
- ui: Adds missing values to details view after generating PKI certificate [GH-21635]
- ui: Fix blank page or ghost secret when canceling KV secret create [GH-22541]
- ui: Fix display for "Last Vault Rotation" timestamp for static database roles which was not rendering or copyable [GH-22519]
- ui: Fix styling for username input when editing a user [GH-21771]
- ui: Fix styling for viewing certificate in kubernetes configuration [GH-21968]
- ui: Fix the issue where confirm delete dropdown is being cut off [GH-23066]
- ui: Fixed an issue where editing an SSH role would clear
default_critical_options
anddefault_extension
if left unchanged. [GH-21739] - ui: Fixed secrets, leases, and policies filter dropping focus after a single character [GH-21767]
- ui: Fixes filter and search bug in secrets engines [GH-23123]
- ui: Fixes form field label tooltip alignment [GH-22832]
- ui: Fixes issue with certain navigational links incorrectly displaying in child namespaces [GH-21562]
- ui: Fixes login screen display issue with Safari browser [GH-21582]
- ui: Fixes problem displaying certificates issued with unsupported signature algorithms (i.e. ed25519) [GH-21926]
- ui: Fixes styling of private key input when configuring an SSH key [GH-21531]
- ui: Surface DOMException error when browser settings prevent localStorage. [GH-21503]
- ui: correct doctype for index.html [GH-22153]
- ui: don't exclude features present on license [GH-22855]
- ui: fixes
max_versions
default for secret metadata unintentionally overriding kv engine defaults [GH-22394] - ui: fixes long namespace names overflow in the sidebar
- ui: fixes model defaults overwriting input value when user tries to clear form input [GH-22458]
- ui: fixes text readability issue in revoke token confirmation dialog [GH-22390]