KubeVela Terraform Remote Loader Denial of Service via Unbounded File Read
An attacker with ComponentDefinition management permissions can trigger a control-plane denial of service in KubeVela by injecting a symlink to /dev/zero within a remote Terraform repository, causing an OOM-induced controller crash.
CVE search metadata
CVE search record: CVE-2026-55108. Severity: high. CVSS: 8.5. KEV: no. Product: vela-core (< 1.9.14), vela-core (>= 1.10.0-alpha.1, < 1.10.9), vela-core (>= 1.11.0-alpha.1, < 1.11.0-alpha.4). Brief: KubeVela Terraform Remote Loader Denial of Service via Unbounded File Read. Brief link: https://feed.craftedsignal.io/briefs/2026-08-kubevela-dos/
KubeVela versions 1.9.14, 1.10.9, and 1.11.0-alpha.4 are vulnerable to a denial-of-service (DoS) condition (CVE-2026-55108) within the vela-core controller. The vulnerability exists in the Terraform remote configuration loader, specifically within pkg/controller/utils/capability.go. The controller improperly validates file paths when processing remote git repositories defined in ComponentDefinition resources. By crafting a repository that includes a symlink (e.g., variables.tf pointing to /dev/zero), an attacker can force the vela-core controller to perform an unbounded read via os.ReadFile. Because the controller follows symlinks and does not verify file size or target location before reading, the process memory usage grows until the controller is terminated by the kernel OOM killer. This vulnerability affects the core control plane and can cause persistent crash loops if the malicious definition remains in the cluster.
Attack Chain
- Attacker gains authorization to create or update
core.oam.dev/v1beta1ComponentDefinitionresources in a target namespace. - Attacker initializes a git repository and creates a relative symbolic link named
variables.tformain.tfthat resolves to/dev/zero(e.g.,ln -s ../../../../../../dev/zero variables.tf). - Attacker pushes the repository to a location accessible by the KubeVela controller.
- Attacker creates or updates a
ComponentDefinitionresource, settingspec.schematic.terraform.typetoremoteand providing the URL to the malicious repository. - The
vela-corecontroller initiates a reconcile loop and clones the repository into its local cache. - The
GetTerraformConfigurationFromRemotefunction executesos.Statandos.ReadFileon the attacker-controlled symlink path. - The controller consumes system memory indefinitely while reading from the
/dev/zerostream. - The
vela-corecontroller process reaches the container memory limit and is terminated with an OOMKilled status, resulting in a denial-of-service for the KubeVela control plane.
Impact
Successful exploitation results in a denial-of-service of the KubeVela control plane. The vela-core controller Pod enters a CrashLoopBackOff state, preventing the orchestration of application components across the cluster. If the controller lacks enforced memory limits, the unbounded read can place extreme pressure on node memory, potentially impacting other co-located workloads.
Recommendation
- Upgrade
vela-coreto the patched versions immediately: 1.9.14, 1.10.9, or 1.11.0-alpha.4. - Audit existing
ComponentDefinitionresources to identify and restrictremoteTerraform repository URLs to trusted, internal-only sources. - Implement strict RBAC controls to limit which users can create or modify
ComponentDefinitionobjects within the cluster. - Ensure Kubernetes memory limits are configured for the
vela-corecontroller deployment to contain the impact of OOM conditions and prevent node-wide instability.
Immediate actions
Upgrade vela-core to version 1.9.14, 1.10.9, or 1.11.0-alpha.4.
Mitigations
Review all ComponentDefinition resources to verify remote Terraform sources are from trusted repositories.
CVE-2026-55108