SecuritySecrets management

HashiCorp Vault 2.2 explained: TPM login, post-quantum PKI and the October fixes

HashiCorp fixed four Vault security holes a week before 2.2 came out, and one of those fixes can quietly switch off old deny rules. Here's what Vault is, what 2.2 changes, and how to upgrade without breaking anyone's logins.

Cohash Security Practice October 2026 updated October 2026 21 min read 6 chapters 3-question check
part 1 of 38 · Platform releases, explained from scratch
VAULT 2.1 Bootstrap secret perhost Azure client secrets Sync from KV v2 RSA and ECDSA CAs VAULT 2.2 TPM-bound machinelogin Azure access tokens Database secretssync ML-DSA certificates

the 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.

in plain wordsRelease with security fixes

Vault keeps the keys your apps use, and 2.2 changes how some of those keys get handed out

HashiCorp Vault is where many companies keep the passwords, cloud keys and certificates their applications need. An app or a person logs in, usually with a Kubernetes account, a cloud role, LDAP or a certificate, and Vault's rules decide what they get. Version 2.2 adds new ways to log in and new kinds of certificates. Most of it needs the paid Enterprise edition; Community Edition is free. A week before 2.2, HashiCorp also fixed four security holes, and those fixes change how some of your existing rules behave, so whoever runs Vault has cleanup to do before upgrading.

think of it like this

Think of Vault as the key cabinet in a building's security office. Staff show a badge, and a list on the wall says which keys each badge may take. In October the cabinet maker fixed a flaw where a badge holder could write a name in odd capitals and walk past a 'never give this key out' line. The fix works, but every line on the wall written in mixed capitals has to be rewritten, or it stops protecting anything.

who should care
  • Companies that run HashiCorp Vault
  • Platform and DevOps teams
  • Security teams writing Vault policies
  • PKI and certificate owners
  • Enterprise customers on 1.19 LTS
  • Business owners whose IT runs Vault
chapter 01

Why it matters to you

Vault sits in front of database passwords, cloud keys and certificates. When an upgrade goes badly, apps can't fetch their secrets and stop working, so a Vault outage usually turns into an outage for everything behind it. When a policy quietly stops working, someone gets keys they were never meant to have, and an auditor will want to know why.

The October fixes raise the stakes on upgrade day. Three of the four holes need someone who already has a Vault login, and the ACME one only needs a certificate client. Patching closes them, but one fix makes old mixed-case deny rules stop matching anything. If nobody rewrites those rules first, the upgrade itself opens the gap it was meant to close.

Oct 15, 2026Vault 2.2.0 released
4Vault bulletins published October 7, fixed in 2.1.2
7breaking changes HashiCorp lists for 2.2.0 and later
2 + 1 + 3years of base, extended and sustained support per Vault Enterprise 2.x major release

Most of what's new is for Enterprise customers, so the budget conversation matters too. These are the teams that get 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.
what changesHow you get from your current Vault to 2.2 safelyMost of the risk sits in steps two and three. The cleanup has to come before the patch, and the binary swap at the end is the easy part.
  1. 01 You run 2.1.1 or older

    Your apps still get their secrets, but the four October holes are open. On Enterprise 1.x, anything below 1.21.12, 1.20.17 or 1.19.23 is in the same spot.

  2. 02 Clean up before patching

    Someone rewrites mixed-case deny rules in lowercase and moves plugin binaries into plugin_directory. If the patch goes on first, those deny rules fail open until they're rewritten.

  3. 03 Patch to a fixed release

    Move to 2.1.2, 2.2.0 or the fixed 1.x release for your line, or later. Then register again any plugin whose mount was skipped, and check SCIM connectors and AWS settings before 2.2.

  4. 04 Upgrade to 2.2 in order

    Upgrade standbys one at a time (stop, install, start, check the version, unseal), then shut down the active node so an upgraded standby takes over. Don't use step-down. On Enterprise replication, do secondaries before the primary.

  5. 05 Pilot the new features

    Check the 2.2.0 known issues: 2.2.1 fixes the TPM group bug, though the known-issues page still lists it as open, and the Azure rotation-time bug is open. Then try TPM login, Azure tokens or ML-DSA one at a time, each in its own change.

chapter 02

What changed in 2.2 and in the October fixes

Vault 2.2.0 at a glance

newTPM auth method

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.

newML-DSA certificates in PKI

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.

