OS command injection in Chaos Mesh via the cleanTcs mutation
Description
The cleanTcs mutation in Chaos Controller Manager is vulnerable to OS command injection. In conjunction with CVE-2025-59358, this allows unauthenticated in-cluster attackers to perform remote code execution across the cluster.
AI Insight
LLM-synthesized narrative grounded in this CVE's description and references.
The cleanTcs mutation in Chaos Controller Manager is vulnerable to OS command injection, allowing unauthenticated in-cluster attackers to achieve remote code execution across the cluster.
Vulnerability
Overview
The cleanTcs mutation in the Chaos Controller Manager, part of the Chaos Mesh platform, is vulnerable to OS command injection [1][2]. This flaw, tracked as CVE-2025-59359, allows an attacker to inject arbitrary operating system commands through the GraphQL API endpoint. The vulnerability exists because user-supplied input is not properly sanitized before being passed to a shell command [2].
Exploitation
Exploitation requires the attacker to have in-cluster network access, which is a common scenario even for unprivileged pods [2]. The attacker can reach the Chaos Controller Manager's GraphQL server, which is exposed by default, and send a crafted mutation to the cleanTcs endpoint [2]. No authentication is needed to trigger the command injection [3]. This vulnerability is chained with CVE-2025-59358 to achieve full remote code execution [1][2][3].
Impact
A successful exploit allows an unauthenticated in-cluster attacker to execute arbitrary OS commands on the Chaos Controller Manager pod. This can be leveraged to steal privileged service account tokens, move laterally, and ultimately take over the entire Kubernetes cluster [2]. The impact is critical, with a CVSS score of 9.8 [2].
Mitigation
The issue is fixed in Chaos Mesh version 2.7.3 [2]. Users are strongly advised to upgrade immediately. If upgrading is not possible, workarounds include restricting network access to the Chaos Controller Manager's GraphQL port (10080) and disabling the chaosctl feature [1][2].
AI Insight generated on May 19, 2026. Synthesized from this CVE's description and the cited reference URLs; citations are validated against the source bundle.
Affected packages
Versions sourced from the GitHub Security Advisory.
| Package | Affected versions | Patched versions |
|---|---|---|
github.com/chaos-mesh/chaos-meshGo | < 2.7.3 | 2.7.3 |
Affected products
1- Range: chart-0.1.0, chart-0.1.1, chart-0.2.0, …
Patches
167281c36f806chore!: disable chaosctl by default (#4702)
4 files changed · +3 −10
CHANGELOG.md+1 −0 modified@@ -26,6 +26,7 @@ For more information and how-to, see [RFC: Keep A Changelog](https://github.com/ - Adopt vite and swc in the Dashboard UI [#4688](https://github.com/chaos-mesh/chaos-mesh/pull/4688) - Update usage about helm-values-schema-json [#4719](https://github.com/chaos-mesh/chaos-mesh/pull/4719) - Update swag to v1.16.4 +- Update `enableCtrlServer` to `false` by default in the Helm chart [#4702](https://github.com/chaos-mesh/chaos-mesh/pull/4702) ### Deprecated
.github/workflows/integration_test.yml+1 −1 modified@@ -85,7 +85,7 @@ jobs: run: | helm install --wait --create-namespace chaos-mesh helm/chaos-mesh \ -n=chaos-mesh --set images.tag=latest --set chaosDaemon.env.DOCKER_API_VERSION=1.41 \ - --set controllerManager.chaosdSecurityMode=false + --set controllerManager.chaosdSecurityMode=false,enableCtrlServer=true kubectl port-forward -n chaos-mesh svc/chaos-dashboard 2333:2333 & - uses: actions/setup-go@v5
helm/chaos-mesh/values.yaml+1 −1 modified@@ -42,7 +42,7 @@ timezone: "UTC" enableProfiling: true # enableCtrlServer is a flag to enable ctrlserver which provides service to chaosctl in controller-manager. -enableCtrlServer: true +enableCtrlServer: false images: # images.registry is the global container registry for the images, you could replace it with your self-hosted container registry.
install.sh+0 −8 modified@@ -1507,10 +1507,6 @@ spec: targetPort: pprof protocol: TCP name: pprof - - port: 10082 - targetPort: ctrl - protocol: TCP - name: ctrl - port: 10080 targetPort: http protocol: TCP @@ -1879,8 +1875,6 @@ spec: value: "false" - name: PPROF_ADDR value: ":10081" - - name: CTRL_ADDR - value: ":10082" - name: CHAOS_DNS_SERVICE_NAME value: chaos-mesh-dns-server - name: CHAOS_DNS_SERVICE_PORT @@ -1910,8 +1904,6 @@ spec: containerPort: 10080 - name: pprof containerPort: 10081 - - name: ctrl - containerPort: 10082 volumes: - name: webhook-certs secret:
Vulnerability mechanics
Generated on May 9, 2026. Inputs: CWE entries + fix-commit diffs from this CVE's patches. Citations validated against bundle.
References
5- github.com/advisories/GHSA-369h-6j28-wwcgghsaADVISORY
- nvd.nist.gov/vuln/detail/CVE-2025-59359ghsaADVISORY
- github.com/chaos-mesh/chaos-mesh/commit/67281c36f8068bf103149318cd0a466417213a28ghsaWEB
- github.com/chaos-mesh/chaos-mesh/pull/4702ghsaWEB
- jfrog.com/blog/chaotic-deputy-critical-vulnerabilities-in-chaos-mesh-lead-to-kubernetes-cluster-takeoverghsaWEB
News mentions
0No linked articles in our index yet.