Executive brief
OpenChoreo's API server allows authenticated users to execute commands and read logs on components owned by other projects in the same namespace. A low-privilege user with access to just one project can exploit this to run arbitrary commands on any other project's workloads, exposing sensitive data like database credentials and API keys. The vulnerability fundamentally breaks project isolation within a namespace.
Technical details
The vulnerability is an authorization bypass (CWE-639, CWE-863) in the openchoreo-api exec and wirelogs endpoints. The flaw stems from the authorization engine evaluating access control against the caller-supplied project query parameter rather than the actual owning project of the target component. Target components are resolved by name only, and the system never checks the component's real owning project (comp.Spec.Owner.ProjectName). An authenticated user with project-scoped component:exec or wirelogs:view permissions on any single project can use this to execute arbitrary commands or read logs for any component in the same namespace. Attack vectors include both the network-accessible API endpoints, with low attack complexity and low privilege requirements. The blast radius is limited to the same namespace (not cross-namespace), but encompasses all components within it. Patches are available in versions 1.2.3 and 1.1.6, with the fix properly validating authorization against the component's real owning project instead of the caller-supplied parameter.
Affected products
- OpenChoreo openchoreo-api >=1.2.0-m.1, <1.2.3; <1.1.6
Timeline
- 2026-07-27: disclosed: Initial advisory publication
- 2026-08-13: patched: Fixed in versions 1.2.3 and 1.1.6
- 2026-09-02: advisory: GitHub Advisory Database update