newAzure access tokens for static roles

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.

newTwo-credential rotation in Azure

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.

enhancedSecrets Sync covers database secrets

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.

enhancedLDAP secrets engine

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.

newVault Client, public beta

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.

changedSCIM provisioning is generally available

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.

enhancedTransit crypto agility and FF1

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.

enhancedTLS certificates reload without a restart

With tls_reload_interval set, server nodes check their certificate and key files and pick up a rotated certificate on their own.

removedHCP Link

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.

Then there are the security fixes. They came out a week before 2.2, and the table below shows the release that closes them for each line. Anyone on 2.2.0 already has them.

tableFixed releases for each line you might run
You runFixed in (or later)What to know
Community 2.x2.1.2 or 2.2.0HCSEC-2026-42 doesn't apply: Community has no namespaces
Community 1.x2.1.2 or 2.2.0No Community 1.x fix; this is a major-version jump, so rehearse it
Enterprise 2.x2.1.2 or 2.2.0All four bulletins apply where you use the feature
Enterprise 1.211.21.12Or move to 2.x
Enterprise 1.201.20.17Or move to 2.x
Enterprise 1.19 LTS1.19.23Extended maintenance ends April 2027
2.0.x, any editionNo 2.0 fix listed; move to 2.1.2 or 2.2.0Also covers the August fixes

Whatever line you're on, review your templated policies, then set deny_slash_in_templated_paths = true on every server and restart. It's off by default, even in 2.2.0.

Then came 2.2.1 on October 22. It closes a cache-key collision where a policy alias such as ./root or a/../root could resolve to Vault's root policy, the one that can do everything. Vault now refuses those aliases wherever a policy gets assigned: entities, groups, tokens, auth responses and the agent registry. HashiCorp hasn't put out a bulletin or a CVE for it yet, so a scanner that only matches CVEs won't flag it.

tableWhere the October 22 root-alias fix lives
You runMove toWhat else comes with it
Community or Enterprise 2.22.2.1Go 1.27.3; container images stop trusting eMudhra intermediate chains
Community or Enterprise 2.1No 2.1 fix listed; move to 2.2.1Every 2.2 breaking change, so rehearse it
2.0.x, any editionNo 2.0 fix listed; move to 2.2.1The 2.1 and 2.2 breaking changes too
Enterprise 1.211.21.13HCP Link removed, plus two sys/seal-status fields; check any monitoring that reads them
Enterprise 1.20No October 22 release listedMove to 1.21.13 or 2.2.1
Enterprise 1.19 LTS1.19.24HCP Link removed, plus two sys/seal-status fields; check any monitoring that reads them

Two things catch people out here. There's no 2.1.3, so on 2.1 the fix only arrives with the move to 2.2.1 and every 2.2 change that comes with it. And the Enterprise 1.21.13 and 1.19.24 patches remove HCP Link, the same change 2.2.0 made. The hcp_link_status and hcp_link_resource_ID fields drop out of the sys/seal-status response too, so check any monitoring that reads them. If your 1.x servers still carry the cloud stanza, take it out before you patch. Anything that was set up with a name like ./root will also start failing, so look for it 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.

tableOctober's four Vault bulletins, and what you'll notice once you've patched
BulletinWhat went wrongWho's exposedWhat 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 certificatePKI mounts with ACME on and the default directory policyURI, 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_directoryShamir-sealed clusters with an external plugin directory; needs an operator who can restore snapshotsEntries 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 namespacesVault Enterprise namespaces onlyPolicy 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 rulesDelegated admins with a broad allow rule next to a narrower deny, or denied_parameters restricting policy namesRules 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.

Here's how 2.2 lines up against the two releases before it. If you're still on 2.0, the bottom row is the list of things that'll bite you on the way.

tableIf you're on 2.0 or 2.1, this shows what moving to 2.2 adds and breaks
Item2.02.12.2
ReleasedApril 14, 2026September 1, 2026October 15, 2026
Latest patch on October 22, 20262.0.4 (August 4)2.1.2 (October 7)2.2.1 (October 22)
AI agent support (Agentic IAM)Public beta from 2.0.3Generally available, no activation flagGenerally available
SCIM provisioningBetaNo headline changeGenerally available, six breaking changes
Secrets SyncWorkload identity federation instead of static cloud credentialsNo headline changeDatabase secrets, several regions, destination encryption
PKIPublic CA integrationextra_names_from_csr on roles (2.1.1)ML-DSA certificates; CA key export and import
Machine identitySPIFFE JWT-SVIDsNo headline changeTPM auth method
Go toolchain in the changelog1.26.5 (2.0.4)1.26.8 (2.1.1)1.27.1 (2.2.0), 1.27.3 (2.2.1)
Breaking and notable changesCanonical request paths; rekey and generate-root need a token; Azure auth config beats env varsDuplicate HCL attributes fail; PostgreSQL storage prefers Azure workload identityAWS WIF beats env vars; six SCIM changes; HCP Link removed

Dates to plan around

  1. Aug 10, 2023
    HashiCorp announces the move to the Business Source License
  2. Feb 27, 2025
    IBM completes its HashiCorp purchase
  3. Oct 22, 2025
    Vault 1.21.0
  4. Apr 14, 2026
    Vault 2.0.0

    1.21 is followed by 2.0, not 1.22. Enterprise moves to IBM Support Cycle-2.

  5. Jun 17, 2026
    Vault 2.0.3

    AI agent support opens as a public beta.

  6. Aug 10-24, 2026
    HCSEC-2026-26, -27 and -32

    Three August Vault server bulletins: a LIST deny bypass, cross-namespace entity deletion and slash injection in templated policies.

  7. Sep 1, 2026
    Vault 2.1.0

    Agentic IAM is generally available.

  8. Oct 7, 2026
    Vault 2.1.2 and four bulletins

    Fixes four bulletins, HCSEC-2026-40 to -43.

  9. Oct 15, 2026
    Vault 2.2.0

    TPM login, ML-DSA certificates, SCIM out of beta.

  10. Oct 2026
    Vault Service Broker: expected removal
  11. Oct 22, 2026
    Vault 2.2.1, Enterprise 1.21.13 and 1.19.24

    Root-policy alias fix. On 1.x these patches also drop HCP Link, so check for the cloud stanza first.

  12. Apr 2027
    Vault 1.19 LTS extended maintenance ends

    allow_token_displayname in PKI is expected to go away too.

The version numbers have a story behind them. After IBM bought HashiCorp, Vault 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., and the release after 1.21 was called 2.0. You won't find a 1.22, and support dates now follow IBM's rules.

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.

chapter 03

What to do now

What to do now, by who you are

Business ownerthis week
  • Ask whoever runs Vault, your own team or a provider, which version every cluster runs. Then ask when it'll be on 2.2.1, or 1.21.13 or 1.19.24 on Enterprise 1.x.
  • Ask whether anyone has checked the deny rules for mixed-case names. If nobody knows, that's the first job, before any upgrade.
  • Decide whether TPM login or the Azure changes are worth an Enterprise licence. Most of 2.2's new features need one.
IT and operationsthis week
  • List every node with its version, edition, seal type and plugins. Standbys and DR or performance secondaries count too.
  • Patch to 2.1.2 or later now if you're below it. The October 22 root-alias fix needs 2.2.1, or 1.21.13 or 1.19.24 on Enterprise 1.x. Take a snapshot and a copy of the config first.
  • Plan 2.2 as a separate change with a rehearsal. Restore a production snapshot into an isolated test cluster and upgrade that first.
Platform and identity engineersbefore the upgrade
  • Rewrite ACL and Sentinel rules that name roles, users or policies in mixed case. Lowercase is the only form that still matches after the fix.
  • Check AWS auth and AWS secrets mounts that have both WIF and environment variables set. On 2.2, WIF wins.
  • Update SCIM connectors for the six 2.2 changes. Remove the HCP Link cloud stanza from server config.
  • Check your templated policies, then turn on deny_slash_in_templated_paths on every server and restart each one. It's off by default, so nobody gets it just by upgrading.
Security teamthis month
  • Look for broad allow rules sitting next to narrow deny rules, on any mount. Those are the policies HCSEC-2026-43 was about.
  • Find out who can restore Raft snapshots and who can assign policy names. Both rights matter for the October bulletins.
  • On PKI mounts with ACME, decide whether to require external account binding. It limits who can ask for a certificate.
  • Search entity, group and token policy lists for names like ./root or a/../root. Vault 2.2.1 refuses them, so whatever was set up that way stops working.
