Skip to main content

Contrast CVE-2025-71422

| EUVDEUVD-2025-211010 MEDIUM
Improper Verification of Cryptographic Signature (CWE-347)
2026-09-27 VulnCheck GHSA-3g67-j5vf-vm4v
6.9
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

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

  1. Access
    Malicious host controls Kubernetes node
  2. Delivery
    Craft LUKS2 volume with cipher_null-ecb keyslot
  3. Exploit
    Present device to Contrast pod VM
  4. Execution
    Initializer cryptsetup open succeeds, assumes encrypted
  5. Persist
    Guest writes secrets in plaintext
  6. Impact
    Host reads confidential data

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A04:2025 - Cryptographic Failures
ASVS 5.0
V11 - Cryptography Signature verification
Exploitation Conditions

Exploitation requires the confidential-computing inverse trust model: the attacker must be a malicious or compromised HOST/infrastructure operator able to supply a block device to a Contrast pod VM through Kubernetes. The target pod must have the OPT-IN secure persistent volume (encrypted storage) feature enabled - this is not a default configuration. The Contrast version must be <=1.12.0 bundling cryptsetup <2.8.1, which accepts a LUKS2 header specifying the cipher_null-ecb null keyslot algorithm without error. Limiting factors: no external/remote unauthenticated Internet vector (AV:A, PR:L - host-level provisioning privilege needed), impact is confidentiality-only (data written after the malicious volume is opened), and the fix in 1.12.1 (null ciphers disabled for non-empty passphrases) plus 1.13.0 (detached-header validation and storage integrity protection) closes the primary path.

Impact

This is a genuine but conditional confidentiality flaw in a confidential-computing product, best understood through its inverted trust model: the adversary is the untrusted host/infrastructure operator, not a conventional remote attacker. The vendor CVSS 4.0 vector (AV:A/AC:L/AT:N/PR:L/UI:N/VC:H/VI:N/VA:N, 6.9 Medium) is well-reasoned - confidentiality-only high impact, no integrity or availability effect, which the advisory explicitly justifies because Contrast persistent volumes were never integrity-protected. My independent CVSS 3.1 estimate (~5.7, AV:A/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N) is consistent. There is NO EPSS score, NO CISA KEV listing, and NO public POC referenced, so all signals point to no observed exploitation. SSVC-style read: exploitation none-observed, automatable no (requires a privileged malicious host in the specific confidential-storage path), technical impact partial (confidentiality only). The real limiter is that exploitation defeats a confidential-computing guarantee rather than a normal network perimeter - it only matters to organizations that (a) run Contrast, (b) enable the secure persistent volume feature, and (c) genuinely distrust their host. For that audience it is a meaningful defeat of the core security promise; for everyone else the practical risk is low. This is a real-priority-for-affected-users issue, not a high-CVSS-low-risk inflation.

Exploit ScenarioDerived

A malicious or compromised Kubernetes host provisions a crafted LUKS2 volume using the null keyslot algorithm (cipher_null-ecb) and presents it to a Contrast pod VM that uses the secure persistent volume feature. Because cryptsetup <2.8.1 opens this unauthenticated header without error, the Contrast Initializer wrongly concludes the device is protected, and the guest writes confidential data in plaintext (or under a volume key the host already knows), which the host then reads. No public exploit code is identified at time of analysis.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.1% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – Sep 27, 2026

Malicious Kubernetes hosts can read confidential data written to Contrast secure persistent volumes by supplying a crafted LUKS2 block device that the pod VM wrongly accepts as encrypted. The flaw affects Contrast (Go module github.com/edgelesssys/contrast) through 1.12.0 when the opt-in secure persistent volume feature is enabled and the guest bundles cryptsetup older than 2.8.1: LUKS2 metadata is unauthenticated and a header declaring the cipher_null-ecb null keyslot algorithm is accepted without error, so the Initializer assumes the device is protected when 'cryptsetup open' succeeds and writes secrets to a volume that is plaintext or keyed with an attacker-known volume key. Exploitation requires host-level provisioning privilege (CVSS 4.0 AV:A/AC:L/PR:L/UI:N, confidentiality-only; independent assessment CVSS:3.1/AV:A/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N), meaning the adversary is a malicious or compromised infrastructure operator rather than a conventional remote attacker; there is no public exploit identified at time of analysis and no confirmed active exploitation (CISA KEV), and the issue is closed by Contrast 1.12.1, which ships cryptsetup 2.8.1, and further hardened by 1.13.0.

RemediationAI

