Authorization Bypass in OpenChoreo API Endpoints
An authorization flaw in the OpenChoreo API server allows authenticated users with project-scoped grants to execute commands and access logs across different projects within the same namespace.
CVE search metadata
CVE search record: CVE-2026-73841. Severity: high. CVSS: 8.8. EPSS: 0.35%. KEV: no. Product: openchoreo-api (v1.2.0-m.1 - 1.2.2), openchoreo-api (< 1.1.6). Brief: Authorization Bypass in OpenChoreo API Endpoints. Brief link: https://feed.craftedsignal.io/briefs/2026-09-openchoreo-auth-bypass/
OpenChoreo versions prior to 1.2.3 and 1.1.6 contain an authorization bypass vulnerability (CVE-2026-73841) within the openchoreo-api component's exec and wirelogs endpoints. The API server incorrectly trusts user-supplied project identifiers to authorize requests instead of validating the target component against its actual owning project recorded in the internal resource hierarchy. Because the authorization engine only verifies if the caller holds a project-scoped grant (such as component:exec or wirelogs:view), a malicious actor with legitimate access to a single project can perform unauthorized operations on components belonging to other projects within the same Kubernetes namespace. This flaw enables cross-project command execution and unauthorized access to sensitive workload logs, potentially exposing environment variables, credentials, and secrets.
Attack Chain
- Attacker gains access to a low-privileged account with a valid
component:execorwirelogs:viewgrant for a single project within an OpenChoreo-managed namespace. - Attacker identifies a high-value target component in a different project within the same namespace.
- Attacker crafts an HTTP request to the
openchoreo-apiexecorwirelogsendpoint. - Attacker substitutes the project parameter in the request with the identifier of the victim's component project.
- The API server processes the request, resolving the target component by name without verifying the ownership relationship.
- The authorization engine validates the attacker's grant against the caller-supplied (spoofed) project ID.
- The server grants the attacker access, permitting command execution or log retrieval from the target component pod.
Impact
The vulnerability allows unauthorized users to achieve remote command execution or sensitive data exfiltration from workloads they do not own, provided the target is within the same namespace. Successful exploitation allows for the compromise of environment variables and Kubernetes Secrets associated with the targeted component, lateral movement within the cluster, and potential disruption of service integrity across different organizational teams sharing a namespace.
Recommendation
Prioritized actions for security and infrastructure teams:
- Upgrade
openchoreo-apito version 1.2.3 or 1.1.6 immediately to enforce correct project-based authorization (CVE-2026-73841). - Audit existing
component:execandwirelogs:viewgrants to ensure they are restricted to trusted operators only. - Segregate highly sensitive components into distinct Kubernetes namespaces to prevent cross-project access while the patch is being deployed.
- Review cluster-gateway configuration to ensure internal proxies enforce caller authorization, addressing the related security gaps noted in GHSA-rh53-xvx2-j327.
Immediate actions
Upgrade openchoreo-api to version 1.2.3 or 1.1.6
Mitigations
Restrict component:exec and wirelogs:view grants to trusted operators
CVE-2026-73841