Skip to main content

Edgeless Contrast EUVDEUVD-2025-211007

| CVE-2025-71425 HIGH
Insertion of Sensitive Information into Log File (CWE-532)
2026-09-27 VulnCheck GHSA-7f88-pr8w-xgw6
8.5
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Obtain read access to pod/container logs
  2. Exploit
    Locate Contrast initializer stderr at default info level
  3. Execution
    Read logged workload secret
  4. Impact
    Reuse 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.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.2% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – 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

contrast 0 <1.8.1

Affected Packages

go github.com/edgelesssys/contrast fix: 1.8.1
euvd contrast fix: 1.8.1

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

Vendor (VulnCheck) PRIMARY 8.5 HIGH
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
vuln.today AI 6.5 MEDIUM

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).

3.1 AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N
4.0 AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

Attack Vector
Adjacent
Attack Complexity
Low
Attack Requirements
None
Privileges Required
Low
User Interaction
None
Vulnerable system: Confidentiality
High
Vulnerable system: Integrity
High
Vulnerable system: Availability
None
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

Lifecycle Timeline

2
Patch available
Sep 27, 2026 - 03:16 EUVD
CVE Published
Sep 27, 2026 - 01:28 cve.org
HIGH 8.5

DescriptionCVE.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.

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

Why It Matters

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.

Business Impact: High
Compensating Controls

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

EPSS Score
0.2%
Top 92% exploitable
Prevalence
Low
niche confidential-computing runtime by a specialized vendor, limited enterprise footprint
Data Quality
6 sources
Confidence: High

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.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.2%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Scheduled
Exploitation
None
System Exposure· derived
Controlled
Automatable
No
Human Impact
High
Technical Impact
Total

Priority Score

42
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +42
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy