CVE-2025-11621
High · 8.1HashiCorp Vault and Vault Enterprise's AWS Auth method may be susceptible to authentication bypass
CVSS
8.1
EPSS
0.5%
Published
Oct 23, 2025
CISA due date
—
Cloudanix analysis
A flaw in a popular secrets vault can let someone in a different Amazon account pretend to be a trusted identity when role names match or wildcards are used, exposing stored passwords and keys.
- Exploitation
- Remote Unauthenticated
- Attacker needs
- None
- Complexity
- Moderate
- Impact
- Full Compromise
- Component
- Application
- Class
- Authentication Bypass
- Remediation
- Upgrade
- Effort
- Low
- Patch risk
- Low
What it actually does
HashiCorp Vault and Vault Enterprise AWS Auth can fail to uniquely bind an IAM principal when bound_iam_principal (bound_iam_principal_arn) uses a role name that is not account-unique or includes a wildcard. Vault then treats a same-named IAM role in a different AWS account as the intended principal and issues a Vault token for the mapped auth role, bypassing intended AWS identity checks.
Why it matters to the business
An unauthorized party can obtain Vault tokens and read or mint secrets, cloud credentials, certificates, and encryption keys, enabling data exposure, downstream account takeover, and application outage. Vault is a common secrets backbone, so impact is organization-wide wherever AWS Auth is used with shared role names or wildcards. The issue is not in CISA KEV, has no public exploit maturity, and a low, flat EPSS (~0.49%), but CVSS 8.1 and ~one year since publication still warrant prompt patching of remaining unpatched clusters.
How an attack unfolds
An attacker finds a Vault cluster using AWS Auth and determines that a role is bound by a non-account-unique IAM role name or a wildcard ARN. They create or assume an IAM role with that same name in an AWS account they control, call STS to obtain valid AWS credentials, and submit those credentials to Vault’s AWS login API. Vulnerable matching logic accepts the foreign principal and returns a Vault token with the policies of the bound role. The attacker then uses the token to list and read secrets or generate dynamic credentials. No named threat actors or ransomware campaigns are associated with this CVE.
How to fix it
Upgrade Vault Community Edition to 1.21.0 or later, or Vault Enterprise to 1.21.0, 1.20.5, 1.19.11, or 1.16.27 (or later on the same streams). After upgrade, inventory every AWS auth role and replace wildcard or account-agnostic bound_iam_principal_arn values with fully qualified ARNs that include a specific AWS account ID. Prefer unique role names per account, restrict AWS Auth mount accessors and policies to least privilege, and rotate any secrets that could have been read if the misconfiguration was present. Source fix is also represented by commit 818ca8b3575ea937ca48b640baf35e1b2ede1833.
How to confirm the fix worked
Confirm running version is Community 1.21.0+ or Enterprise 1.21.0 / 1.20.5 / 1.19.11 / 1.16.27+. List AWS auth roles and verify every bound_iam_principal_arn is a fully qualified, non-wildcard ARN tied to an expected account. Attempt a login using an identically named IAM role from a non-bound AWS account in a controlled test and confirm the request is denied. Review Vault audit logs for successful aws logins whose account_id or client_arn is outside the approved account set.
Typical attack path
- Locate a Vault cluster with the AWS auth method enabled (commonly path auth/aws).
- Identify or infer bound IAM principal configuration that uses a shared role name across accounts or a wildcard ARN.
- Create or assume an IAM role with the matching name in an attacker-controlled AWS account.
- Obtain STS credentials for that role and submit them to Vault AWS login.
- Receive a Vault client token mapped to the misbound auth role.
- Use the token to read secrets, issue dynamic credentials, or perform other allowed Vault operations.
How to detect it
There is no public exploit or named actor activity; hunt for successful AWS Auth logins rather than malware artifacts. In Vault audit logs, search for successful requests to auth/aws/login (or custom AWS auth mount paths) where auth metadata account_id, client_arn, or canonical_arn is not in the approved AWS account list, or where inferred entity data does not match expected roles. Correlate those events with AWS CloudTrail AssumeRole, GetCallerIdentity, and sts:GetCallerIdentity activity from unexpected account IDs around the same timestamps. Review auth role config history and storage for bound_iam_principal_arn values containing '*' or role names without an account ID. Flag first-seen AWS account IDs authenticating to Vault and any subsequent secret-read or credential-issue operations under the issued token.
- auth/aws/login
- "type":"aws"
- bound_iam_principal_arn
- arn:aws:iam::*:role/
- canonical_arn
- client_arn
- inferred_entity_type
- sts:GetCallerIdentity
- eventName":"AssumeRole"
What your security team should do
- Patch all Vault Community and Enterprise clusters to the fixed versions above as a priority given CVSS 8.1 and secrets-manager blast radius, even though EPSS is low and the CVE is not KEV-listed.
- Immediately audit AWS auth roles for wildcard ARNs and role names reused across AWS accounts; tighten bindings before or during the upgrade window.
- Restrict which IAM principals can call Vault AWS login (VPC endpoints, IP allowlists, unique role names, and least-privilege Vault policies).
- Hunt historical Vault audit logs for successful AWS auth from unexpected AWS account IDs and rotate potentially exposed secrets if any are found.
- Add continuous config checks so new AWS auth roles cannot be created with wildcard or account-agnostic principal binds.
The record
Vault and Vault Enterprise's ("Vault") AWS Auth method may be susceptible to authentication bypass if the role of the configured bound_principal_iam is the same across AWS accounts, or uses a wildcard. This vulnerability is fixed in Vault Community Edition 1.21.0 and Vault Enterprise 1.21.0, 1.20.5, 1.19.11, and 1.16.27.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| Go | github.com/hashicorp/vault | 0.6.0 | 1.21.0 |
| Bitnami | vault | 0.6.0 | 1.21.0 |
| Chainguard | splunk-otel-collector | 0 | 0.139.2-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.139.2-r0 |
| 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-1.20-compat | 0 | 1.20.4-r1 |
| Chainguard | vault-fips-1.19-compat | 0 | 1.19.5-r8 |
| Chainguard | vault-fips-1.20-compat | 0 | 1.20.4-r1 |
| Wolfi | splunk-otel-collector | 0 | 0.139.2-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 |
| go | github.com/hashicorp/vault | 0.6.0 | 1.21.0 |
| openSUSE:Tumbleweed | govulncheck-vulndb | 0 | 0.0.20251105T184115-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-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
- CVE-2025-6014 Hashicorp Vault's TOTP Secrets Engine Susceptible to Code Reuse Also affects github.com/hashicorp/vault