On this page · 8 sections
TL;DR
The Vault v2.2.0 release notes list breaking changes to container images, the PostgreSQL storage backend, ACME certificate finalization, and JWT revocation through token endpoints. Operators running Vault in containers, using PostgreSQL storage with Managed Identity, issuing certificates through ACME, or revoking OAuth JWTs should review their setup.
The Vault v2.2.0 release notes contain these entries under their breaking changes and CHANGES sections. The Vault v2.2.0-rc1 release notes contain the same container, PostgreSQL, PKI and token entries in the excerpt provided. This article covers only those breaking items and the operator actions that the notes state, and it labels every point that is an inference.
Summary of the breaking changes #
| Change | Who is affected | Action |
|---|---|---|
v2.2.0 and v2.2.0-rc1 notes: the container build removes the cap_ipc_lock capability, so Vault in containers can no longer call mlock() | Operators running a Vault container image built with this change | Set disable_mlock = true in Vault's configuration, as the notes instruct, and advise disabling swapping |
v2.2.0 and v2.2.0-rc1 notes: the container build sets the cap_ipc_lock capability on Vault | Operators whose runtime must grant the capability to the container | Add IPC_LOCK capabilities when running the Vault container, as the notes state |
v2.2.0 and v2.2.0-rc1 notes: gnupg, openssl and procps removed from UBI-based container images | Anyone whose startup scripts, health checks or troubleshooting steps call these packages | Find and change every call to these binaries |
| v2.2.0 and v2.2.0-rc1 notes: PostgreSQL storage prefers Azure Workload Identity over Managed Identity | Operators with Managed Identity-based PostgreSQL storage configurations | Migrate PostgreSQL authentication to Workload Identity, as the notes require for affected users |
v2.2.0 and v2.2.0-rc1 notes: ACME finalization with the default sign-verbatim directory policy rejects CSRs containing URI, email or Other SANs | Teams issuing certificates through ACME in Vault PKI | Remove those SAN types from CSRs, or set the override and accept the stated risk |
v2.2.0 notes (CHANGES): JWT revocation via auth/token/revoke-self and auth/token/revoke-accessor is no longer supported | Automation that revokes OAuth JWTs through these two endpoints | Review and update the automation; see the token section below |
Container images: the two cap_ipc_lock entries #
The first container entry in the v2.2.0 breaking changes states that the cap_ipc_lock capability is removed on Vault at build time, to allow Vault to run in common container runtimes. The same entry says that Vault in containers will no longer be able to call mlock() to lock memory. Operators are told to set disable_mlock = true in Vault's configuration. The notes also advise runtime operators to disable swapping to guarantee data safety.
The loss of mlock() is attributed only to that removal entry. The notes do not connect it to the second container entry, which is separate. That second entry states that the cap_ipc_lock capability is set on Vault at build time, and that container runtimes will need to add IPC_LOCK capabilities when running the Vault container. The v2.2.0-rc1 excerpt lists both entries in the same way.
The two entries describe the capability in opposite directions, and the notes do not say which build each one applies to. For that reason, this article does not decide which setting an image uses. Operators should check the build of the exact image they plan to run, and then follow the matching instruction: disable_mlock = true and disabled swapping for the removal build, or the IPC_LOCK capability at run time for the set build.
Note
The v2.2.0 notes list both cap_ipc_lock entries in the same breaking section without stating which build variant each applies to. Confirm the capability state of the image in a test environment before rollout.
The notes also state that the gnupg, openssl and procps packages have been removed from UBI-based container images. This is a separate entry from the capability entries. Any startup script, health check or troubleshooting step that calls one of these binaries will need changing, because the notes list their removal as a breaking change without offering a replacement.
PostgreSQL storage: Workload Identity over Managed Identity #
The physical/postgresql entry in the v2.2.0 notes is labelled a breaking change. PostgreSQL storage backend authentication now prefers Azure Workload Identity over Managed Identity. The notes state that go-pgmultiauth is updated to v1.1.0 for this change.
The notes state that existing Managed Identity-based PostgreSQL configurations may stop working if Workload Identity is configured. They also state that affected users must migrate PostgreSQL authentication to Workload Identity. The notes tie the possible failure to the presence of Workload Identity configuration, so an operator with Managed Identity settings should check whether Workload Identity is also configured in the same environment.
The notes give no fallback path and no timing for the migration. Scheduling the migration relative to the upgrade is the author's recommendation, not a statement from the notes. A staging check of storage connectivity before production is a reasonable way to confirm the change in a given environment.
ACME finalization and SAN types in PKI #
The PKI entry in the v2.2.0 notes changes ACME finalization under the default sign-verbatim directory policy. Finalization now rejects CSRs that contain URI SANs, email SANs or Other SANs. The notes give the reason as stated by the release: ACME challenges verify only DNS names and IP addresses, those other SAN types are never validated, and they must not appear in issued certificates.
Operators who need the previous behaviour can set default_directory_policy to sign-verbatim-unsafe in config/acme. The notes say that the resulting certificates may contain unverified identity claims, so the override is a choice that carries a stated consequence. The same entry appears in the v2.2.0-rc1 notes.
For ACME clients, the practical check is the CSR content. The notes do not describe any other way to issue certificates with these SAN types under the default policy. A team that wants to keep the default policy would need CSRs that carry only DNS names and IP addresses, which is the set the notes say ACME validates.
JWT revocation through token endpoints #
Under CHANGES, the v2.2.0 notes state that JWT revocation via auth/token/revoke-self and auth/token/revoke-accessor is no longer supported. They also state that auth/token/revoke and auth/token/revoke-orphan now require the full JWT to revoke an OAuth JWT, and that these two endpoints reject the internal stored JWT ID form. The notes add that non-JWT Vault token behaviour is unchanged.
Automation that revokes OAuth JWTs through revoke-self or revoke-accessor is the group the notes describe as affected. Automation that passes the internal stored JWT ID to revoke or revoke-orphan is also affected, because the notes say those endpoints reject that form. Scripts that handle only non-JWT Vault tokens fall outside the stated change.
The notes do not say to use revoke or revoke-orphan as a replacement for the removed endpoints. They state only that these two endpoints remain and require the full JWT. Moving revocation calls to them is an inference, and it should be checked against the behaviour in a test environment.
Release-note dating #
The v2.2.0-rc1 page text reads October 07, 2026, while the metadata for the same excerpt gives a date of 2026-10-08. The v2.2.0 notes are dated October 15, 2026. This article reports the dates as the excerpts show them and does not infer a release order beyond what the notes state.
Note
The rc1 excerpt provided ends partway through its CHANGES list. The entries cited here are the ones visible in that excerpt.
Upgrade checklist #
- Identify the Vault container image you run, and confirm from its build which
cap_ipc_lockstate applies, since the notes list both entries without saying which build each one applies to. - If the image is built with the removal entry, set
disable_mlock = truein Vault's configuration, as the notes instruct. Do not apply this setting to an image without that build, because the notes make it conditional on the removal. - For the removal build, disable swapping on the hosts, as the notes advise for data safety.
- For the set build, add IPC_LOCK capabilities to the container runtime configuration when running the Vault container, as the notes state.
- Search startup scripts, health checks and troubleshooting runbooks for
gnupg,opensslandprocps, and replace any calls to them in the UBI-based images. - Check each PostgreSQL storage configuration for Managed Identity use, and check whether Workload Identity is also configured. If both are present, migrate PostgreSQL authentication to Workload Identity, as the notes require for affected users.
- Review ACME clients and CSR templates for URI, email or Other SANs. Remove them, or decide explicitly to use
sign-verbatim-unsafeand accept the consequence the notes describe. - Search automation for calls to
auth/token/revoke-selfandauth/token/revoke-accessorthat revoke OAuth JWTs. Update those calls, and test whetherauth/token/revokeorauth/token/revoke-orphanwith the full JWT meets the same need. The choice of replacement is the author's inference. - Author's recommendation, not a stated requirement: run the changes above in a staging environment that matches production. Cover container start-up, storage connectivity, certificate issuance and token revocation.
- Author's recommendation, not a stated requirement: after staging passes, roll out to production and monitor start-up logs, storage authentication, certificate issuance and revocation results.
Key takeaways
The v2.2.0 breaking changes that need operator action are the container capability settings, the removal of three packages from UBI images, the PostgreSQL authentication migration, the ACME SAN rule, and the JWT revocation endpoint change. Each of these is stated in the Vault v2.2.0 release notes, and the container, PostgreSQL, PKI and token entries also appear in the Vault v2.2.0-rc1 release notes.
Sources
- Release v2.2.0 · hashicorp/vault · GitHub github.com · Oct 15, 2026
- Release v2.2.0-rc1 · hashicorp/vault · GitHub github.com · Oct 8, 2026
Edited and approved by Jarosław Krzemiński. Spotted a mistake? Report a correction or read the corrections policy.




Comments