Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessObtain read access to Agent stdout/logs
-
ExploitInduce exec-mode error (num_retries exhausted)
-
ImpactHarvest leaked env_template secrets from output
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A09:2025 - Security Logging & Alerting Failures
ASVS 5.0
V16 - Security Logging and Error Handling Log data sanitization
|
| Exploitation Conditions | Exploitation requires all of: the OpenBao Agent running in exec rendering mode; secrets supplied through the env_template configuration; an error condition being reached (primarily num_retries being exhausted) that triggers the errant write to stdout; and an adversary having read access to that stdout/log stream. It is not an attacker-initiated remote exploit - the leak is produced by the Agent's own failure handling, so the limiting factors are the non-default exec+env_template deployment mode, the need for a retry-exhaustion/error event, and pre-existing access to the Agent's output or aggregated logs. Affected versions are prior to OpenBao v2.6.0. |
| Impact | This is a genuine but low-priority information-disclosure issue. The vendor assigned no CVSS (N/A), and there is no EPSS score, no CISA KEV listing, no SSVC decision data, and no public exploit code. CWE-532 (insertion of sensitive information into log/output) combined with the description makes clear this is an accidental leak triggered by the OpenBao Agent's own error handling - NOT an attacker-initiated exploit primitive. Secrets from env_template are written to stdout when exec rendering mode hits certain error conditions, primarily num_retries exhaustion. The realistic risk therefore hinges on whether an adversary can already read the Agent's stdout/logs (via log aggregation, shared terminal, process output capture, or compromised host), which is itself a meaningful prerequisite. No signals point to widespread or targeted exploitation; the patch (io.Discard on the output stream in dry mode) is a straightforward defensive fix. Missing data note: no CVSS vector was supplied by the vendor, so attack vector and privileges must be inferred from the description - treat the assessed vector below as analyst-derived, not vendor-confirmed. |
| Exploit ScenarioDerived | An OpenBao Agent runs in exec rendering mode with secrets injected via env_template, and its stdout is captured by a centralized logging or container-orchestration pipeline. Transient upstream failures cause num_retries to be exhausted, and the Agent inadvertently prints previously rendered secrets to stdout, where they persist in logs. Any operator or process with read access to those logs - including a lower-privileged user who can view container/systemd output - can then harvest the leaked credentials. No public exploit code exists. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Sep 22, 2026
OpenBao Agent's exec rendering mode leaks secrets to stdout when an error condition occurs, primarily when the configured num_retries is exhausted, exposing credentials supplied via env_template to anyone who can read the agent's output stream or aggregated logs. All OpenBao versions before v2.6.0 are affected; the defect is inherited from the original Vault codebase and the fix is a one-line change that discards the template runner's output stream during failures. The assessed CVSS 3.1 vector (AV:L/AC:H/PR:L/UI:N/S:U/C:H/I:N/A:N) reflects a local, non-default deployment prerequisite - exec rendering mode combined with env_template - and there is no public exploit identified at time of analysis, making this a genuine but low-priority information-disclosure issue.
RemediationAI
Upgrade to OpenBao v2.6.0 GA or later, which is the vendor-released patch for this issue (advisory GHSA-444v-8vxr-p36h, release https://github.com/openbao/openbao/releases/tag/v2.6.0; the fix originates from PR #3494 and PR #3495 and commits 90272575e5f58b3883fbb0ccb2238e9285722d1a / ee3aa4aff72c5176cf02af21eac7158899080878). If an immediate upgrade is not possible, the most effective compensating control is to stop using exec rendering mode with env_template for secret material, since the leak only occurs on that code path - the trade-off is loss of the env-template workflow and a need to re-architect secret delivery via file-based templates or direct API consumption, which is a non-trivial change. If the deployment mode must stay, restrict read access to the agent's stdout: ensure the process is not supervised by systemd/journald with unbounded retention, avoid capturing the agent's console output in CI/CD or container log aggregators that a broad group can read, and redirect stdout to a tightly permissioned sink, accepting that this only reduces the blast radius because any copy already written to a log remains exposed. In all cases, treat any prior retry-exhaustion or rendering failure of the agent as a potential credential disclosure event and rotate the affected secrets, and note that no vendor-published workaround beyond the v2.6.0 upgrade is documented at time of analysis.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 2 packages in go, euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
OpenBao Agent is the client-side daemon (a fork of HashiCorp Vault Agent) that renders secrets from a server into templates and can run a child process in 'exec' mode via command/agent/exec/exec.go. In exec rendering mode with env_template configuration, secrets are injected into the child process environment through a template runner; the runner is wired to an output stream, and during failure handling - most reliably after the configured num_retries is met and the agent aborts - the previously rendered secret material is written to that stream, which is stdout. This is a classic CWE-532 (Insertion of Sensitive Information into Log File) root cause: sensitive values flow into a diagnostic output channel that is not access-controlled as carefully as the secrets themselves. The upstream fix in PR #3494 simply calls s.runner.SetOutStream(io.Discard) before the failure path so rendered templates cannot reach stdout in this 'dry' mode; PR #3495 and commits 90272575e5f58b3883fbb0ccb2238e9285722d1a and ee3aa4aff72c5176cf02af21eac7158899080878 implement the same correction. Because the leak is generated by the agent's own error handling rather than by attacker-controlled input, exploitation requires pre-existing read access to the agent's stdout, container log, journald stream, or CI/CD log aggregation pipeline where that output is captured and retained.
Know when Go gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
CVSS:4.0/AV:L/AC:L/AT:P/PR:H/UI:A/VC:L/VI:N/VA:N/SC:H/SI:H/SA:H
Leak reaches local stdout/logs (AV:L) only under specific error/retry-exhaustion conditions (AC:H) and requires access to that output (PR:L); high confidentiality impact on secrets, no integrity or availability effect.
Primary rating from Vendor (https://github.com/openbao/openbao).
CVSS VectorVendor: https://github.com/openbao/openbao
Lifecycle Timeline
1DescriptionCVE.org
Impact
During certain error conditions, OpenBao Agent's exec rendering mode will incorrectly write secrets specified in env_template to stdout. This primarily happens when num_retries is met.
This vulnerability is original to Vault and was reported via the OpenBao security mailing list.
Patches
This is addressed in OpenBao v2.6.0 GA.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
Denial of service against HTTP/2 server implementations allows remote unauthenticated attackers to exhaust server resour
The net/http package in Go through 1.6 does not attempt to address RFC 3875 section 4.1.18 namespace conflicts and there
Critical certificate validation bypass in Go crypto/tls during session resumption. If ClientCAs or RootCAs fields are mu
net/url in Go before 1.11.13 and 1.12.x before 1.12.8 mishandles malformed hosts in URLs, leading to an authorization by
Casdoor through 4.4.0 exposes its instance-wide built-in JWT signing private key unmasked through the /api/get-certs and
Host header injection in Nezha 2.2.3's OAuth2 redirect endpoint (/api/v1/oauth2/{provider}) allows an unauthenticated re
Session cross-wiring in SUSE NeuVector before 5.6.1 allows an unauthenticated remote attacker to obtain another user's a
Unauthenticated path traversal in Uber Kraken through 0.1.29 allows remote attackers to read files outside the configure
The "go get" implementation in Go 1.9.4, when the -insecure command-line option is used, does not validate the import pa
Denial of service in Temporal Server allows an authenticated caller holding at least namespace read permission to crash
Account takeover in Klever-Go's KleverUpdateAccountPermission built-in (all versions prior to 1.7.20) allows an attacker
Maliciously crafted on-chain account names processed by Klever-Go prior to 1.7.20 are spliced into Elasticsearch _bulk r
EUVD-2026-85518
GHSA-444v-8vxr-p36h
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB