ZeroHour

CVE-2026-55108

moderate

Symlink-based memory exhaustion DoS in KubeVela vela-core Terraform loader

CVSS 3.1
8.5 high
EPSS
<1%p45
Published
()
Modified
AI analysis

KubeVela's Terraform remote configuration loader (GetTerraformConfigurationFromRemote in pkg/controller/utils/capability.go) follows repository-controlled symlinks for variables.tf and main.tf referenced by a core.oam.dev/v1beta1 ComponentDefinition, without bounding what the link resolves to. A user with permission to create or update ComponentDefinition objects can set terraform.path so that variables.tf points at /dev/zero, causing os.Stat and os.ReadFile to consume an unbounded stream before HCL parsing can reject the content. The resulting memory exhaustion can OOM-kill the cluster-wide vela-core controller, triggering repeated Pod restarts and, when no effective container memory limit is configured, node-level memory pressure; the CVSS vector also carries a low confidentiality component, yielding an overall High (8.5) score. Anyone running KubeVela prior to 1.9.14, 1.10.0-alpha.1 through before 1.10.9, or 1.11.0-alpha.1 through before 1.11.0-alpha.4 is affected, with practical exploitability limited to clusters that grant ComponentDefinition create/update rights to non-admin users. There is no known exploitation, no public proof-of-concept, and the flaw is not in CISA KEV; EPSS puts the 30-day exploitation probability at 0.6%.

What to do: Upgrade to KubeVela 1.9.14, 1.10.9, or 1.11.0-alpha.4 (or later) depending on your release line. Until patched, restrict create/update permissions on core.oam.dev/v1beta1 ComponentDefinition objects to trusted administrators and audit existing ComponentDefinitions for terraform.path values resolving to device files such as /dev/zero. Also ensure vela-core has effective container memory limits to contain any OOM blast radius, and monitor for unexpected controller Pod restarts.

Affected
KubeVela (open source application delivery platform) KubeVela (vela-core controller)prior to 1.9.14
KubeVela (open source application delivery platform) KubeVela (vela-core controller)1.10.0-alpha.1 through before 1.10.9
KubeVela (open source application delivery platform) KubeVela (vela-core controller)1.11.0-alpha.1 through before 1.11.0-alpha.4
Estimated exposure
moderatelikely on the order of thousands to low tens of thousands of Kubernetes clusters running an affected vela-core controller; unknown precisely, with the… — vela-core runs one controller per cluster and KubeVela is a niche CNCF incubating delivery platform with far smaller deployment share than mainstream GitOps tools, and only clusters granting non-admin users ComponentDefinition…

Order-of-magnitude estimate by the model from install counts, market share and public scan data it knows; verify before quoting.

Description

KubeVela is an open source application delivery platform. Prior to 1.9.14, from 1.10.0-alpha.1 until 1.10.9, and from 1.11.0-alpha.1 until 1.11.0-alpha.4, the Terraform remote configuration loader in pkg/controller/utils/capability.go, GetTerraformConfigurationFromRemote, clones a repository supplied through a core.oam.dev/v1beta1 ComponentDefinition and follows repository-controlled variables.tf or main.tf symlinks. A user with permission to create or update ComponentDefinition objects can point variables.tf to /dev/zero through terraform.path, after which os.Stat and os.ReadFile follow the link and read an unbounded stream before ParseTerraformVariables or HCL parsing can reject the content. The read can exhaust memory, OOM-kill the cluster-wide vela-core controller, cause repeated Pod restarts, and pressure node memory when no effective container limit is configured. This issue is fixed in versions 1.9.14, 1.10.9, and 1.11.0-alpha.4.

Weakness
CWE-59, CWE-400
Vector
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:N/A:H

In the news

No ingested article mentions this CVE yet.