CVE-2025-6000
Critical · 9.1Hashicorp Vault has Code Execution Vulnerability via Plugin Configuration
CVSS
9.1
EPSS
0.9%
Published
Aug 1, 2025
CISA due date
—
Cloudanix analysis
A highly privileged administrator of the secrets system can, when a plugin folder is enabled, run programs on the server that holds those secrets and put stored credentials at risk.
- Exploitation
- Remote Authenticated
- Attacker needs
- High Privilege
- Complexity
- Moderate
- Impact
- Full Compromise
- Component
- Application
- Class
- RCE
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
A privileged Vault operator in the root namespace who can write to sys/audit can cause the Vault process to execute attacker-controlled code on the host when plugin_directory is set. This is a breakout from Vault administrative control to OS-level execution as the Vault service account, with access to process memory, local configuration, unseal/auto-unseal material if present on disk, and all secrets the node can reach. It is not unauthenticated remote code execution; it requires an already-powerful operator token and a specific configuration.
Why it matters to the business
If a Vault administrator account is malicious or stolen, the attacker can leave the secrets platform and take over the underlying server, threatening the confidentiality of production credentials, certificates, and encryption keys and enabling persistence or ransomware against systems that depend on Vault. The issue is high-severity (CVSS 9.1) but currently low likelihood of mass exploitation: it is not in CISA KEV, EPSS is about 0.009 with no 30-day rise, exploit maturity is none, and no named campaigns are associated. Residual risk is mainly insider abuse and post-compromise token reuse. Instances still unpatched more than a year after the 2025-08-01 fix remain exposed wherever plugin_directory is enabled.
How an attack unfolds
An attacker first obtains a highly privileged Vault identity in the root namespace with write permission on sys/audit (stolen token, compromised IdP mapping, or a malicious operator). They confirm the server is configured with a plugin directory. They then misuse audit-device configuration so Vault loads and runs code from that directory in the Vault process, yielding a host shell or implant as the Vault user. From there they harvest tokens, secrets, and host credentials. No public exploit or ransomware use is reported; treat this as a privileged breakout, not an internet worm.
How to fix it
Upgrade to a fixed release: Vault Community Edition 1.20.1 or Vault Enterprise 1.20.1, 1.19.7, 1.18.12, or 1.16.23 (upstream fix commit b403b1a27c8db6038ffefb296d7be0962e08039d). Until patched, do not set plugin_directory unless required; restrict write to sys/audit to the smallest set of break-glass identities; avoid sharing root-namespace operator tokens; run Vault as a non-root user with a tight filesystem policy on the plugin path; and treat operator tokens as production-privileged credentials (short TTL, MFA, tight audit).
How to confirm the fix worked
Confirm every Vault cluster reports a fixed version (CE 1.20.1 or Enterprise 1.20.1 / 1.19.7 / 1.18.12 / 1.16.23). Inventory HCL/JSON config and runtime for plugin_directory; if present, justify it and lock down directory permissions. Review policies so non-break-glass identities cannot write sys/audit. After upgrade, verify the service starts cleanly, existing audit devices still function, and a non-privileged token cannot enable or update audit devices.
Typical attack path
- Compromise or abuse a root-namespace operator identity with write access to sys/audit
- Confirm Vault is running with plugin_directory configured
- Misuse audit-device configuration to induce host code execution in the Vault process
- Run follow-on activity as the Vault OS user (credential and secret theft, persistence, lateral movement)
How to detect it
There is no public exploit, KEV listing, or named actor activity, so hunt for abuse of the privileged path rather than a known payload. Review Vault audit logs for enable, disable, or tune of audit devices (writes under sys/audit) by human or unexpected identities, especially in the root namespace. On the host, look for new or modified files in the configured plugin directory, unexpected child processes of the vault process (shells, interpreters, reverse-connection tools), and outbound connections from the Vault service account that do not match normal storage, KMS, or telemetry destinations. Correlate with IAM/IdP logs for theft or elevation of operator tokens around the same time. Prioritize clusters that had plugin_directory set before they were patched.
- path:*sys/audit*
- operation:update AND path:sys/audit*
- plugin_directory
- process_name:vault AND child:(sh OR bash OR dash OR ksh OR zsh OR python OR python3 OR perl OR ruby OR nc OR ncat OR socat)
What your security team should do
- Patch all Vault Community and Enterprise clusters to 1.20.1 (or Enterprise 1.19.7 / 1.18.12 / 1.16.23) as a privileged-breakout fix, even though this CVE is not in KEV
- Disable plugin_directory where custom plugins are not required; if required, restrict ownership, mode, and who can write that path
- Remove write capability on sys/audit from standing operator policies; use short-lived, MFA-backed, break-glass roles only
- Hunt historical audit logs for unexpected sys/audit writes and unexpected binaries in the plugin directory, then rotate tokens and secrets if abuse is found
- Harden the Vault host (non-root service user, no extra sudo, isolated disk for plugins) so a future operator breakout has less blast radius
The record
A privileged Vault operator within the root namespace with write permission to {{sys/audit}} may obtain code execution on the underlying host if a plugin directory is set in Vault’s configuration. 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.8.0 | 1.20.1 |
| Bitnami | vault | 0.8.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 |
| go | github.com/hashicorp/vault | 0.8.0 | 1.20.1 |
| openSUSE:Leap 15.6 | govulncheck-vulndb | 0 | 0.0.20250814T182633-150000.1.98.1 |
| openSUSE:Tumbleweed | govulncheck-vulndb | 0 | 0.0.20250811T192933-1.1 |
| openSUSE:Tumbleweed | openbao | 0 | 2.3.2-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-6037 Hashicorp Vault has Incorrect Validation for Non-CA Certificates 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