# Vault root privilege escalation via policy-name normalization

Source: https://startwithidentity.com/cves/cve-2025-5999/
Last updated: 2026-08-29
License: content by Start with Identity. Cite the source URL.

---

## What broke

Vault treated two policy names as different in the UI and as the same after normalization. A token with a look-alike policy could inherit root. CVSS 7.2. Fixed in the VaultFault train (1.20.2 and matching Enterprise).

## Why it matters

Policy-name tricks are the secrets-manager version of Unicode SPNs ([KerberLoss](https://startwithidentity.com/cves/cve-2026-25177/)). Humans read one string. The ACL engine reads another.

## What to do

- Upgrade. Then list policies for homoglyphs and unexpected aliases.
- Restrict `sys/policy` writes. A user who can create a policy name is now in your root-escalation model.

## After you patch

A vault compromise is not one credential, it is every credential the vault held or could issue.

- **Rotate everything in scope**, including secrets the vault issued dynamically during the exposure window, because a lease that was valid then may still be valid now.
- **Revoke active leases and tokens**, then review the audit device log for reads you cannot attribute to a known workload.
- **Rotate the vault's own credentials**: unseal or recovery keys, root tokens, and any authentication backend configuration that could be used to re-enter.
- **Rotate downstream credentials the vault brokered**, cloud roles, database users, and PKI certificates, since the point of the vault is that it can mint them. See [secrets rotation](https://startwithidentity.com/glossary/secrets-rotation/) and [what is secrets management](https://startwithidentity.com/guides/fundamentals/what-is-secrets-management/).

## Sources

- [NVD: CVE-2025-5999](https://nvd.nist.gov/vuln/detail/CVE-2025-5999)
- HCSEC-2025-22
