Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessObtain read access to pod/container logs
-
ExploitLocate Contrast initializer stderr at default info level
-
ExecutionRead logged workload secret
-
ImpactReuse secret to access protected workload data
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 | Requires that (1) the deployment actually uses Contrast workload secrets - deployments not using workload secrets (or designed for workload-owner exclusion) are entirely unaffected - and (2) the Contrast initializer runs at CONTRAST_LOG_LEVEL of info or debug, which is the DEFAULT, so no customization is needed for the leak to occur. To then obtain the leaked secret, the actor needs get or list permission on pods/logs via Kubernetes RBAC, or read access to the underlying Kubernetes log storage (notably the cloud provider). Limiting factors: exploitation is gated behind log-read privileges (PR:L, not unauthenticated) and is a passive disclosure with no code execution; only Contrast versions <= 1.8.0 are affected, and the leak stops if the initializer log level is set to warn. |
| Impact | This is a genuine but moderate-priority confidentiality exposure whose real severity hinges on deployment specifics. The vendor's CVSS 4.0 vector (8.5, AV:A/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:N) treats the flaw as high, but the VI:H (integrity) rating is generous: the defect (CWE-532) is a passive information disclosure - the workload secret is written to logs - and any integrity impact is only indirect, arising if the leaked secret is later reused to impersonate or tamper with the workload. My independent read scores it lower (~6.5) with confidentiality-only impact. No EPSS score, KEV listing, or public POC is provided in the input, so exploitation status is 'no public exploit identified at time of analysis' - there is no evidence of active exploitation, only a plausible disclosure path. The most important amplifying signal is NOT the CVSS number but the configuration reality stated by the vendor: because CONTRAST_LOG_LEVEL=info is the DEFAULT, every installation using workload secrets that has not explicitly set the log level is affected out of the box, and the secret is exposed not just to Kubernetes RBAC principals with get/list on pods/logs but to the cloud provider holding the log storage. Note the vector uses AV:A (adjacent) while log access via the Kubernetes API is typically network-reachable - verify the intended attack surface with the vendor. Overall: real and worth patching, but a low-probability, access-gated leak rather than a wormable critical. |
| Exploit ScenarioDerived | A cluster operator, tenant, or compromised low-privilege service account holding get/list permission on pods/logs (or the cloud provider with read access to log storage) reads the Contrast initializer's stderr output from Kubernetes logs and recovers the plaintext workload secret that should be confined to the Coordinator and workload owner. No special crafting is needed - the secret is present in default (info-level) logs - so the 'attack' is passive log inspection. No public exploit code is required or reported. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Sep 27, 2026
Workload secrets managed by Edgeless Systems' Contrast confidential-computing platform are written to Kubernetes pod logs, letting anyone with log-read access recover secrets that are meant to be visible only to the Contrast Coordinator, the initializer, the seedshare owner, and the workload owner. All Contrast releases up to and including 1.8.0 are affected whenever the Contrast initializer runs at the default CONTRAST_LOG_LEVEL of info (the same leak also occurs at debug), so installations that never customized the initializer log level are exposed by default; deployments that do not use workload secrets at all are unaffected. Recovering the leaked value requires low-privileged access - Kubernetes get or list permission on pods/logs (PR:L in the assessed vector) or read access to the underlying Kubernetes log storage - this is a passive confidentiality disclosure with no code execution, and no public exploit has been identified at time of analysis.
RemediationAI
Upgrade Contrast to 1.8.1, the version identified as containing the fix for the vulnerable <= 1.8.0 range (confirm availability with the vendor, since the GHSA Patches section itself is marked N/A). If an immediate upgrade is not possible, apply the documented workaround: add the environment variable CONTRAST_LOG_LEVEL=warn to the initializer after running contrast generate, then run contrast generate again so the regenerated manifests carry the setting - the trade-off is reduced initializer log verbosity, which may complicate troubleshooting, but it halts the secret-to-stderr writes. Because secrets may already have been logged, treat any workload secret used during the exposure window as compromised and rotate it (re-issue via the Coordinator/seedshare flow), and purge or restrict retention of historical pod logs in the cluster and in any upstream cloud log storage. Additionally, tighten Kubernetes RBAC so that get/list on pods/logs is granted only to roles that legitimately need it, since that permission is the practical prerequisite for harvesting the leaked secret - this reduces blast radius but does not remediate the underlying logging defect. Advisory links for tracking: https://github.com/edgelesssys/contrast/security/advisories/GHSA-h5f8-crrq-4pw8 and https://www.vulncheck.com/advisories/contrast-before-1.8.1-information-disclosure-via-logging.
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
Contrast is a Kubernetes-based confidential-computing runtime (Edgeless Systems) that provisions per-workload secrets from a Coordinator, which holds a seed that a seedshare owner can use to derive all workload secrets; the in-pod initializer obtains only the secret configured in the manifest. This CVE is a classic CWE-532 (Insertion of Sensitive Information into Log File) issue: the initializer emits the workload secret on stderr when CONTRAST_LOG_LEVEL is info or debug. Because container stderr is captured by the container runtime and persisted by the kubelet as pod logs, the secret flows into the Kubernetes logging path and, in managed clusters, into the cloud provider's log storage. The Go module github.com/edgelesssys/contrast (CPE cpe:2.3:a:edgelesssys:contrast:*:*:*:*:*:*:*:*) is affected through 1.8.0 and fixed in 1.8.1 per the advisory's version range, although the GHSA text lists its Patches section as N/A. The root cause is purely a logging-verbosity defect, not a cryptographic or access-control break: the secret was never meant to leave the intended audiences, and setting the log level to warn stops the leak. Applications designed for workload-owner exclusion cannot use workload secrets and are therefore out of scope.
Know when Contrast 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:A/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N
Reading K8s logs is network-reachable (AV:N) but requires get/list on pods/logs (PR:L); impact is high-confidentiality secret disclosure only, with no direct integrity or availability effect (I:N/A:N).
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
Lifecycle Timeline
2DescriptionCVE.org
Contrast (Edgeless Systems) before 1.8.1 logs the workload secret to stderr, and thus to Kubernetes logs, when the Contrast initializer is configured with CONTRAST_LOG_LEVEL set to info or debug. Because info is the default, all installations that do not customize the initializer log level are affected. This exposes workload secrets - normally accessible only to the Contrast Coordinator, the initializer, the seedshare owner, and the workload owner - to Kubernetes users with get or list permission on pods/logs and to anyone with read access to the Kubernetes log storage, such as the cloud provider. Deployments that do not use workload secrets are unaffected.
Articles & Coverage 1
Technical POC Analysis
Evidence base: GitHub advisory GHSA-h5f8-crrq-4pw8 only.
Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.
Executive ViewAI
Edgeless Systems' Contrast confidential-computing platform (all releases up to and including 1.8.0) leaks workload secrets into Kubernetes pod logs under default configurations, exposing sensitive credentials to anyone with log-read access. This affects organizations using Contrast with default initializer log levels, potentially compromising the confidentiality of workload secrets. Leadership should care because unauthorized disclosure of secrets can lead to lateral movement, data breaches, and compliance violations; no public exploit has been identified at time of analysis.
No vendor-released patch identified at time of analysis. Interim mitigations: set CONTRAST_LOG_LEVEL to 'warn' or 'error' (avoid 'info' and 'debug'); restrict Kubernetes RBAC permissions for pods/logs to only essential personnel; rotate all workload secrets managed by Contrast; audit Kubernetes logs for unauthorized access to pod logs.
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.
Related Vulnerabilities in Contrast Confidential-Computing Runtime Multiple Flaws
View all 11Improper verification in the Edgeless Systems Contrast Coordinator's peer-recovery path (versions 1.8.0 through 1.24.0)
Local privilege escalation in Edgeless Systems Contrast 1.8.0 through 1.24.0 allows a low-privileged local user on a nod
EUVD-2025-211007
GHSA-7f88-pr8w-xgw6
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB