Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessObtain valid mesh certificate for any WorkloadSecretID
-
DeliveryCraft ciphertext with sub-12-byte base64 blob
-
ExploitPOST to transit-engine endpoint
-
ExecutionSlice-bounds panic in UnmarshalJSON
-
PersistRecovered 500 plus log spam
-
ImpactRepeat for sustained degradation
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V2 - Validation and Business Logic Array index validation
|
| Exploitation Conditions | Requires an authenticated caller that holds a valid mesh certificate for any WorkloadSecretID and network reach to the Contrast Coordinator's transit-engine endpoint (versions through 1.20.0). The specific trigger is submitting a 'vault:vX:base64' ciphertext whose third component base64-decodes to fewer than 12 bytes (any base64 string shorter than ~16 characters). No user interaction and no special non-default configuration are needed beyond the transit-engine being in use. Limiting factors: the mesh-certificate authentication requirement (PR:L), and the fact that the panic is recovered by net/http so the process survives - impact is confined to log spam, failed requests, and endpoint degradation rather than a hard crash or data compromise. |
| Impact | This is a genuinely low-priority availability-only issue despite being reachable over the network. The vendor CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:N/VA:L, 5.3) is internally consistent with the advisory: the impact is limited (VA:L) because the panic is recovered by net/http's handler goroutine - the Coordinator process does NOT crash, it returns a 500 and continues. The realistic outcome is log spam, elevated request-failure metrics, and a 'slow but cheap' degradation of the transit-engine endpoint, not a full outage. Exploitation requires an authenticated workload holding a valid mesh certificate (PR:L), which meaningfully raises the bar over a truly unauthenticated DoS. No EPSS score, no CISA KEV listing, and no independent POC are provided, though the GHSA advisory itself contains the exact triggering mechanics (a short base64 ciphertext), effectively serving as a proof of concept. No SSVC decision block was supplied. There is no signal of active exploitation. Bottom line: a real but minor DoS gated behind authentication with self-healing impact - patch on normal cadence, not an emergency. Note the input tag 'Denial Of Service' is accurate here, unlike some sibling Contrast CVEs whose tags were mislabeled. |
| Exploit ScenarioDerived | An authenticated workload with a valid mesh certificate for any WorkloadSecretID sends a crafted request to the transit-engine endpoint containing a 'vault:vX:base64' ciphertext whose base64 component decodes to fewer than 12 bytes. During JSON parsing, ciphertextContainer.UnmarshalJSON slices the too-short buffer to extract the 12-byte AES-GCM nonce, triggering a Go runtime slice-bounds panic that is recovered to a 500 response. Repeating this cheaply produces sustained log spam and request failures against the Coordinator; the GHSA advisory documents the exact panicking code path. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Sep 27, 2026
Authenticated workloads that hold a valid mesh certificate can force a recovered runtime panic in the Edgeless Contrast Coordinator's transit-engine endpoint (all versions through 1.20.0) by submitting a 'vault:vX:base64' ciphertext whose third component decodes to fewer than 12 bytes. The panic is caught by net/http and returned as a 500, so the process survives, but each trigger aborts the request mid-handler and writes the recovered panic to the Coordinator logs, producing log spam, request-failure metrics, and a cheap, low-rate degradation of the transit-engine API. Reachability is gated by mesh-certificate authentication (CVSS 4.0 base 5.3, AV:N/PR:L, availability-only), and no public exploit code or confirmed active exploitation was identified at time of analysis; a vendor fix is available in 1.21.0, making this a low-priority hardening item rather than an urgent one.
RemediationAI
Upgrade Edgeless Contrast to 1.21.0 or later, which contains the length validation fix; the upstream change is commit d6584fbff816037472034f7ad6e08cdbab1d870d and full details are in GHSA-3ccm-4qq2-5wrp (https://github.com/edgelesssys/contrast/security/advisories/GHSA-3ccm-4qq2-5wrp). There is no configuration toggle that disables the affected parsing path, so patching is the only complete fix. As compensating controls pending the upgrade: restrict network reachability to the Coordinator's transit-engine endpoint so only workloads that actually need key operations can reach it (trade-off: any legitimate caller outside that narrow allowlist loses transit-engine access until rules are updated), audit and minimize the set of mesh certificates / WorkloadSecretIDs issued, and revoke certificates that are no longer needed, since only a certificate-holding workload can trigger the panic (trade-off: aggressive certificate rotation adds operational overhead and can break long-running workloads if not staged). Because the panic is recovered by net/http and the process survives, hardening priorities are observability and abuse detection: monitor the Coordinator for repeated HTTP 500 responses and 'slice bounds out of range' panic entries in logs, and apply log rate limiting or sampling so a misbehaving or malicious workload cannot flood storage (trade-off: rate limiting can mask the early signal of a real outage, so pair it with an alert on the underlying 500/panic counter). No vendor workaround obviates the need to patch; treat this as a low-urgency availability fix rather than an emergency, given the authenticated prerequisite and the absence of identified public exploit code or confirmed active exploitation.
Affected VersionsENISA
Affected Packages
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 Edgeless Systems' confidential-computing service mesh for Kubernetes; its Coordinator exposes a Vault-style 'transit engine' HTTP API that mesh workloads call, authenticated with mesh certificates issued per WorkloadSecretID. The vulnerable code lives in coordinator/internal/transitengineapi/crypto.go, where ciphertextContainer.UnmarshalJSON parses the 'vault:vX:base64...' wire format with strings.SplitN(encoded, ":", 3), validates the version token, then base64-decodes the third component and unconditionally executes c.nonce = fullCiphertext[:aesGCMNonceSize] with aesGCMNonceSize = 12, followed by c.ciphertext = fullCiphertext[12:]. This is CWE-129 (improper validation of array index / slice bounds): no length check is performed before the fixed-width slice, so any decoded payload shorter than 12 bytes - i.e. roughly any base64 string under ~16 characters - raises Go's 'slice bounds out of range [:12] with length N' runtime panic. Critically, this occurs during JSON body parsing inside the request handler, before any AES-GCM cryptographic operation is attempted, meaning no key material, plaintext, or integrity check is involved and no cryptographic primitive is weakened. Because Go's net/http recovers panics per connection goroutine, the Coordinator translates the panic into a 500 response and continues serving; the security impact is therefore confined to request abortion, log volume, and observability noise rather than process death, memory corruption, or data disclosure.
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:N/VI:N/VA:L/SC:N/SI:N/SA:N
Network-reachable and low-complexity, but needs a valid mesh certificate (PR:L); impact is availability-only and partial (A:L) since the recovered panic degrades but does not crash the process.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
DescriptionCVE.org
Contrast through 1.20.0 contains a panic vulnerability in the transit-engine endpoint's ciphertextContainer.UnmarshalJSON function that fails to validate decoded ciphertext length before slicing. An authenticated workload with a valid mesh certificate can trigger a runtime panic by submitting a short base64-encoded ciphertext, causing log spam and request failures without crashing the process.
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
Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.
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-87831
GHSA-x66w-59x9-vvcf
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB