CVE-2025-59358 Overview
CVE-2025-59358 is a Missing Authentication vulnerability (CWE-306) in the Chaos Controller Manager component of Chaos Mesh. The vulnerability exposes a GraphQL debugging server without authentication to the entire Kubernetes cluster, providing an API that allows attackers to kill arbitrary processes in any Kubernetes pod. This results in a cluster-wide denial of service condition that can severely impact containerized workloads.
Critical Impact
Attackers with network access to the Kubernetes cluster can exploit the unauthenticated GraphQL endpoint to terminate processes across any pod, leading to widespread service disruption and cluster instability.
Affected Products
- Chaos Mesh (all versions prior to patch)
- Chaos Controller Manager component
- Kubernetes deployments utilizing Chaos Mesh for chaos engineering
Discovery Timeline
- September 15, 2025 - CVE-2025-59358 published to NVD
- October 14, 2025 - Last updated in NVD database
Technical Details for CVE-2025-59358
Vulnerability Analysis
This vulnerability stems from a fundamental security design flaw in the Chaos Controller Manager's GraphQL debugging interface. The GraphQL server was implemented without any authentication or authorization controls, making it accessible to any entity within the Kubernetes cluster network. GraphQL introspection queries allow attackers to enumerate available mutations and queries, revealing the process termination capabilities.
The impact is particularly severe in Kubernetes environments because Chaos Mesh is designed with elevated privileges to perform chaos engineering operations. The lack of authentication on the debugging endpoint means these powerful capabilities—specifically the ability to kill processes in any pod—are exposed to unauthorized actors. An attacker who gains access to the cluster network can systematically target critical workloads, effectively creating a denial of service condition across the entire cluster.
Root Cause
The root cause is missing authentication controls (CWE-306) on the GraphQL debugging server endpoint within the Chaos Controller Manager. The debugging interface was exposed to the cluster network without implementing proper access control mechanisms, allowing any authenticated or unauthenticated cluster entity to invoke privileged operations. This represents a violation of the principle of least privilege and defense-in-depth security practices.
Attack Vector
The attack vector is network-based, requiring the attacker to have network connectivity to the Chaos Controller Manager service within the Kubernetes cluster. This could be achieved by:
- Compromising any pod within the cluster that has network access to the Chaos Mesh namespace
- Exploiting misconfigured network policies that allow cross-namespace communication
- Gaining access to the cluster network through other means (e.g., compromised credentials, exposed services)
Once network access is established, the attacker can send GraphQL queries to the debugging endpoint. The introspection capabilities of GraphQL allow easy enumeration of available operations, including mutations that trigger process termination in target pods. The attacker can then craft requests to systematically kill processes across multiple pods, causing widespread service disruption.
Detection Methods for CVE-2025-59358
Indicators of Compromise
- Unexpected GraphQL queries to the Chaos Controller Manager service from pods outside authorized namespaces
- Anomalous process termination events across multiple pods without corresponding Chaos Mesh experiment configurations
- Network traffic patterns showing repeated connections to the Chaos Controller Manager GraphQL port from unusual sources
- Kubernetes audit logs indicating unauthorized access attempts to Chaos Mesh services
Detection Strategies
- Monitor Kubernetes network policies and audit traffic to the Chaos Mesh namespace for unauthorized sources
- Implement network segmentation detection to identify pods attempting cross-namespace communication with Chaos Mesh
- Configure alerting on unexpected pod restarts or process crashes that don't correlate with scheduled chaos experiments
- Deploy runtime security monitoring to detect GraphQL introspection queries from untrusted sources
Monitoring Recommendations
- Enable Kubernetes audit logging with focus on service account access to Chaos Mesh resources
- Deploy network monitoring solutions to track traffic patterns to the Chaos Controller Manager service
- Implement pod-level monitoring to correlate process terminations with legitimate Chaos Mesh operations
- Set up alerts for GraphQL endpoint access patterns that deviate from normal chaos engineering workflows
How to Mitigate CVE-2025-59358
Immediate Actions Required
- Apply the security patch from the official GitHub pull request immediately
- Review and restrict network policies to limit access to the Chaos Mesh namespace
- Audit existing Kubernetes RBAC configurations to ensure proper access controls
- Temporarily disable or isolate the Chaos Controller Manager if patching is not immediately possible
Patch Information
The Chaos Mesh maintainers have addressed this vulnerability through GitHub Pull Request #4702. Organizations should update to the patched version as soon as possible. For detailed technical analysis of the vulnerability and its implications, refer to the JFrog security research blog post on Chaos Mesh vulnerabilities.
Workarounds
- Implement strict Kubernetes NetworkPolicies to restrict access to the Chaos Controller Manager service to only authorized namespaces and pods
- Deploy a service mesh with mTLS to enforce authentication on cluster-internal communications
- Use Kubernetes RBAC to limit which service accounts can interact with Chaos Mesh resources
- Consider temporarily disabling the GraphQL debugging endpoint if it is not required for operations
# Example NetworkPolicy to restrict access to Chaos Mesh namespace
kubectl apply -f - <<EOF
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: restrict-chaos-mesh-access
namespace: chaos-mesh
spec:
podSelector: {}
policyTypes:
- Ingress
ingress:
- from:
- namespaceSelector:
matchLabels:
authorized-chaos-access: "true"
EOF
Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.


