HashiCorp Vault 2.2 explained: TPM login, post-quantum PKI and the October fixes
Vault 2.2.0 shipped on October 15, 2026, a week after four Vault security bulletins. What's new, what breaks, how 2.2 compares with 2.0 and 2.1, and the order we'd upgrade in.
part 1 of 3 · Platform releases, explained from scratchthe ideaVault 2.2: TPM-bound host login, Azure tokens without secrets, ML-DSA certs.
after reading, you can- Explain to whoever owns the budget which 2.2 features need Enterprise
- Spot the policies and plugins that will behave differently after the October fixes
- Set up an upgrade to 2.2 that clears the breaking changes before the binary swap
HashiCorp shipped Vault 2.2.0 on October 15, 2026, eight days after a security release that closed four Vault bulletins. If you pay for Enterprise, you get machine login tied to a TPMdefinitionShort for Trusted Platform Module: a chip in a server, or a virtual one in a VM, that creates keys you can't copy off it. Vault 2.2 can tie a machine's login to that chip. chip and a much wider Secrets Sync, and everyone gets post-quantum ML-DSAdefinitionA post-quantum digital signature algorithm. Vault 2.2's PKI engine can sign certificates with it, but those CAs can't use ACME or OCSP yet. certificates in PKI. You also get seven breaking changes. Six only matter if you use SCIMdefinitionSCIM is the protocol an identity provider uses to create, change and delete users and groups in other systems. Vault Enterprise can be on the receiving end.; the seventh, an AWS credential change, hits Community Edition too. Any node below 2.1.2, or below 1.21.12, 1.20.17 or 1.19.23 on Enterprise 1.x? Read the security chapter before the feature list.
What changed in Vault 2.2
Vault 2.2.0 at a glance
Linux machines with a TPM 2.0 chip enroll once, get a client certificate from Vault whose private key never leaves the chip, and log in with it. Enterprise.
The PKI engine can issue X.509 certificates signed with ML-DSA, a post-quantum signature algorithm. ML-DSA CAs can't serve ACME or OCSP yet.
Developers can now get an OAuth2 access token straight from a static role and call Azure with it. They never see the client secret. Needs Enterprise.
Vault stages the next client secret in Azure ahead of time, and by default it becomes active five minutes before the current one expires. Existing mounts have to opt in. It works on static roles, which need Enterprise.
Static and rotating database credentials now sync to cloud secret stores, to more than one AWS or Google Cloud region, with optional encryption at the destination. Enterprise.
You get rotate-on-read for static roles nobody uses often, scheduled health checks, and a way to clear Active Directory lockouts on root-managed roles. Enterprise.
A smaller binary with Vault Agent, Vault Proxy and a limited set of CLI commands, and no server. Shipped as zip bundles and Alpine images. Enterprise.
SCIM is out of beta, so your identity provider or IGA tool can create Vault users and groups for you. Expect six breaking changes if you already run SCIM connectors.
Transit keys can switch algorithm without anyone downstream changing their config. Transform picks up FF1 format-preserving encryption plus a rewrap endpoint. Both need Enterprise.
With tls_reload_interval set, server nodes check their certificate and key files and pick up a rotated certificate on their own.
Self-managed clusters no longer open an HCP Link connection, and the cloud stanza in server configuration has no effect.
TPM auth is the change we'd look at first. Every Vault rollout has to get a first credential onto a new machine, usually an AppRole secret ID or a certificate, and whatever gets delivered can be copied off the host. With the TPM method an operator enrolls the machine's TPM once. From then on the machine runs a two-step enrollment, receives a certificate whose key was generated inside the chip, and logs in with it. You need Enterprise and a TPM 2.0 chip, physical or virtual.
ML-DSA in PKI gives you somewhere to start testing post-quantum certificates, with limits. HashiCorp's PKI guidance says ML-DSA CAs don't support ACME or OCSP yet. So revocation has to go through CRLs, and the clients reading those certificates have to be able to validate ML-DSA signatures before any of this is useful in production.
The Azure changes fix two practical problems. A static role can now return an OAuth2 access token in place of the client secret, so a platform team can let developers call Azure without handing them a credential they could reuse elsewhere. Separately, two-credential rotation stages the next secret ahead of expiry, because Azure needs time to replicate a new secret and an application that switches too early gets rejected. Mounts you already have don't change until you set seamless_rotation to true.
Secrets Sync copies secrets out of Vault into cloud secret stores for applications that can only read from those. Until 2.2 the source was KV v2. Now database static-role credentials can sync too, and Vault pushes the new value whenever one rotates. Destinations in AWS Secrets Manager and Google Cloud Secret Manager can span several regions and can be encrypted with the cloud provider's own keys.
There's a long tail of smaller changes. You can read and recover KV v2 secrets from a loaded snapshot, give AD and LDAP roles their own password policy, and rotate the Terraform secrets engine's root token. Vault Secrets Operator 1.6 delivers rotated secrets straight away. The GUI gets an upgrade analyzer, a Terraform code generator and a YAML view for KV secrets that hides values until you ask.
The October security fixes come first
On October 7 HashiCorp published four Vault bulletins and shipped fixes in Community 2.1.2 and Enterprise 2.1.2, 1.21.12, 1.20.17 and 1.19.23. The 2.2.0 changelog carries the same fixes. Three of them need authenticated or privileged Vault access, and the ACME one only needs an ACME client unless you require external account binding. Each one also changes how Vault behaves once you've patched, so they belong in the upgrade plan and not only in the patch queue.
| Bulletin | What went wrong | Who's exposed | What changes after the fix |
|---|---|---|---|
| HCSEC-2026-40 (CVE-2026-105818) | ACME under the default sign-verbatim policy could put SANs that no challenge verified into a certificate | PKI mounts with ACME on and the default directory policy | URI, email and other SANs are rejected; sign-verbatim-unsafe brings the old behavior back |
| HCSEC-2026-41 (CVE-2026-105816) | Plugin catalog entries restored from a Raft snapshot could run a binary outside plugin_directory | Shamir-sealed clusters with an external plugin directory; needs an operator who can restore snapshots | Entries outside the directory are refused and their mounts skipped at startup; register those plugins again |
| HCSEC-2026-42 (CVE-2026-105820) | Policy names with path traversal could resolve policies from other namespaces | Vault Enterprise namespaces only | Policy names with . or .. segments are rejected for new writes and ignored on existing tokens |
| HCSEC-2026-43 (CVE-2026-89322) | Mixed-case or padded names could get past explicit deny rules | Delegated admins with a broad allow rule next to a narrower deny, or denied_parameters restricting policy names | Rules are matched against lowercase names; mixed-case rules must be rewritten |
HCSEC-2026-43 is the one most likely to hurt on upgrade day. After the fix, ACL and Sentinel rules for AppRole, AWS, Azure, GCP, Kubernetes and several other resource names are matched against the lowercase name. HashiCorp's changelog uses auth/approle/role/MyRole as its example and says plainly that existing deny rules with mixed-case names will fail open after the upgrade until they're rewritten in lowercase. Okta group names, LDAP and RADIUS names on mounts left case-insensitive (the default), and Enterprise SCIM client names aren't covered by the fix, so keep broad allow rules away from narrow denies on those.
Coming from 2.0.3 or earlier? The August bulletins apply as well: HCSEC-2026-27 and -32 up to 2.0.3, and HCSEC-2026-26 up to 2.0.2. HCSEC-2026-26 let a LIST request with a trailing slash skip a narrower wildcard deny and list the entry names beneath it, though not their values. HCSEC-2026-27 let an Enterprise caller delete entities belonging to another namespace. HCSEC-2026-32 is the odd one out. Patching to 2.0.4 or later isn't enough on its own: you also have to set deny_slash_in_templated_paths = true on every server and restart, because the option defaults to false.
Vault 2.0, 2.1 and 2.2 side by side
| Item | 2.0 | 2.1 | 2.2 |
|---|---|---|---|
| Released | April 14, 2026 | September 1, 2026 | October 15, 2026 |
| Latest patch on October 22, 2026 | 2.0.4 (August 4) | 2.1.2 (October 7) | 2.2.1 (October 22; release notes not yet posted) |
| AI agent support (Agentic IAM) | Public beta from 2.0.3 | Generally available, no activation flag | Generally available |
| SCIM provisioning | Beta | No headline change | Generally available, six breaking changes |
| Secrets Sync | Workload identity federation instead of static cloud credentials | No headline change | Database secrets, several regions, destination encryption |
| PKI | Public CA integration | extra_names_from_csr on roles (2.1.1) | ML-DSA certificates; CA key export and import |
| Machine identity | SPIFFE JWT-SVIDs | No headline change | TPM auth method |
| Go toolchain in the changelog | 1.26.5 (2.0.4) | 1.26.8 (2.1.1) | 1.27.1 |
| Breaking and notable changes | Canonical request paths; rekey and generate-root need a token; Azure auth config beats env vars | Duplicate HCL attributes fail; PostgreSQL storage prefers Azure workload identity | AWS WIF beats env vars; six SCIM changes; HCP Link removed |
Dates to plan around, October 2025 through the 1.19 LTS cutoff in April 2027
- Oct 22, 2025Vault 1.21.0
- Apr 14, 2026Vault 2.0.0
1.21 is followed by 2.0, not 1.22. Enterprise moves to IBM Support Cycle-2.
- Jun 17, 2026Vault 2.0.3
AI agent support opens as a public beta.
- Aug 10-24, 2026HCSEC-2026-26, -27 and -32
Three August Vault server bulletins: a LIST deny bypass, cross-namespace entity deletion and slash injection in templated policies.
- Sep 1, 2026Vault 2.1.0
Agentic IAM is generally available.
- Oct 7, 2026Vault 2.1.2 and four bulletins
HCSEC-2026-40 to -43, also fixed in Enterprise 1.21.12, 1.20.17 and 1.19.23.
- Oct 15, 2026Vault 2.2.0
TPM auth, ML-DSA in PKI, SCIM generally available, wider Secrets Sync.
- Oct 2026Vault Service Broker: expected removal
- Oct 22, 2026Vault 2.2.1 binaries published
- Apr 2027Vault 1.19 LTS extended maintenance ends
Also the expected removal date for the PKI allow_token_displayname parameter.
Some history explains the version numbers. IBM finished buying HashiCorp in February 2025, Vault has been under the Business Source License since August 2023, and in April 2026 Vault went from 1.21 straight to 2.0 when Enterprise moved to IBM's Support Cycle-2definitionIBM's support model for Vault 2.x. Two years of base support, one year of extended support, and then three years where you can still open cases but won't get new fixes..
Support for Vault Enterprise works differently on 2.x. Under IBM's Support Cycle-2, each major release gets two years of base support, a year of extended support with critical fixes and limited security patches, and then three years of sustained support where you can still open cases but get no new fixes. HashiCorp also says it doesn't backport fixes across minor releases within a major release. In practice, future 2.x fixes will show up on the newest minor line rather than on 2.1. Enterprise customers still on 1.19 LTS have extended maintenance until April 2027.
Architecture and upgrade path
Before: workloads and Vault 2.1
On 2.1 a new Linux host needs a bootstrap secret such as an AppRole secret ID, Azure static roles hand out the client secret itself, and Secrets Sync copies KV v2 secrets.
Read the diagram as text
- Linux host → AppRole auth: login with secret ID
- Application calling Azure → Azure secrets engine: read static role
- Azure secrets engine → Microsoft Entra ID: rotate secret
- Secrets Sync → AWS Secrets Manager: push KV secrets
- Linux host → PKI secrets engine: request certificate
After: workloads and Vault 2.2
Same picture on 2.2. The host now has a TPM 2.0 chip and logs in with a certificate tied to it. The app asks Azure's static role for an access token, and Sync pushes database credentials to several regions.
Read the diagram as text
- Linux host with TPM 2.0 → TPM auth method: TPM-attested enroll
- Application calling Azure → Azure secrets engine: request token
- Azure secrets engine → Microsoft Entra ID: stage next secret
- Secrets Sync → AWS and Google secret stores: push on rotation
- Linux host with TPM 2.0 → PKI secrets engine: request certificate
- A new Linux host needs an AppRole secret ID or certificate delivered at bootstrap
- The app is handed the real Azure client secret, which it could reuse anywhere
- Secrets Sync reads from KV v2
- PKI CAs use RSA, ECDSA or Ed25519 keys
- A rotated server TLS certificate needs a restart or SIGHUP
- SCIM provisioning is a beta feature
- Enroll a TPM 2.0 host once and it logs in with a certificate whose key stays on the chip
- The app can ask the static role for an OAuth2 access token and never see the secret
- Database static roles can sync too, to several regions if you want
- PKI can also issue ML-DSA certificates, without ACME or OCSP for now
- tls_reload_interval picks up a rotated certificate on its own
- SCIM leaves beta, and connectors have to follow stricter rules
Vault upgrades in place: you stop the service, install the new binary, start it and unseal. What makes them risky is the list of behavior changes between your version and the target, so the order of work below puts the cleanup before the binary swap.
Upgrading to Vault 2.2
- 01Take stock of every node
Record version, edition, storage backend, seal type and external plugins on every node, including standbys and performance and DR secondaries. Note whether you use SCIM, AWS auth or secrets with workload identity federation, ACME on PKI mounts, HCP Link or Vault Service Broker.
- 02Close the October bulletins
If anything runs below 2.1.2 (or 1.21.12, 1.20.17 or 1.19.23 on Enterprise 1.x), read HCSEC-2026-40 to -43 and do the preparation each one asks for. On 2.0.3 or earlier, add the August bulletins (HCSEC-2026-26 only matters up to 2.0.2) and plan to turn on deny_slash_in_templated_paths.
- 03Clean up policies and configuration
Rewrite ACL and Sentinel rules that name roles, users or policies in mixed case. Rename policies whose names contain . or .. segments. Remove duplicate HCL attributes from configuration and policy files, since Vault now refuses them.
- 04Work through the 2.2 breaking changes
Where AWS environment variables and WIF are both configured, WIF now wins. SCIM connectors must declare their extension schema, client deletion needs an explicit cleanup option, and case-only duplicate client names have to go. Remove the cloud stanza HCP Link used.
- 05Rehearse on a production snapshot
Restore a snapshot into a test cluster on an isolated network, as HashiCorp's upgrade guide describes, so the test copy can't revoke live credentials. Upgrade it, then test auth methods, secrets engines, plugins and the workflows people actually run.
- 06Upgrade production
Back up data and configuration. Then, node by node: stop, install, start, check the version, unseal. Don't forget standbys and secondaries; HCSEC-2026-41's remediation names them explicitly.
- 07Adopt new features one at a time
Once the cluster is stable, roll out TPM auth, Azure access tokens, two-credential rotation or ML-DSA as separate changes. Existing Azure mounts don't get two-credential rotation until you set seamless_rotation=true, but new mounts get it by default unless you set it to false.
Who gets the most out of 2.2
- Platform teams running Linux fleets on TPM 2.0 hardware or virtual TPMs, who can stop delivering a bootstrap secret to each new machine.
- Teams that put Azure static roles in Vault. Access tokens keep the client secret away from developers, and staged rotation reduces availability problems after a rotation.
- Identity teams that provision Vault from an identity provider or IGA tool. SCIM is now generally available, but connectors need updating first.
- PKI owners starting post-quantum work, who can issue ML-DSA test certificates as long as they don't need ACME or OCSP.
- Application teams that read secrets from AWS Secrets Manager or Google Cloud Secret Manager and now want database credentials synced there as well.
- Anyone delegating Vault administration with deny rules. The October fixes close the case-variant bypass, but only after the rules are rewritten in lowercase.
We treat Vault upgrades as rehearsed changes. We read the breaking changes for every hop, restore a production snapshot into an isolated test cluster, test plugins and auth methods there, and only then touch production. If you're planning the move to 2.2, or weighing whether TPM auth and the Azure changes justify Enterprise, our HashiCorp Vault page explains how we work. You can also bring in Vault engineers for the upgrade, or start with an assessment of your current cluster.
What to take from this
- 01
Vault 2.2.0 shipped October 15, 2026; 2.2.1 binaries were up by October 22.
- 02
Patch to 2.1.2 or later first. The October fixes change how deny rules, plugin paths and ACME behave.
- 03
Rewrite mixed-case deny rules in lowercase before upgrading, or they stop protecting anything.
- 04
If you use SCIM, expect six breaking changes in 2.2. Everyone else should check AWS: WIF now wins over environment variables.
- 05
TPM auth, Azure access tokens and ML-DSA certificates are worth a pilot once the cluster is stable.
01Is Vault 2.2 an upgrade or a migration?
It's an in-place upgrade: stop the service, install the new binary, start it and unseal. From 2.0 or 2.1 it's a minor version step, but you still need to clear the breaking changes listed for 2.1 and 2.2, plus the 2.0.1 and 2.0.2 entries if you're on an earlier 2.0 patch. From 1.x you also cross the 2.0 changes, such as canonical request paths and authenticated rekey and generate-root endpoints.
02What version do I need for the October 2026 Vault security fixes?
You need Community 2.1.2, or Enterprise 2.1.2, 1.21.12, 1.20.17 or 1.19.23. All shipped October 7, 2026, and 2.2.0 includes the same fixes. HCSEC-2026-42 hits Enterprise only, because Community has no namespaces.
03Is TPM auth available in Vault Community Edition?
No. The TPM auth method needs a Vault Enterprise license and a machine with a TPM 2.0 chip, physical or virtual. The 2.2.0 changelog does move the CLI side of TPM login into Community, but the auth method on the server is Enterprise.
04How long is Vault 2.x supported?
Vault Enterprise 2.x follows IBM Support Cycle-2: two years of base support for each major release, one year of extended support, then three years of sustained support with case access but no new fixes. HashiCorp doesn't backport fixes across minor releases within a major release, so stay on the latest fix release.
05What happened to HCP Link in Vault 2.2?
It's removed. Self-managed clusters no longer connect to HCP through HCP Link, the cloud stanza in server configuration has no effect, and vault status and vault operator diagnose no longer report it. Take the stanza out of your configuration during the upgrade.
06Do I need to do anything after patching HCSEC-2026-32?
Yes. Upgrading to 2.0.4 or a later fixed release adds the protection, but deny_slash_in_templated_paths defaults to false. Set it to true on every server, or set VAULT_DENY_SLASH_IN_TEMPLATED_PATHS, and restart each node after checking your templated policies.
Three questions, about a minute
Pick an answer and we'll tell you if it's right, and why it is or isn't. The score stays in this browser.
-
Q1A delegated admin policy allows auth/approle/role/* and denies auth/approle/role/Prod-Admin. What happens after upgrading to 2.1.2 or 2.2?
show the answer
B. The deny quietly stops working and the allow wins until you lowercase the rule After the HCSEC-2026-43 fix, rules for these resources are matched against the lowercase name. A mixed-case deny no longer matches anything, so the broader allow wins until you rewrite it.
-
Q2Some services renew certificates over ACME and the team wants post-quantum ones. Can Vault 2.2 help yet?
show the answer
C. ML-DSA certificates are possible, but ML-DSA CAs can't serve ACME yet HashiCorp's PKI guidance says ML-DSA backed CAs don't support ACME or OCSP yet, so ACME-renewed services have to stay on RSA, ECDSA or Ed25519 for now.
-
Q3You upgraded from 2.0.2 to 2.2.0 to close HCSEC-2026-32, the templated-policy slash injection. Are you done?
show the answer
A. No, you also set deny_slash_in_templated_paths = true on every server and restart It defaults to false. The bulletin says to turn it on for every server after upgrading, check your existing templates first, and restart each node.