Skip to main content

Edgeless Systems Contrast EUVDEUVD-2025-211009

| CVE-2025-71423 HIGH
Insertion of Sensitive Information into Log File (CWE-532)
2026-09-27 VulnCheck GHSA-8rwq-r56x-hx8f
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 K8s RBAC get/list on pods/logs
  2. Exploit
    Read initializer pod logs
  3. Execution
    Extract workload secret from INFO output
  4. Impact
    Decrypt storage and access Vault-backed secrets

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 an authenticated Kubernetes principal (user or service account) that holds get or list permission on the pods/logs subresource in the namespace running Contrast, and a Contrast deployment on an affected version (1.9.0 through 1.12.1) with initializer logging enabled at INFO level (the default). No special attacker tooling, user interaction, or non-default configuration is needed beyond that RBAC permission. Limiting factors: the attacker must already possess in-cluster log-read RBAC (PR:L), the product is narrowly deployed, and versions 1.8.1 and earlier as well as 1.12.2+ are not affected. The vendor workaround is to reinitialize Contrast from scratch (existing secrets are compromised) and disable logging.

Impact

This is a credible operational priority within its niche, but not a mass-exploitation threat. The vendor CVSS 4.0 vector (AV:A/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:N, score 8.5) indicates an authenticated actor (PR:L) with low complexity and no user interaction can achieve high confidentiality and integrity impact. The core issue is confirmed by the vendor GHSA and source diff: the initializer logged the full NewMeshCert response (including the workload secret) at INFO level, exposing secrets to any Kubernetes principal with get/list on pods/logs. No EPSS score is provided, there is no CISA KEV listing, and no public exploit code is referenced - so this is 'no public exploit identified at time of analysis.' The realistic risk is amplified by the fact that this is a REGRESSION of a previously-fixed flaw (GHSA-h5f8-crrq-4pw8), meaning the exposure window spans all releases 1.9.0 through 1.12.1. One signal to scrutinize: the vendor rated AV:A (Adjacent), yet pods/logs are read through the Kubernetes API server, which is typically network-reachable - a case for AV:N. Also, the direct primitive is information disclosure (confidentiality); the VI:H/high-integrity rating is derivative, resting on the fact that leaked workload secrets underpin encrypted storage and Vault integration and thus enable downstream integrity compromise. Overall: real and worth prompt remediation for Contrast operators, but bounded by the required in-cluster RBAC privilege and the product's small deployment footprint.

Exploit ScenarioDerived

An attacker or curious insider who holds a Kubernetes service account or user with get/list permission on pods/logs reads the initializer pod's logs and harvests the workload secret printed at INFO level. Because that secret keys encrypted storage and Vault integration, the attacker can then decrypt persisted data and access Vault-backed secrets, and those secrets must be treated as fully compromised. No public exploit code is required - the secret is plainly visible in standard log output.

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 are written to the initializer's standard output at INFO level in Edgeless Systems Contrast versions 1.9.0 through 1.12.1, so any Kubernetes principal that holds get or list permission on the pods/logs subresource in the affected namespace can read them from the container log stream. Because those workload secrets back Contrast's encrypted storage and HashiCorp Vault integration, the storage keys and Vault credentials derived from them must also be treated as compromised, giving the attacker a path to decrypt protected data and reach Vault-backed secrets. The flaw is a regression of GHSA-h5f8-crrq-4pw8 (originally fixed in 1.8.1 but never ported to the main branch), patchable in 1.12.2; there is no public exploit identified at time of analysis and no KEV listing, so risk is driven by the low barrier of an existing log-read RBAC grant rather than by active exploitation.

RemediationAI

Upgrade to Contrast 1.12.2 or later - this is a vendor-released patch (fixed version 1.12.2, with the same fixes carried into the then-unpublished 1.13.0 line), delivered via commits 5a5512c4af63c17bb66331e7bd2768a863b2f225 and cf58026b30c43fe7df91eac5322da02e1725d554 and documented in https://github.com/edgelesssys/contrast/security/advisories/GHSA-vxg3-w9rv-rhr2. Critically, patching alone is insufficient: because the secrets were already emitted to logs, all workload secrets from any cluster that ran an affected version must be considered compromised, and the vendor's required workaround is to reinitialize the Contrast deployment from scratch and disable logging - existing secrets cannot be trusted even after upgrading. In parallel, rotate everything derived from the compromised workload secrets, specifically the keys protecting Contrast encrypted storage and the credentials used for HashiCorp Vault integration, since compromise of the workload secret transitively exposes those stores; expect service disruption during reinitialization because running workloads must be redeployed with fresh secrets. As a compensating control for clusters that cannot immediately reinitialize, tighten RBAC so that no principal outside the platform team holds get or list on the pods/logs subresource in namespaces running Contrast (note the trade-off: this degrades legitimate operational log access and debugging), and set the initializer log level below INFO so the response object is not emitted (the fix itself removes the secret from the message rather than relying on verbosity). Because the defect is a regression, also track the vendor's new GHSA regression-handling process at https://github.com/edgelesssys/contrast/pull/1739 and verify future releases do not reintroduce the full NewMeshCert response in log output. No public exploit code was identified at time of analysis and there is no KEV listing, so prioritization should be driven by how widely pods/logs read access is granted in the cluster.

Affected VersionsENISA

contrast 1.9.0 <1.12.2

Affected Packages

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

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 confidential-computing runtime that runs Kubernetes workloads inside Confidential VMs (AMD SEV-SNP / Intel TDX) with an initializer component that bootstraps the pod by requesting a mesh certificate from the Contrast Coordinator. The root cause class is CWE-532 (Insertion of Sensitive Information into Log File): the initializer's run() function called log.Info("Requesting cert", "response", resp), passing the full structured NewMeshCert response object, which embeds the issued workload secret, into the log sink at INFO level - the default verbosity. The upstream fix in commit 5a5512c4af63c17bb66331e7bd2768a863b2f225 simply replaces that call with a static message (log.Info("Successfully requested cert from Coordinator")), removing the response object from the log line entirely; a second commit (cf58026b30c43fe7df91eac5322da02e1725d554) accompanies it. The Go module path is github.com/edgelesssys/contrast, vulnerable range >= 1.9.0 and <= 1.12.1, fixed in 1.12.2. The supplied CPE (cpe:2.3:a:edgelesssys:contrast:*:*:*:*:*:*:*:*) carries wildcard version attributes, so the authoritative version window is the vendor/Go-module range rather than the CPE. This is explicitly a regression: the identical logging defect was addressed for release v1.8.1 under GHSA-h5f8-crrq-4pw8, but that fix was not merged into the main branch and therefore did not survive into the 1.9.0 line; the vendor is introducing a GHSA regression-handling process (PR #1739) to prevent recurrence. The independent assessment rates this CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:N/A:N, i.e. confidentiality-only impact with a scope change reflecting that compromise of the workload secret extends beyond the initializer pod into encrypted-storage and Vault trust domains; the vendor's CVSS 4.0 vector is AV:A/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N, score 8.5. Both vectors agree that the attacker must be authenticated (PR:L).

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 7.7 HIGH

Pod logs are read via the network-reachable K8s API (AV:N) by a low-privileged authenticated principal (PR:L); leaked secrets govern other systems (S:C, C:H); direct impact is disclosure, so I/A:N with downstream integrity only derivative.

3.1 AV:N/AC:L/PR:L/UI:N/S:C/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:H/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

DescriptionCVE.org

Edgelesssys Contrast is a confidential-computing runtime for Kubernetes. In versions 1.9.0 before 1.12.2, the initializer logs the full NewMeshCert response - which contains the workload secret - to standard output at INFO level. As a result, workload secrets are exposed to any Kubernetes user with get or list permission on pods/logs. Because workload secrets are used for encrypted storage and Vault integration, those must also be considered compromised. This is a regression of GHSA-h5f8-crrq-4pw8.

Technical POC Analysis

CWE-532 (Insertion of Sensitive Information into Log File) in the Contrast initializer.

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 versions 1.9.0 through 1.12.1 expose workload secrets through container logs to Kubernetes principals with existing pod/log read permissions. This creates a credible path to compromise storage keys and HashiCorp Vault credentials, potentially exposing encrypted data and downstream secrets without requiring exploit code. Leadership should treat this as a high-priority patch and credential-rotation event, noting no public exploit identified at time of analysis.

Business Impact: High
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.2%
Top 91% exploitable
Prevalence
Low
niche confidential-computing runtime, small specialized Kubernetes user base
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