GHSA-5jpj-293f-rhvj: OS Command Injection

Published Sep 22, 2026
·
Updated

Impact

The KubeEdge NodeUpgradeJob handler constructed the keadm upgrade edge command by concatenating the user-controlled spec.version and spec.image fields into a shell command.

An authenticated user with permission to create or update NodeUpgradeJob resources through the v1alpha2 API could include shell metacharacters in either field. When the upgrade job was processed, the injected command could be executed on the targeted edge node with the privileges available to the upgrade process.

Successful exploitation could result in arbitrary command execution and compromise the confidentiality, integrity, and availability of the affected edge node.

Patches

The fix removes shell-based command construction and invokes keadm using a structured argument list through exec.Command.

The version and image values are passed as separate literal arguments and are no longer interpreted by a command shell.

The fixed versions:

KubeEdge v1.23.1 KubeEdge v1.22.2 KubeEdge v1.21.2

Workarounds

Until a patched version is available:

restrict permission to create or update NodeUpgradeJob resources to trusted administrators; do not allow untrusted users or tenants to control the spec.version or spec.image fields; avoid using NodeUpgradeJob-based edge upgrades in environments where these fields may be influenced by untrusted users.

Credits

KubeEdge thanks Sang-Hoon Choi (KoreaSecurity, Sejong University) for responsibly reporting this issue and for coordinating with the KubeEdge maintainers through the security disclosure process.

Affected Software

3 affected componentsFixes available
go/github.com/kubeedge/kubeedge>=1.23.0<1.23.1
1.23.1
go/github.com/kubeedge/kubeedge>=1.22.0<1.22.2
1.22.2
go/github.com/kubeedge/kubeedge>=1.12.0<1.21.2
1.21.2

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Upgrade

    Upgrade go/github.com/kubeedge/kubeedge to a version that resolves this vulnerability.

    Fixed in 1.23.1
  2. Upgrade

    Upgrade go/github.com/kubeedge/kubeedge to a version that resolves this vulnerability.

    Fixed in 1.22.2
  3. Upgrade

    Upgrade go/github.com/kubeedge/kubeedge to a version that resolves this vulnerability.

    Fixed in 1.21.2
  4. Upgrade

    Upgrade KubeEdge to a version that resolves this vulnerability.

    Fixed in v1.21.2
  5. Upgrade

    Upgrade KubeEdge to a version that resolves this vulnerability.

    Fixed in v1.22.2
  6. Upgrade

    Upgrade KubeEdge to a version that resolves this vulnerability.

    Fixed in v1.23.1
  7. Compensating control

    Avoid using NodeUpgradeJob-based edge upgrades where the spec.version or spec.image fields may be influenced by untrusted users; do not allow untrusted users or tenants to control those fields.

  8. Compensating control

    Restrict permission to create or update NodeUpgradeJob resources through the v1alpha2 API to trusted administrators.

Event History

Sep 22, 2026
Advisory Published
via GitHub·08:37 PM
Data Sourced
via GitHub·08:37 PM
DescriptionSeverityWeaknessAffected Software

Frequently Asked Questions

1

Which deployments are exposed to exploitation?

Deployments using the v1alpha2 NodeUpgradeJob API are exposed if an authenticated principal can create or update NodeUpgradeJob resources and can influence the spec.version or spec.image fields. The injected command executes when the upgrade job is processed for a targeted edge node.

2

What access does an attacker need?

An attacker needs authenticated permission to create or update NodeUpgradeJob resources through the v1alpha2 API. No user interaction is required after the malicious upgrade job is processed.

3

Which versions contain the fix?

The issue is fixed in KubeEdge v1.23.1, v1.22.2, and v1.21.2. The fix uses structured keadm arguments rather than constructing a shell command from version and image values.

4

What can be done before patching?

Restrict create and update permissions for NodeUpgradeJob resources to trusted administrators. Do not permit untrusted users or tenants to control the version or image fields in those resources.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203