Vendor-released patch: upgrade Contrast to 1.12.1, which ships cryptsetup 2.8.1 and disables null ciphers in keyslots when the user passphrase is non-empty; upgrading to 1.13.0 is strongly preferred because it encrypts LUKS disks in detached-header mode with the header kept in a tmpfs file inside guest RAM and adds integrity protection for secure persistent storage, closing the residual header-parsing attack surface (automatic reencryption triggering, cipher downgrade). The relevant upstream fix references are https://github.com/edgelesssys/contrast/pull/1731 and https://github.com/edgelesssys/contrast/commit/2252a231d570c2dce10a33660452b0bfc3c43958, with the advisory at https://github.com/edgelesssys/contrast/security/advisories/GHSA-f5p4-p5q5-jv3h. If an upgrade is not immediately possible, the most effective compensating control is to stop using the secure persistent volume feature entirely (disable the encrypted storage configuration and mount only ephemeral pod storage), with the clear trade-off that workloads lose persistent encrypted storage and must accept data loss or re-architecture; additionally, ensure any guest image is rebuilt against cryptsetup 2.8.1 or later so the null-cipher acceptance path is removed, though this alone does not fully eliminate LUKS header-parsing risk and does not address pre-existing plaintext volumes. Because the flaw is data-at-rest confidentiality exposure, rotate or re-encrypt any secret material previously written to persistent volumes that may have been provisioned by an untrusted host, and treat host-supplied block devices as attacker-controlled until 1.13.0's detached-header validation is in place. Note that no patch-free control fully restores the confidentiality guarantee for already-opened malicious volumes, since the guest cannot retroactively authenticate metadata it has already trusted.

Affected VersionsENISA

contrast 0 <1.12.1

Affected Packages

go github.com/edgelesssys/contrast fix: 1.12.1
euvd contrast fix: 1.12.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 runtime for confidential containers that relies on an inverted trust model: the host and infrastructure operator are untrusted, and the pod VM is the trusted computing base. Its secure persistent volume feature uses cryptsetup to unlock a LUKS2 device with the cluster secret seed as the passphrase, and the Contrast Initializer treats a successful 'cryptsetup open' as proof that a device supplied by Kubernetes on pod restart is the previously encrypted volume. That assumption is unsound because LUKS2 on-disk metadata is not authenticated and cryptsetup versions before 2.8.1 do not reject a keyslot 'encryption' field set to cipher_null-ecb, a null cipher algorithm. A host that crafts such a header can produce a device that opens without error using any passphrase or token, so all writes are recorded in plaintext or under a volume key the attacker knows. The root cause is mapped to CWE-347 (Improper Verification of Cryptographic Signature): the guest never cryptographically validates the volume metadata or verifies that the keyslot actually performs encryption before trusting it. Cryptsetup 2.8.1 mitigates the specific null-cipher path by disabling null ciphers in keyslots when the passphrase is non-empty, but LUKS header parsing and interpretation remains a broad attack surface (for example forced reencryption or downgrade to weak ciphers), which is why Contrast 1.13.0 moves to detached-header mode with the header held in a tmpfs file inside guest RAM and adds integrity protection for secure persistent storage. The affected CPE is cpe:2.3:a:edgelesssys:contrast:*:*:*:*:*:*:*:*, with the upstream Go package marked vulnerable through 1.12.0 and fixed in 1.12.1.

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 6.9 MEDIUM
CVSS:4.0/AV:A/AC:L/AT:N/PR:L/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N
vuln.today AI 5.7 MEDIUM

Attacker is a privileged adjacent host provisioning the volume (AV:A, PR:L); guest confidential data is disclosed (C:H) with no integrity or availability impact per the advisory.

3.1 AV:A/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N
4.0 AV:A/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
None
Vulnerable system: Availability
None
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

Lifecycle Timeline

1
Patch available
Sep 27, 2026 - 03:16 EUVD

DescriptionCVE.org

Contrast is a Kubernetes runtime for confidential containers. In versions before 1.12.1, the secure persistent volume feature is vulnerable to a malicious host supplying a crafted LUKS2 volume to a pod VM. LUKS2 volume metadata is not authenticated and, with cryptsetup versions prior to 2.8.1, a header specifying the null keyslot encryption algorithm (cipher_null-ecb) is accepted without error. Because the Contrast Initializer assumes a device is protected if cryptsetup open succeeds with the secret seed, the guest will open the attacker-supplied volume and write secret data in plaintext, or under a volume key known to the attacker, allowing the host to read confidential data that should have been encrypted. Contrast v1.12.1 ships cryptsetup 2.8.1, which disables null ciphers in keyslots when the passphrase is non-empty; v1.13.0 adds detached-header validation in guest memory and integrity protection for secure persistent storage. Contrast persistent volumes were not integrity protected, so integrity impact is not considered.

Threat Intelligence Overview

EPSS Score
0.1%
Top 100% exploitable
Prevalence
Low
niche confidential-computing Kubernetes runtime from single vendor edgelesssys
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 MEDIUM
CISA KEV No
Public POC No
EPSS 0.1%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.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· derived
Scheduled
Exploitation
None
System Exposure· derived
Controlled
Automatable
No
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

34
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +34
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