CVEReports
CVEReports

Automated vulnerability intelligence platform. Comprehensive reports for high-severity CVEs generated by AI.

Product

  • Home
  • Sitemap
  • RSS Feed

Company

  • About
  • Contact
  • Privacy Policy
  • Terms of Service

© 2026 CVEReports. All rights reserved.

Made with love by Amit Schendel & Alon Barad



GHSA-RH99-WC69-C255

GHSA-RH99-WC69-C255: CopyFile Policy Subversion via Symlinks in Edgeless Systems Contrast

Alon Barad
Alon Barad
Software Engineer

May 1, 2026·5 min read·37 visits

Executive Summary (TL;DR)

Contrast CLI versions prior to v1.19.1 generate insecure policies for the Kata Containers agent. An attacker can use symbolic links to bypass CopyFile restrictions, accessing unauthorized files within the confidential virtual machine. Upgrading to v1.19.1 and regenerating policies remediates the issue.

The Edgeless Systems Contrast CLI contains a high-severity vulnerability in its policy generation logic for the Kata Containers agent. It fails to properly restrict symbolic link resolution during CopyFile operations, allowing attackers to subvert container isolation policies and exfiltrate sensitive data from the Trusted Execution Environment (TEE).

Vulnerability Overview

GHSA-RH99-WC69-C255 is a high-severity vulnerability within the Edgeless Systems Contrast CLI. Contrast is a specialized tool utilized for deploying and managing confidential containers within Kubernetes environments. The vulnerability affects the policy generation mechanism responsible for configuring the Kata Containers agent.

The core issue resides in the subversion of the CopyFile policy through improper handling of symbolic links. The generated policies fail to enforce strict path resolution during file operations. This failure permits an attacker to bypass intended directory restrictions.

The impact of this vulnerability is a direct compromise of the Trusted Execution Environment (TEE) isolation. Attackers can leverage this flaw to exfiltrate sensitive data from the host or protected Confidential Virtual Machine (CVM) partitions. The vulnerability necessitates immediate remediation through CLI upgrades and policy regeneration.

Technical Root Cause Analysis

The vulnerability exists in the policy generation module of the Contrast CLI. Contrast produces security policies that dictate the permissible operations for the Kata Containers agent running inside a CVM. Among these operations is CopyFile, which controls file transfers within the environment.

The implementation fails to adequately restrict or resolve symbolic links during the validation phase of the CopyFile operation. When the Kata agent enforces the generated policy, it evaluates the file path provided by the requester against the allowed path patterns.

Because the generated policy lacks explicit directives to reject or safely resolve symlinks, an attacker can exploit a Time-of-Check Time-of-Use (TOCTOU) condition (CWE-59). The agent verifies the permissions of the symlink object itself, but the subsequent system call executes the copy operation on the underlying target file.

Policy Generation Logic

The vulnerable logic in versions prior to v1.19.1 generates a policy configuration that implicitly allows symlink resolution during file operations. The policy enforcement relies on standard path matching without requiring absolute path resolution prior to the operation.

In a vulnerable configuration, the Kata agent receives a policy that permits CopyFile operations within a specific directory scope (e.g., /allowed/directory/*). The policy engine does not include a mechanism to distinguish between standard files and symbolic links pointing outside this scope.

The fix introduced in version 1.19.1 modifies the policy generation logic. The patched CLI now generates policies with stricter path constraints, instructing the Kata agent to either validate the absolute, resolved path of the target file or to reject symlinks entirely for the CopyFile operation.

> [!NOTE] > Upgrading the CLI alone does not fix running containers. The vulnerability resides in the generated policy artifact, meaning existing policies must be explicitly regenerated using the patched CLI version to mitigate the flaw.

Exploitation Mechanics

Exploitation requires an attacker to have established a presence within the confidential container environment with sufficient privileges to create symbolic links. The attacker provisions a symlink within an allowed directory structure that points to an unauthorized, sensitive file located elsewhere on the filesystem.

Upon triggering the CopyFile operation through the Kata agent API, the agent reads the generated policy. The agent validates the path to the attacker-created symlink. Because the symlink is located within a permitted directory, the validation check passes.

During the execution phase, the agent's underlying file system call traverses the symlink. The operation succeeds, copying the sensitive target file instead of the symlink object itself. This mechanism allows the attacker to project the contents of restricted files into an accessible location.

Impact on Confidential Environments

In a confidential computing environment, security relies entirely on the integrity of the policies enforced by the agent. Subverting the CopyFile policy breaches the isolation boundary that separates the container workload from the underlying infrastructure.

By exploiting this vulnerability, an attacker can exfiltrate sensitive data. This includes accessing secrets mounted on the host, configuration files, or other protected areas of the CVM that were intended to be strictly isolated from the containerized application.

This flaw fundamentally circumvents the least privilege model. It compromises the primary value proposition of confidential computing by allowing unauthorized data access within the Trusted Execution Environment (TEE), rendering the hardware-level encryption and isolation guarantees ineffective against an internal threat.

Remediation and Redeployment

The primary mitigation requires upgrading the Contrast CLI and re-generating the Kata agent policies. Organizations must update their local CLI tools to version v1.19.1 or later to access the corrected policy generation logic.

After upgrading the CLI, administrators must generate new security policies for all confidential container workloads. The patched CLI will output policies that properly restrict symlink resolution during file operations.

Finally, the affected confidential containers must be redeployed. The Kata agent requires the newly generated policy files to enforce the correct security posture. Running workloads will remain vulnerable until they are restarted with the updated policies.

Official Patches

Edgeless SystemsFix Release v1.19.1

Technical Appendix

CVSS Score
8.4/ 10
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:N/A:N

Affected Systems

Edgeless Systems Contrast CLIKata Containers Agent

Affected Versions Detail

Product
Affected Versions
Fixed Version
Contrast CLI
Edgeless Systems
< 1.19.1v1.19.1
AttributeDetail
CWE IDCWE-59
Attack VectorLocal Container Execution
CVSS Score8.4
ImpactData Exfiltration, Policy Bypass
Exploit StatusNo public PoC
RemediationUpgrade CLI and Regenerate Policies

MITRE ATT&CK Mapping

T1611Escape to Host
Privilege Escalation
T1083File and Directory Discovery
Discovery
CWE-59
Improper Link Resolution Before File Access ('Link Following')

The software attempts to access a file based on the filename, but it does not properly prevent that filename from identifying a link or shortcut that resolves to an unintended resource.

Vulnerability Timeline

Vulnerability disclosed in the GitHub Advisory Database
2026-04-23
Fix released in v1.19.1 of edgelesssys/contrast
2026-04-23

References & Sources

  • [1]GitHub Advisory: GHSA-RH99-WC69-C255
  • [2]Fix Release v1.19.1
  • [3]Aliyun Vulnerability Database
  • [4]Contrast CLI Package Repository

Attack Flow Diagram

Press enter or space to select a node. You can then use the arrow keys to move the node around. Press delete to remove it and escape to cancel.
Press enter or space to select an edge. You can then press delete to remove it or escape to cancel.

More Reports

•33 minutes ago•CVE-2026-101894
9.1

CVE-2026-101894: Arbitrary File Read/Write via Symbolic Link Chaining in @xhmikosr/decompress

CVE-2026-101894 is a critical path traversal vulnerability in @xhmikosr/decompress before versions 10.2.2 and 11.1.4, stemming from an incomplete hardening bypass of CVE-2026-53486 where static lexical containment checks fail to detect kernel-level resolution of crafted symlink chains, allowing arbitrary local file modification and execution.

Amit Schendel
Amit Schendel
2 views•7 min read
•about 2 hours ago•CVE-2026-86818
4.8

CVE-2026-86818: Mailto Header Injection via Percent-Encoded Field-Name Desynchronization in fast-uri

A security-critical desynchronization vulnerability exists in fast-uri versions 4.1.3 and 4.1.4. Due to incorrect order-of-operations, the mailto scheme parser validates raw percent-encoded parameter keys instead of normalized keys, but subsequently decodes and writes them into a generic headers object. When the parsed URI is serialized, these keys are re-emitted literally, allowing attackers to bypass validation boundaries and smuggle unauthorized recipients, subjects, or body parameters in downstream mailing applications.

Amit Schendel
Amit Schendel
5 views•6 min read
•about 3 hours ago•CVE-2026-86472
4.8

CVE-2026-86472: Hostname Canonicalization Bypass in fast-uri via Scheme-Relative URLs

CVE-2026-86472 is a validation bypass vulnerability in fast-uri (a high-performance RFC 3986 URI toolbox heavily used by popular Node.js frameworks like Fastify and validation libraries like AJV). The vulnerability stems from improper handling of case sensitivity (CWE-178) due to an incorrect order of operations during hostname canonicalization in scheme-relative URLs. An attacker can leverage percent-encoded uppercase characters within scheme-relative URLs to bypass domain blocklists/allowlists in downstream applications. Because hostname resolution in DNS and HTTP is case-insensitive, the bypassed host representation still routes to the target destination, resulting in potential Server-Side Request Forgery (SSRF) or security control bypasses.

Amit Schendel
Amit Schendel
3 views•4 min read
•about 4 hours ago•CVE-2026-102281
7.5

CVE-2026-102281: Denial of Service via Uncaught Exception in @nestjs/microservices

An unauthenticated remote attacker can crash NestJS microservices utilizing TCP or RabbitMQ transport layers. The vulnerability exists due to recursive serialization of deeply nested message patterns using JSON.stringify, leading to a RangeError and process termination.

Amit Schendel
Amit Schendel
6 views•6 min read
•about 5 hours ago•CVE-2026-18149
5.9

CVE-2026-18149: Unresolved Response Body Hang in Undici RetryHandler

A resource management vulnerability in the Undici HTTP client (CWE-772) occurs when the retry interceptor receives a partial body payload followed by a non-retryable response error on a subsequent connection attempt, resulting in orphaned streams and potential Denial of Service (DoS).

Alon Barad
Alon Barad
5 views•8 min read
•about 6 hours ago•CVE-2026-102274
5.9

CVE-2026-102274: Denial of Service via Unhandled Exception in PyJWT JWK Set Parser

A vulnerability in PyJWT's JWK Set parsing logic allows a malformed RSA key to trigger an unhandled ValueError, leading to an application-wide or request-level Denial of Service.

Alon Barad
Alon Barad
5 views•6 min read