Check the version and look for mixed-case rulesexample output
$ vault status | grep -E 'Version|Sealed|HA Mode'
Sealed          false
Version         2.1.1
HA Mode         active
# below 2.1.2: October fixes missing
$ for p in $(vault policy list); do vault policy read "$p" | grep -nE 'path "[^"]*[A-Z]' | sed "s/^/$p: /"; done
ops: 7:path "auth/approle/role/Prod-Admin"
# role name in mixed case: lowercase it before patching
# only role, user, cert and policy names; leave KV paths alone

Vault upgrades in place: you stop the service, install the new binary, start it and unsealdefinitionVault starts up locked and can't read its own data until it's unsealed, with key shares from several people or an automatic seal. Every node needs it after an upgrade restart.. 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.1

  1. 01
    Take 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.

  2. 02
    Close 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). On every line, plan to turn on deny_slash_in_templated_paths. Then add the October 22 root-alias fix: 2.2.1, or 1.21.13 or 1.19.24 on Enterprise 1.x.

  3. 03
    Clean 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.

  4. 04
    Work 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.

  5. 05
    Rehearse 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.

  6. 06
    Upgrade production

    Back up data and configuration. Then, node by node: stop, install 2.2.1, start, check the version, unseal. Don't forget standbys and secondaries; HCSEC-2026-41's remediation names them explicitly.

  7. 07
    Adopt 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.

chapter 04

Harden so the next one hurts less

The diagrams below show what 2.2 changes in a typical estate. The habits after them are the ones that would have made October's cleanup a small job.

before

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.

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. 01 · WORKLOADS 02 · VAULT 2.1 CLUSTER 03 · OUTSIDE VAULT login with secret ID read static role rotate secret push KV secrets request certificate Linux host bootstrap secret delivered Application calling Azure holds the client secret AppRole auth role ID + secret ID Azure secrets engine static role returns secret Secrets Sync KV v2 source PKI secrets engine RSA, ECDSA or Ed25519 CAs Microsoft Entra ID app registration AWS Secrets Manager sync destination © Cohash · cohash.com
01 · WORKLOADS02 · VAULT 2.1 CLUSTER03 · OUTSIDE VAULT Linux host: bootstrap secret delivered Linux host bootstrap secretdelivered Application calling Azure: holds the client secret Applicationcalling Azure holds the clientsecret AppRole auth: role ID + secret ID AppRole auth role ID + secretID Azure secrets engine: static role returns secret Azure secretsengine static rolereturns secret Secrets Sync: KV v2 source Secrets Sync KV v2 source PKI secrets engine: RSA, ECDSA or Ed25519 CAs PKI secretsengine RSA, ECDSA orEd25519 CAs Microsoft Entra ID: app registration Microsoft EntraID app registration AWS Secrets Manager: sync destination AWS SecretsManager sync destination login with secret ID read static role rotate secret push KV secrets request certificate © Cohash · cohash.com
after

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.

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. 01 · WORKLOADS 02 · VAULT 2.2 CLUSTER 03 · OUTSIDE VAULT TPM-attested enroll request token stage next secret push on rotation request certificate Linux host with TPM 2.0 key never leaves the chip Application calling Azure receives an access token TPM auth method Enterprise Azure secrets engine tokens, staged rotation Secrets Sync KV v2 and database secrets PKI secrets engine adds ML-DSA (no ACME, OCSP) Microsoft Entra ID next secret staged early AWS and Google secretstores several regions © Cohash · cohash.com
01 · WORKLOADS02 · VAULT 2.2 CLUSTER03 · OUTSIDE VAULT Linux host with TPM 2.0: key never leaves the chip Linux host withTPM 2.0 key never leavesthe chip Application calling Azure: receives an access token Applicationcalling Azure receives an accesstoken TPM auth method: Enterprise TPM auth method Enterprise Azure secrets engine: tokens, staged rotation Azure secretsengine tokens, stagedrotation Secrets Sync: KV v2 and database secrets Secrets Sync KV v2 and databasesecrets PKI secrets engine: adds ML-DSA (no ACME, OCSP) PKI secretsengine adds ML-DSA (noACME, OCSP) Microsoft Entra ID: next secret staged early Microsoft EntraID next secret stagedearly AWS and Google secret stores: several regions AWS and Googlesecret stores several regions TPM-attested enroll request token stage next secret push on rotation request certificate © Cohash · cohash.com
side by sideDay to day on Vault 2.1 against Vault 2.2
Vault 2.1
  • 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
