CVE-2025-6037
Medium · 6.8Hashicorp Vault has Incorrect Validation for Non-CA Certificates
CVSS
6.8
EPSS
0.3%
Published
Aug 1, 2025
CISA due date
—
Cloudanix analysis
If a secrets vault is set up to trust a regular login certificate instead of a proper issuing authority, someone could fake another person's identity and read stored passwords and keys.
- Exploitation
- Remote Unauthenticated
- Attacker needs
- None
- Complexity
- Moderate
- Impact
- Full Compromise
- Component
- Application
- Class
- Authentication Bypass
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
HashiCorp Vault's TLS certificate authentication method fails to correctly validate client certificates when a non-CA (leaf or otherwise non-certificate-authority) certificate is configured as the trusted certificate. In that configuration, certificate chain and identity checks are insufficient, so a crafted client certificate can be accepted as authentic. Successful abuse yields a valid Vault token bound to another identity, constituting an authentication bypass of the cert auth method rather than a remote code execution or data-at-rest cryptographic break.
Why it matters to the business
Vault commonly holds production credentials, API keys, certificates, and encryption keys. An impersonation success can expose those secrets and enable follow-on access to downstream systems. Real-world exposure is limited to instances that use cert auth AND configure a non-CA certificate as trusted, so blast radius is configuration-dependent rather than universal. This is not listed in CISA KEV, has no reported ransomware use, exploit maturity is none, and EPSS remains very low and flat (~0.0025). The issue has been public for well over a year, so unpatched Vaults with the vulnerable cert-auth pattern still represent avoidable secrets-management risk rather than an active mass-exploitation emergency.
How an attack unfolds
An attacker who can reach a Vault listener that has the TLS certificate auth method enabled, and that trusts a non-CA certificate, presents a malicious client certificate during cert-auth login. Because validation does not correctly constrain the presented certificate against that non-CA trust entry, Vault may map the request to another configured identity and issue a client token. The attacker then uses that token like a legitimate user—listing and reading secrets, using leases, or calling other allowed APIs—until the token expires or is revoked. No named threat actors or in-the-wild campaigns are associated with this CVE; abuse requires both network reachability to the auth endpoint and the specific non-CA trust misconfiguration.
How to fix it
Upgrade Vault Community Edition to 1.20.1 or later, or Vault Enterprise to 1.20.1, 1.19.7, 1.18.12, or 1.16.23 (source fix: git commit b403b1a27c8db6038ffefb296d7be0962e08039d). After upgrade, configure cert auth trusted certificates as CA certificates only; do not use leaf or other non-CA certificates as the trusted certificate. Recreate or rotate cert-auth roles that were bound to non-CA trust material, revoke outstanding tokens issued via cert auth during the vulnerable window, and restrict network access to the Vault API to trusted clients.
How to confirm the fix worked
Confirm the running Vault version is Community 1.20.1+ or Enterprise 1.20.1 / 1.19.7 / 1.18.12 / 1.16.23+. Inspect cert auth configuration and ensure every trusted certificate entry is a CA (basic constraints CA:TRUE), not a leaf. Attempting cert-auth login with a certificate that is not correctly chained to a configured CA should fail after the fix. Review Vault audit logs for cert-auth logins around the upgrade to ensure expected identities still authenticate and unexpected ones do not.
Typical attack path
- Discover a Vault cluster that exposes the TLS certificate auth method
- Determine that a cert auth role or trusted-certificate entry is a non-CA certificate rather than a proper CA
- Identify a target identity (role, common name, or other cert-bound mapping) that the attacker wants to impersonate
- Authenticate to the cert auth login path with a crafted client certificate that the flawed validator accepts
- Receive a Vault client token associated with the impersonated identity
- Use the token to read secrets, generate dynamic credentials, or invoke other policies allowed to that identity
How to detect it
There is no public exploit kit or named actor activity to hunt for. Detection is therefore configuration- and audit-log based. Enable and review Vault audit logs for cert-auth login requests (typically against the cert auth login path) looking for successful authentications from unexpected client IPs, unusual certificate common names or serials, identities that should not have logged in, or bursts of cert-auth success after previous failures. Compare issued token accessors and display names against known certificate inventories. On the host, confirm whether cert auth was configured with a non-CA trusted certificate before the patch. Network logs to the Vault API port showing client-certificate TLS handshakes from untrusted sources are supporting evidence, not proof of exploitation. Because exploit maturity is none, treat anomalous cert-auth token use and secret reads as the primary post-compromise signals.
- auth/cert/login
- "type":"request" combined with path containing auth/cert/login
- "auth_type":"cert"
- vault audit display_name or alias tied to unexpected certificate CN/serial on cert auth success
- Vault token creation metadata showing cert auth from atypical source IPs immediately followed by secret-read operations
What your security team should do
- Inventory all Vault Community and Enterprise clusters and prioritize those with the TLS certificate auth method enabled
- Patch to Community 1.20.1 or Enterprise 1.20.1, 1.19.7, 1.18.12, or 1.16.23 without waiting for KEV or EPSS movement
- Audit cert auth trusted-certificate entries and replace any non-CA trust configuration with proper CA-based trust
- Revoke cert-auth-issued tokens created before the upgrade and rotate secrets those identities could have read
- Ensure Vault audit logging is enabled and retain cert-auth login records for historical review
- Limit network exposure of the Vault API and require additional auth factors or policy constraints where cert auth is still used
The record
Vault and Vault Enterprise (“Vault”) TLS certificate auth method did not correctly validate client certificates when configured with a non-CA certificate as [+trusted certificate+|https://developer.hashicorp.com/vault/api-docs/auth/cert#certificate]. In this configuration, an attacker may be able to craft a malicious certificate that could be used to impersonate another user. Fixed in Vault Community Edition 1.20.1 and Vault Enterprise 1.20.1, 1.19.7, 1.18.12, and 1.16.23.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| Go | github.com/hashicorp/vault | 0 | 1.20.1 |
| Bitnami | vault | 0 | 1.20.1 |
| Chainguard | splunk-otel-collector | 0 | 0.138.0-r0 |
| Chainguard | splunk-otel-collector-compat | 0 | 0.138.0-r0 |
| Chainguard | splunk-otel-collector-doc | 0 | 0.138.0-r0 |
| Chainguard | splunk-otel-collector-fips | 0 | 0.138.0-r1 |
| Chainguard | splunk-otel-collector-migratecheckpoint | 0 | 0.138.0-r0 |
| Chainguard | splunk-otel-collector-migratecheckpoint-compat | 0 | 0.138.0-r0 |
| Chainguard | vault-1.16-compat | 0 | 1.16.3-r26 |
| Chainguard | vault-1.17-compat | 0 | 1.17.6-r18 |
| Chainguard | vault-1.18-compat | 0 | 1.18.5-r15 |
| Chainguard | vault-1.19-compat | 0 | 1.19.5-r5 |
| Chainguard | vault-fips-1.19-compat | 0 | 1.19.5-r8 |
| SUSE:Linux Enterprise Module for Package Hub 15 SP6 | govulncheck-vulndb | 0 | 0.0.20250814T182633-150000.1.98.1 |
| Wolfi | splunk-otel-collector | 0 | 0.138.0-r0 |
| Wolfi | splunk-otel-collector-compat | 0 | 0.138.0-r0 |
| Wolfi | splunk-otel-collector-doc | 0 | 0.138.0-r0 |
| Wolfi | splunk-otel-collector-migratecheckpoint | 0 | 0.138.0-r0 |
| Wolfi | splunk-otel-collector-migratecheckpoint-compat | 0 | 0.138.0-r0 |
| openSUSE:Leap 15.6 | govulncheck-vulndb | 0 | 0.0.20250814T182633-150000.1.98.1 |
| openSUSE:Tumbleweed | govulncheck-vulndb | 0 | 0.0.20250811T192933-1.1 |
Related vulnerabilities
- CVE-2025-12044 Hashicorp Vault and Vault Enterprise vulnerable to a denial of service when processing… Also affects github.com/hashicorp/vault
- CVE-2025-11621 HashiCorp Vault and Vault Enterprise's AWS Auth method may be susceptible to… Also affects github.com/hashicorp/vault
- CVE-2025-6203 HashiCorp Vault Community Edition Denial of Service Though Complex JSON Payloads Also affects github.com/hashicorp/vault
- CVE-2025-6013 HashiCorp Vault ldap auth method may not have correctly enforced MFA Also affects github.com/hashicorp/vault
- CVE-2025-6000 Hashicorp Vault has Code Execution Vulnerability via Plugin Configuration Also affects github.com/hashicorp/vault
- CVE-2025-6011 Hashicorp Vault has an Observable Discrepancy on Existing and Non-Existing Users Also affects github.com/hashicorp/vault
- CVE-2025-5999 Hashicorp Vault has Privilege Escalation Vulnerability Also affects github.com/hashicorp/vault
- CVE-2025-6014 Hashicorp Vault's TOTP Secrets Engine Susceptible to Code Reuse Also affects github.com/hashicorp/vault