CVE-2024-2048
High · 8.1CVSS
8.1
EPSS
0.5%
Published
Mar 4, 2024
CISA due date
—
Cloudanix analysis
A secrets-management system could accept a fake login certificate and hand over stored passwords and keys if it was set up in an unusual way, so it should be updated and that setup should be avoided.
- 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
The TLS certificate authentication method incorrectly validates client certificates when a non-CA (leaf) certificate is configured as the trusted certificate. A crafted client certificate can be accepted as valid, bypassing certificate-based authentication and yielding a client token bound to the cert-auth mount and role policies, with high impact on confidentiality, integrity, and availability of stored secrets.
Why it matters to the business
Unauthorized parties could obtain secrets, encryption keys, and other credentials from the secrets manager, enabling follow-on access to applications and infrastructure. This is a high-severity authentication bypass (CVSS 8.1) but is not in CISA KEV, has no known in-the-wild use or ransomware association, and has a low, stable EPSS (~0.45%). Exploitation also requires an uncommon configuration (trusting a leaf certificate rather than a CA) and high attack complexity. Unpatched Vault 1.14.x/1.15.x and unpatched OpenBao remain overdue for upgrade nearly three years after disclosure.
How an attack unfolds
An unauthenticated attacker who can reach the secrets-manager HTTP API determines that certificate authentication is enabled and that a non-CA certificate is configured as trusted. They present a crafted client TLS certificate that the flawed validator incorrectly accepts. The service issues a normal authentication token as if a legitimate client had connected. The attacker then uses that token under the bound policy to list and read secrets or perform other authorized operations. No public exploit is known; success depends on network reachability plus the uncommon leaf-certificate trust setting.
How to fix it
Upgrade HashiCorp Vault to 1.15.5 or 1.14.10 or later, or upgrade OpenBao to a build that includes commit 700fe3f27ab1f0ec39ce20c36f6d9d97c9fe6ac3. Reconfigure the certificate auth method to trust only CA certificates (not leaf certificates). Restrict network access to the API, apply least-privilege policies on cert-auth roles, and rotate tokens and secrets that may have been issued via certificate auth while the vulnerable configuration was in place.
How to confirm the fix worked
Confirm the running version is Vault 1.15.5+, Vault 1.14.10+, or an OpenBao build containing commit 700fe3f27ab1f0ec39ce20c36f6d9d97c9fe6ac3. Inspect certificate auth method configuration and verify trusted material is a CA (basicConstraints CA:TRUE), not a leaf certificate. Confirm only legitimately issued client certificates authenticate and that unexpected certificates are rejected. Review audit logs for certificate-auth successes from the period the vulnerable configuration was active.
Typical attack path
- Reach the Vault or OpenBao HTTP API over the network
- Identify that the TLS certificate auth method is enabled
- Determine that a non-CA leaf certificate is configured as the trusted certificate
- Present a crafted client certificate that the flawed validator accepts
- Receive a valid authentication token
- Use the token to read secrets and perform operations allowed by the bound policy
How to detect it
There is no public exploit and no named threat-actor activity, so look for abuse of normal certificate-auth flows rather than unique malware. Enable and review Vault/OpenBao audit logs for auth/cert/login successes, especially from unexpected source IPs, unusual certificate subjects or common names, or clients that do not match known inventory. Correlate successful cert-auth tokens with subsequent secret-read and lease operations. Check configuration history and snapshots for a non-CA certificate configured as trusted on the cert auth method. Network logs to the API on the cert-login path from unknown clients are also relevant. Absence of those events does not prove non-exploitation if audit logging was off.
- auth/cert/login
- /v1/auth/cert/login
- "type":"cert"
- auth.cert.login
- request.path":"auth/cert/login
What your security team should do
- Patch Vault to 1.15.5 / 1.14.10+ or OpenBao to commit 700fe3f27ab1f0ec39ce20c36f6d9d97c9fe6ac3 immediately if certificate auth is enabled
- Inventory cert-auth mounts and remove any trusted leaf (non-CA) certificates; trust only CAs
- Restrict network exposure of the API and require mTLS or other controls in front of it
- Hunt audit logs for historical auth/cert/login successes and unexpected certificate subjects or display names
- Rotate tokens, leases, and high-value secrets that could have been obtained via cert auth before the patch
- Tighten cert-auth role policies to least privilege and enable detailed audit logging if it is not already on
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. In this configuration, an attacker may be able to craft a malicious certificate that could be used to bypass authentication. Fixed in Vault 1.15.5 and 1.14.10.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| Go | github.com/hashicorp/vault | 0 | 1.14.10 |
| Go | github.com/hashicorp/vault | 1.15.0 | 1.15.5 |
| Bitnami | vault | 1.15.5 | 1.16.0 |
| Chainguard | k3d | 0 | 5.6.0-r11 |
| Chainguard | k3d-proxy | 0 | 5.6.0-r11 |
| Chainguard | k3d-tools | 0 | 5.6.0-r11 |
| Chainguard | vault-1.14 | 0 | 0 |
| Chainguard | vault-1.14-compat | 0 | 0 |
| Chainguard | vault-1.14-entrypoint | 0 | 0 |
| Chainguard | vault-1.16 | 0 | 0 |
| Chainguard | vault-1.16-compat | 0 | 0 |
| Chainguard | vault-fips-1.14 | 0 | 0 |
| Chainguard | vault-fips-1.14-compat | 0 | 0 |
| Chainguard | vault-fips-1.16 | 0 | 0 |
| Chainguard | vault-fips-1.16-compat | 0 | 0 |
| Wolfi | k3d | 0 | 5.6.0-r11 |
| Wolfi | k3d-proxy | 0 | 5.6.0-r11 |
| Wolfi | k3d-tools | 0 | 5.6.0-r11 |
| Wolfi | vault-1.14 | 0 | 0 |
| Wolfi | vault-1.14-compat | 0 | 0 |
| Wolfi | vault-1.14-entrypoint | 0 | 0 |
| go | github.com/hashicorp/vault | 1.15.0 | 1.15.5 |
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-6037 Hashicorp Vault has Incorrect Validation for Non-CA Certificates 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