Vault 2.2
  • 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

Habits that make the next Vault release easier

  1. 01
    Keep policies in Git and test them

    Store every ACL and Sentinel policy in a repository and review changes like code. Add a check that fails on mixed-case role, user and policy names, so nobody writes a deny rule that quietly stopped matching in October.

  2. 02
    Don't pair broad allows with narrow denies

    A rule that allows role/* and then denies one role is fragile. Give each delegated admin an allow list of the roles they actually run instead. Okta, LDAP, RADIUS and SCIM names aren't covered by the October fix, so this matters most there.

  3. 03
    Guard snapshot restores and plugins

    Very few people should be able to restore a Raft snapshot. Keep every external plugin inside plugin_directory, and check the plugin catalog after any restore. A patched node refuses entries that point anywhere else.

  4. 04
    Lock down ACME issuance

    Require external account binding on ACME directories where you can, and use a role-based directory policy instead of sign-verbatim. Then only known clients can ask, and only for the names their role allows.

  5. 05
    Stay on the newest minor line

    HashiCorp doesn't backport fixes across 2.x minor releases, so falling behind leaves you waiting on fixes you can't get. Plan one rehearsed upgrade a quarter and keep the isolated test cluster around for it.

  6. 06
    Read the audit log for policy changes

    Send Vault's audit device output to your SIEM and alert on policy writes and snapshot restores. If someone takes advantage of a gap, that's where you'll see it first.

chapter 05

If the upgrade goes wrong

If the upgrade goes wrong

Vault doesn't roll back on its own, and its data store has no backward-compatibility guarantee. Your way back is the snapshot and config copy you took before the upgrade. Work through these in order, and don't keep upgrading other nodes while one is broken.

  1. 01Stop and holdfirst 15 minutes
    • Pause the rollout. Leave the nodes that haven't been touched on the old version.
    • Tell app owners that secret reads or logins may fail for a while. A short heads-up saves a lot of tickets.
  2. 02Find what brokefirst hour
    • Read the server log from the last start. Mounts skipped at startup usually mean a plugin sits outside plugin_directory.
    • If ACME renewals fail, check for URI, email or other SANs in the requests. The patched sign-verbatim policy rejects them.
    • If AWS logins or credentials change behaviour, check for WIF and environment variables set together. On 2.2 the WIF settings win.
    • If SCIM provisioning fails, check the connector against the six 2.2 changes, starting with the extension schema.
  3. 03Fix forward if you canfirst hours
    • Move the skipped plugin's binary into plugin_directory and register it again. Then restart the node and check that its mount is back.
    • sign-verbatim-unsafe brings the old ACME behaviour back. Treat it as a stopgap and set a date to switch it off.
    • Don't try to fix a fail-open deny rule by rolling back. Rewrite it in lowercase straight away.
  4. 04Roll backif fixing fails
    • Stop Vault, put the previous version back, and restore the pre-upgrade snapshot and config. Then start, check the version and unseal.
    • Make sure enough unseal key holders are on hand first. Anything written after the snapshot is gone, so note it down.
    • Rolling back below 2.1.2 reopens the October holes. Plan the next attempt within days, not months.
  5. 05Learn and retrynext week
    • Write down what the rehearsal missed and add it to the test plan. Then rehearse again on a fresh production snapshot.
    • Tell auditors or customers what happened if your contracts or rules say you must. Keep the timeline and the log excerpts.

Rollback is the last resort because a snapshot restore throws away recent writes, like rotated credentials and new leases. The failures listed above all come from documented behaviour changes, and each of those has a forward fix. Rehearsing on a production snapshot is what finds them before the change window does.

chapter 06

How this could play out

How this could play out

01 Team leadtoken 02 Allow role/* broad rule 03 Denyprod-admin rewritten lowercase 04 Productionrole
scenario 01High risk
A software company with delegated Vault admins
the setup
A mid-size software firm runs Community 2.1.1. A team lead's policy allows auth/approle/role/* and denies auth/approle/role/Prod-Admin, written exactly like that.
what happens
They patch to 2.1.2. Rules now match lowercase names, so the mixed-case deny stops matching and the broad allow wins. The team lead can now read and change the production admin role.
what to do
Rewrite the deny in lowercase before patching, or right after if it's too late. Better still, swap the broad allow for a list of the roles that team actually runs.
01 ACME client service mesh 02 CSR with URISAN 03 sign-verbatim patched 04 Certificateissued
scenario 02Medium risk
An internal PKI that renews certificates over ACME
the setup
A logistics company issues internal service certificates from Vault PKI over ACME, using the default sign-verbatim policy. Some service mesh certificates carry URI SANs.
what happens
After the patch, renewals with URI SANs are refused. The certificates keep working until they expire, and then those services can't talk to each other.
what to do
Before patching, list which clients ask for URI, email or other SANs. Move them to a role-based directory policy that allows those names. Use sign-verbatim-unsafe only as a short stopgap.
01 Primarycluster 1.19.23 02 Failover 03 DR secondary still unpatched 04 Plugins,namespaces October holes open
scenario 03High risk
An enterprise on 1.19 LTS with DR secondaries
the setup
A bank runs Shamir-sealed Vault Enterprise 1.19 with namespaces, a DR secondary in another region and a few external plugins. Extended maintenance for 1.19 ends in April 2027.
what happens
The team patches the primary to 1.19.23 but the DR secondary is missed. A failover later lands on the unpatched node, and the plugin and namespace fixes aren't there.
what to do
Patch secondaries first, then the primary, to 1.19.23 or later. Then budget the move to 2.x before April 2027, and rehearse it on a snapshot.

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.

key takeaways

What to take from this

  1. 01

    Vault 2.2.0 came out on October 15. A week later 2.2.1 followed with a root-policy alias fix, along with Enterprise 1.21.13 and 1.19.24. Treat those as the new minimums.

  2. 02

    Patch to 2.1.2 or later first. The October fixes change how deny rules, plugin paths and ACME behave.

  3. 03

    Rewrite mixed-case deny rules in lowercase before upgrading, or they stop protecting anything.

  4. 04

    If you use SCIM, expect six breaking changes in 2.2. Everyone else should check AWS: WIF now wins over environment variables.

  5. 05

    TPM auth, Azure access tokens and ML-DSA certificates are worth a pilot once the cluster is stable.

platforms in this noteHashiCorp Vault →
fact-checked October 2026 against vendor and official documentation · where to go next
  1. How Cohash delivers HashiCorp Vault: scope, roles and architecture
  2. Hire vetted HashiCorp Vault engineers
  3. Secrets and certificate management
  4. Book a 30-minute working session with a senior engineer
01Should we upgrade to Vault 2.2.1?

Yes, from 2.2.0 it's a small step, and its changelog has no breaking-changes section this time. You get the root-alias fix and Go 1.27.3, and the container images stop trusting eMudhra intermediate chains. Vault Agent picks up a SPIFFE auto-auth method. The MSSQL and MySQL code now quotes identifiers safely, and some Enterprise bugs are fixed too. From 2.1 it's the full 2.2 upgrade, so rehearse it. Enterprise 1.21 and 1.19 can take 1.21.13 or 1.19.24 instead.

02Is 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.

03Our scanner shows nothing for the Vault 2.2.1 root policy fix. Is there a CVE?

Not yet. HashiCorp's bulletin list has no Vault entry after the October 7 batch, and the 2.2.1 notes give no CVE for the policy fix. The one CVE they do name, CVE-2026-111943, is fixed by moving to Go 1.27.3.

04Which version fixes October's Vault holes?

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. The root-alias fix from October 22 needs 2.2.1, or Enterprise 1.21.13 or 1.19.24.

05Is 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.

06How 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.

07What 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.

08Do 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.

09Is Vault 2.2 free?

Community Edition is free, and it gets 2.2 too, ML-DSA certificates in PKI included. Most of the rest, like TPM login, Azure access tokens and the wider Secrets Sync, needs an Enterprise licence.

10Do we have to upgrade to 2.2 straight away?

You don't have to do it today. The October 7 fixes are already in 2.1.2, so get there first. On 2.x the October 22 root-alias fix exists only in 2.2.1, so book the move to 2.2.1 as a rehearsed change and don't let it slide to next quarter.

up next in this track

Keep the thread going.

What shipped, what changed underneath, and what it means for your upgrade.

  1. 01HashiCorp Vault 2.2 explained: TPM login, post-quantum PKI and the October fixes
  2. 02Upgrading to SailPoint IdentityIQ 9.0: what breaks and what to fix first
  3. 03Terraform 1.17 explained: what's new, who it touches and how we'd upgrade
  4. 04BeyondTrust Remote Support zero-day: patch it, then check who got in
  5. 05Patch PHP and Node.js this week: what broke and who's exposed
  6. 06OpenShift support dates through 2027: which clusters run out first and how to plan the upgrades
  7. 07Oracle's October security patches: what to fix first in EBS, PeopleSoft and Access Manager
  8. 08Oracle's eMudhra alert now covers Database Server: patch, then test what breaks
  9. 09Delinea Secret Server auth bypass: why the FIDO2 hotfix isn't enough
  10. 10IBM Verify Access flaws let attackers run code without a login: patch to 11.0.3.2
  11. 11Foundry Workflows retire on December 1. We'd start moving yours to Agent Framework now
  12. 12Vertex AI is retiring text-embedding-005 and three other embedding models: how to re-embed before search breaks
  13. 13dbt drops v1.3 to v1.7 from its platform on January 31, 2027: get pinned jobs onto a release track before they're deleted
  14. 14Brotli CVE-2026-111497 is now on CISA's exploited list, and you probably run more copies than you think
  15. 15Auth0 moved the Rules and Hooks deadline: Hooks stop on 30 April 2027, Rules on 31 January 2028
  16. 16Still on Okta Classic Engine? Three features stop working on March 5, 2027, and two of them block the upgrade
  17. 17Patched GitLab, still exposed: the CI regex bug CISA lists as exploited, and the Ruby step people miss
  18. 18Patched Ivanti Connect Secure in October? Two more exploited bugs, and the AD cleanup
  19. 19Patch roundup, week of Oct 26: upgrade Secret Server today, then work down the list
  20. 20UiPath 2023.10 support has run out and 2024.10 is next. What we'd upgrade first
  21. 21Password Safe 24.3 runs out of support in December, and 26.3 is still one upgrade away
  22. 22Upgrade Entra Connect Sync before April 2027 and move users off Microsoft's SMS codes
  23. 23Chrome drops XSLT on 17 November. What breaks in InterSystems, and the fix for your version
  24. 24Agent Builder, Evals and saved prompts shut on 30 November. Here's what to pull out first
  25. 25BeyondTrust Remote Support and PRA 24.3 lose support in November, and there's no one-step upgrade
  26. 26OpenShift 4.19 is running out of support. Do you park on 4.22 or keep going to 5.0?
  27. 27Terraform Enterprise 2.1 moves VCS ingress into your agents. What to change before October 2027
  28. 28Mule 4.12 Edge leaves standard support this month. Upgrade to 4.13 before CloudHub does it for you
  29. 29RSA SecurID primary support ends in stages from December. Here's how you get to 8.9
  30. 30Delinea Secret Server login bypass: why 12.2.7 won't save you from this 9.9
  31. 31Entra password reset won't take directory phone numbers from February 2027. Who gets stuck?
  32. 32Linux kernel CVE-2026-98432: why switching off MPTCP won't save you, and what to patch
  33. 33Patch roundup, week of Nov 2: fix Linux and WS_FTP first, then work down the list
  34. 34Auth0's lazy migration changes on 20 January 2027, and half-imported users won't fix themselves
  35. 35Your Databricks AI Functions need Runtime 17.3 LTS by January 2027, even if 15.4 is still supported
  36. 36SonicWall's SSL VPN bug lets a valid password skip SAML and your MFA
  37. 37Oversized Auth0 profiles can break logins after 4 March 2027. Here's how to find yours
  38. 38You patched your Cisco email gateway. One email can still take it over.
all learning tracks →
IDENTITYIQ 8.5 Java EE, javax.* Tomcat 9.x on Tomcatsites WebLogic, Solaris OK Start/end dates IDENTITYIQ 9.0 Jakarta EE 10,jakarta.* Jakarta EE 10servers WebLogic, Solarisdropped Start/end times,zones
Security · 20 minUpgrading to SailPoint IdentityIQ 9.0: what breaks and what to fix first

Same IdentityIQ on top, a new Java platform underneath.

read next
next step

Tell us what you're running. We'll tell you what we'd do first.

A 30-minute working session with a senior engineer. No slides.

useful to bring
  • The platform and the version you're on
  • Where you need to get to, and by when
  • What's custom: rules, plugins, integrations
  • Any audit finding or deadline driving it