Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessGain Kata agent API access (cluster admin)
-
DeliveryCraft image_guest_pull storage entry with payload image
-
ExploitPolicy allow_storage rule skips digest verification
-
ExecutionSubstituted image loaded into confidential container
-
ImpactAttacker code executes inside attested workload
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V2 - Validation and Business Logic Input validation, allowlisting
|
| Exploitation Conditions | Exploitation requires that the target run Contrast (edgelesssys/contrast) version 1.14.0 up to but not including 1.23.1, using Kata Containers confidential containers whose runtime policies were generated by the vulnerable code. The specific trigger is a storage entry that uses the image_guest_pull driver - the flawed allow_storage policy rule accepts such entries WITHOUT verifying the image digest. The attacker must have access to the Kata agent API (in Contrast's threat model this is a Kubernetes cluster administrator), and the substituted malicious image must still satisfy all remaining runtime policy rules. Limiting factors that reduce realistic risk: the attacker needs a privileged position reaching the Kata agent API rather than anonymous remote access, exploitation is non-automatable (SSVC), and only confidential-container workloads relying on Contrast's policy-based image integrity are affected; default conventional Kubernetes workloads are out of scope. |
| Impact | Signals are consistent and point to a serious-but-not-emergency issue. The CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:L/UI:N) and SSVC 'Technical Impact: total' agree that a low-privileged actor with network reach to the Kata agent API can fully undermine the confidential container's integrity. However, exploitation signals are all low: EPSS is 0.23% (12th percentile), SSVC Exploitation is 'none', SSVC Automatable is 'no', there is no CISA KEV listing, and no public exploit code was identified. These low exploitation signals are expected and partially misleading for this class of flaw: the attacker in Contrast's threat model is a Kubernetes cluster administrator - a privileged insider who already controls the untrusted infrastructure - so this is deliberately NOT a mass-scannable internet vulnerability, which explains the low EPSS/automatable signals despite the high technical impact. The real-world priority is therefore HIGH for the specific population running Contrast confidential containers (the entire security value proposition - integrity of confidential workloads against a malicious host/admin - is defeated), but LOW as a broad fleet-wide threat. One point to verify: PR:L is somewhat generous given the attacker must reach the privileged Kata agent API; this reflects Contrast's inverted trust model (infrastructure is untrusted) rather than a conventional authenticated-user prerequisite. |
| Exploit ScenarioDerived | A malicious or compromised Kubernetes cluster administrator with access to the Kata agent API crafts a storage entry using the image_guest_pull driver and swaps a legitimate confidential-container image for an exploit payload. Because the generated runtime policy's flawed allow_storage rule does not verify the image digest for that driver, the substitution passes policy validation as long as the replacement image satisfies the remaining rules, letting attacker-controlled code run inside the supposedly attested confidential container. No public exploit code or active exploitation has been identified; exploitation requires the privileged insider position defined in Contrast's threat model. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv2 – Oct 09, 2026
Container image substitution in Edgeless Contrast 1.14.0 through 1.23.0 lets an attacker who can reach the Kata agent API - in Contrast's threat model, a Kubernetes cluster administrator - swap a workload's container image for an exploit payload and thereby break the integrity guarantees of the confidential container. The root cause is a runtime-policy generation bug: a misplaced allow_storage rule introduced by a bad rebase during a Kata Containers update accepts storage entries using the image_guest_pull driver without verifying the image digest. No public exploit code has been identified at time of analysis and EPSS is low at 0.23% (12th percentile), but exploitation is authenticated (CVSS PR:L), non-automatable per SSVC, and gated on the substituted image still satisfying all remaining policy rules; technical impact is rated total.
Earlier versions of this analysis (1)
Contrast versions 1.14.0 through 1.23.0 generate runtime policies that accept substituted container images via the Kata Containers image_guest_pull storage driver without verifying the image digest, so an attacker with Kata agent API access - such as the untrusted Kubernetes cluster administrator in Contrast's threat model - can run an exploit payload inside a confidential container and undermine its integrity guarantees. The flaw is rooted in improper input validation (CWE-20) and was accidentally introduced by a bad rebase during a Kata Containers update; it requires authenticated low privileges (CVSS 4.0 PR:L, with the AT:P attack requirement) and a substitute image that still satisfies the remaining policy rules, and it carries a 7.6 High severity score. No public exploit identified at time of analysis and no confirmed active exploitation (CISA KEV); exploitation remains tightly scoped to deployments in the vulnerable range that rely on the affected allow_storage/image_guest_pull path.
RemediationAI
Upgrade Contrast to a release at or above 1.23.1, which is the first version outside the affected range and the fixed line referenced in the advisory (https://github.com/edgelesssys/contrast/security/advisories/GHSA-m2qg-wrxv-h898); the referenced vendor data lists the patch as available, and the VulnCheck advisory (https://www.vulncheck.com/advisories/contrast-before-1.23.1-image-substitution-via-policy-generation) and NVD entry (https://nvd.nist.gov/vuln/detail/CVE-2026-100833) document the same boundary. After upgrading, regenerate the runtime policies rather than reusing policies produced by an affected version, and inspect the generated policy for any allow_storage entry that permits the image_guest_pull driver without an accompanying image digest constraint. If immediate upgrade is not possible, the most direct compensating control is to remove or reject allow_storage rules for the image_guest_pull driver in the generated policy, accepting the trade-off that guest-pull registry offloading and any workflow depending on pulling images inside the guest will stop working until the fix is applied. In parallel, tighten Kubernetes RBAC so that the set of principals able to reach the Kata agent API is minimized and audited, since the exploited prerequisite is authenticated access to that API by an already privileged actor; this reduces but does not eliminate risk because a cluster administrator remains inside Contrast's threat model. Additional defense in depth is to enforce admission policies requiring digest-pinned image references and to add registry-side or admission-side image signature verification, with the caveat that those controls operate outside the Kata policy layer and may not cover every guest-pull path.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
Contrast (edgelesssys/contrast) is a Go-based toolchain from Edgeless Systems that generates runtime policies for Kata Containers so that Kubernetes pods run as confidential containers with a verifiable, policy-enforced image and storage integrity boundary. The vulnerable component is the policy generation logic, which emits an allow_storage rule that permits storage entries backed by the image_guest_pull driver - a Kata mechanism for pulling an image inside the guest rather than on the host - while omitting the image digest check that normally anchors the policy to an approved image. Because the rule was introduced accidentally during a rebase of the Kata Containers integration rather than by deliberate design, the policy appears valid but no longer binds the guest-pulled image content. The weakness maps to CWE-20 (Improper Input Validation): the generated policy fails to validate the identity of an input (the guest-pulled image) before authorizing it. An attacker with access to the Kata agent API can therefore present a substituted image that satisfies the remaining policy constraints and have it accepted, undermining the attested-integrity premise of the confidential container. The affected product is identified in the CPE data as cpe:2.3:a:edgelesssys:contrast:*:*:*:*:*:*:*:*, scoped by EUVD to versions 1.14.0 up to but not including 1.23.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
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N
Attacker reaches the Kata agent API over the network (AV:N) from the threat model's privileged-but-untrusted admin position (PR:L); image substitution defeats both integrity and confidentiality of the confidential workload (I:H/C:H), with no availability impact.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
Lifecycle Timeline
3DescriptionCVE.org
Contrast (edgelesssys/contrast) versions 1.14.0 before 1.23.1 generate runtime policies that fail to detect all container image substitutions. A bad rebase during a Kata Containers update accidentally introduced an allow_storage rule that accepts storage entries using the image_guest_pull driver without verifying the image digest. An attacker with access to the Kata agent API - for example, a Kubernetes cluster administrator in Contrast's threat model - can therefore substitute a container image with an exploit payload, provided the substituted image satisfies the remaining policy rules, undermining the confidential container's integrity guarantees.
Articles & Coverage 1
Technical POC Analysis
CWE-20 (Improper Input Validation): Contrast's generated runtime policy accepts a storage entry driven by the Kata imageguestpull driver without ever comparing the image digest (or source) against th…
Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.
Executive ViewAI
Edgeless Contrast versions 1.14.0 through 1.23.0 contain a runtime-policy flaw in the Kata Containers integration that allows a Kubernetes cluster administrator to substitute a workload's container image and break the integrity guarantee that underpins the platform's confidential-computing promise. Because the affected product's core value proposition is protecting workloads from precisely this class of privileged infrastructure actor, customer trust and any confidentiality commitments made to tenants running on unpatched clusters are directly at risk. Exploitation is authenticated, requires an already highly privileged position, is not automatable, and no public exploit code has been identified, so near-term real-world exploitation risk is assessed as moderate rather than imminent.
Apply vendor patch.
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-2026-87853
GHSA-mjj6-px65-jq92
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB