Skip to main content

Contrast EUVDEUVD-2026-87850

| CVE-2026-100838 HIGH
Improper Link Resolution Before File Access (CWE-59)
2026-09-27 VulnCheck GHSA-h734-rggh-79xq
8.6
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

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

  1. Access
    Compromise untrusted Kubernetes host
  2. Delivery
    Connect to Kata agent VSOCK
  3. Exploit
    Send crafted CopyFile requests
  4. Execution
    Bypass symlink verification (CWE-59)
  5. Persist
    Overwrite guest security-critical files
  6. Impact
    Full confidential-guest takeover

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V5 - File Handling Symlink resolution safety
Exploitation Conditions

Exploitation requires a malicious process running on the untrusted Kubernetes host with the ability to open a connection to the confidential workload's Kata agent over the VSOCK channel; it targets the Kata agent policies GENERATED BY THE CONTRAST CLI in versions before 1.19.1. This is not remotely reachable over a standard network (AV:A, Adjacent) - the attacker must already have host-level foothold, which is precisely the untrusted-host adversary Contrast's confidential-computing model assumes. No authentication or user interaction is needed (PR:N/UI:N). Deployments already upgraded to 1.19.1, or those applying the published rego policy fix via 'contrast generate --policy', are not affected.

Impact

The vendor (via VulnCheck) rates this CVSS 4.0 8.6 (High) with vector AV:A/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:N, and I broadly agree on the impact profile: this is a genuine confidentiality-and-integrity break, not a high-CVSS-but-low-risk paper cut. The critical framing is the confidential-computing threat model - Contrast explicitly treats the Kubernetes host/cluster-admin as an UNTRUSTED adversary, so the 'PR:N / attacker on the host with VSOCK access' precondition is exactly the boundary the product exists to defend, meaning a bypass defeats the core security guarantee. That said, the attack vector is Adjacent (AV:A), not Network: the attacker must already have a malicious process on the untrusted host able to reach the Kata agent VSOCK, which is a meaningful gate outside the confidential-computing model. Exploitation signals are thin: no EPSS score, not in CISA KEV, and no public POC identified at time of analysis - a rego-only workaround is published but that is a mitigation, not exploit code. Note the vendor set VA:N (no availability impact) despite describing 'full guest takeover'; that is defensible since the vulnerability yields arbitrary file writes and data disclosure rather than a direct crash, but full takeover could cascade to availability in practice. The 'Information Disclosure' tag understates the issue - CWE-59 (link following) enabling arbitrary writes to overwrite security-critical files makes INTEGRITY the primary impact.

Exploit ScenarioDerived

An attacker who has compromised the untrusted Kubernetes host (the exact adversary Contrast is designed to defend against) connects to the confidential workload's Kata agent over VSOCK and issues a crafted series of CopyFile requests. Exploiting the flawed CopyFile symlink verification (CWE-59), the writes are redirected via symlinks to overwrite security-critical files in the guest root filesystem or to coerce the workload into disclosing sensitive data, resulting in full guest takeover. No public exploit code is identified at time of analysis, though a rego-only fix published in the advisory reveals the exact mechanism.

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

Arbitrary writes to the guest root filesystem in Edgeless Systems' Contrast confidential-computing runtime before 1.19.1 allow a malicious process on the untrusted Kubernetes host to achieve full guest takeover. The flaw lives in the Kata agent policies generated by the Contrast CLI: the CopyFile verification does not correctly resolve symlinks (CWE-59), so an attacker who can open a VSOCK connection to the Kata agent can chain CopyFile requests to overwrite security-critical files inside the guest or trick the workload into disclosing sensitive data. The vendor (via VulnCheck) scores this CVSS 4.0 8.6 (High), and an independent assessment concurs that it is a genuine confidentiality-and-integrity break (CVSS 3.1 AV:A/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N) rather than a high-score paper cut. Exploitation is not reachable over a standard network - the attacker must already hold a foothold on the untrusted host, which is precisely the adversary model Contrast assumes - and no public exploit code or confirmed in-the-wild exploitation was identified at time of analysis.

RemediationAI

Vendor-released patch: upgrade Contrast to 1.19.1 and regenerate the Kata agent policies so the corrected CopyFile verification is baked into the deployment, per the advisory at https://github.com/edgelesssys/contrast/security/advisories/GHSA-rh99-wc69-c255. If upgrading is not possible, apply the equivalent policy-only fix written in rego and pass it to 'contrast generate --policy' (the reference implementation is the gist at https://gist.github.com/burgerdev/304dd0ab0fff1665b7c27e18a30cf96e); note the trade-off that the rego-only workaround is harder to get right than the patch because the data being validated is binary, it must be re-applied to every generated policy set, and it does not address future variants of the same policy class. Compensating controls should be treated as risk reduction rather than a fix: restrict which host processes can open the Kata agent VSOCK endpoint (e.g. tighten host-level process isolation and remove unnecessary privileges from co-resident host workloads, since the flaw is triggered by VSOCK reachability) and keep guest images and workload secrets strictly least-privileged to limit the value of a write primitive - but the vendor explicitly notes that this patch does not change the more fundamental assumption that host-provided content is generally not trustworthy, so host-side isolation alone should not be considered a substitute for upgrading. Authentication requirements are not a meaningful barrier here: the assessed vector is PR:N/UI:N, so any host process that can reach the VSOCK channel can attempt the attack once the channel is reachable.

Affected VersionsENISA

contrast 0 <1.19.1

Affected Packages

go github.com/edgelesssys/contrast fix: 1.19.1
euvd contrast fix: 1.19.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 confidential-computing runtime that runs Kubernetes workloads inside hardware-isolated guests backed by Kata Containers, with the untrusted host responsible for providing the guest image and configuration. The Kata agent running inside the guest exposes a VSOCK (virtio socket) control channel to the host, and the contrast CLI generates the rego-based agent policies that constrain what host-originated requests the agent will honor - including CopyFile, a request that copies a file from the host into the guest filesystem. In versions before 1.19.1 those generated policies verified the CopyFile target path insufficiently against symlinks, the classic CWE-59 'Improper Link Resolution Before File Access (Link Following)' weakness: resolving a path component to a symlink lets the agent write outside the intended destination and into arbitrary locations on the guest root filesystem. Because that filesystem holds the workload's binaries, credentials, and the guest-side policy/measurement state, a host-resident process able to reach the VSOCK endpoint and issue a sequence of CopyFile calls effectively converts a write primitive into guest takeover, or into a data-disclosure primitive by steering the workload toward attacker-chosen content. The weakness is inherited at the policy layer rather than in Kata itself; the vendor cross-references the upstream Kata Containers advisory GHSA-q49m-57vm-c8cc for the underlying context. The affected artifact is the Go module go/github.com/edgelesssys/contrast (CPE cpe:2.3:a:edgelesssys:contrast:*:*:*:*:*:*:*:*), i.e. every CLI release prior to 1.19.1, not any single Kubernetes deployment topology.

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

AV:A because exploitation is over the host-to-guest VSOCK channel not the network; PR:N/UI:N since the untrusted host is the assumed adversary; C:H/I:H (arbitrary writes plus data disclosure), A:N as no direct availability impact.

3.1 AV:A/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N
4.0 AV:A/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/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
None
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.6

DescriptionCVE.org

Contrast is a confidential-computing runtime for Kubernetes. In versions before 1.19.1, the Kata agent policies generated by the Contrast CLI contained a flaw in the CopyFile verification that allowed arbitrary writes to the guest root filesystem. A malicious process on the untrusted host able to connect to the Kata agent VSOCK could issue a series of CopyFile requests to overwrite security-critical files in the guest or trick the workload into disclosing sensitive data, effectively amounting to a full guest takeover. Users unable to upgrade can apply an equivalent rego policy fix passed to 'contrast generate --policy'.

Technical POC Analysis

Evidence base: GitHub advisory GHSA-rh99-wc69-c255 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 runtime (versions before 1.19.1) contains a high-severity arbitrary file write vulnerability that allows a malicious process on an untrusted Kubernetes host to achieve full guest takeover. This compromises the confidentiality and integrity of sensitive workloads that organizations run in untrusted environments, undermining the core security guarantee of the Contrast platform. While no public exploit identified at time of analysis and exploitation requires a pre-existing host foothold, that is precisely the adversary model Contrast is designed to defend against, making this a critical trust-boundary failure for affected deployments.

Business Impact: High
Compensating Controls

No vendor-released patch identified at time of analysis. Interim mitigations include restricting VSOCK access to the Kata agent, monitoring for symlink manipulation and anomalous CopyFile requests, isolating untrusted Kubernetes hosts from sensitive guests, and applying least-privilege policies to limit host-level access.

Threat Intelligence Overview

EPSS Score
0.2%
Top 89% exploitable
Prevalence
Low
niche confidential-computing Kubernetes runtime, 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

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