CVE-2026-73842 is a critical-severity (CVSS 9) Improper Privilege Management vulnerability in github.com/openchoreo/openchoreo. A fix is available for github.com/openchoreo/openchoreo — see the affected versions and patch details below.
OpenChoreo: cluster-gateway internal proxy performs no caller authentication and is not read-only — data-plane Secret disclosure and arbitrary Kubernetes mutation
Exploitation Status
No confirmed exploitation observed yet
- A successful exploit gives an attacker total control of the affected component, not partial access.
- CISA’s own triage has not observed active exploitation or public proof-of-concept code for this CVE as of its last assessment.
Exploitation and automatability from CISA’s SSVC triage for CVE-2026-73842.
EPSS Exploitation Probability
Probability of exploitation in the next 30 days, from FIRST.org EPSS.
How urgent is this, really
CVE-2026-73842 by exploitation likelihood (EPSS) against impact (CVSS). Outside the shaded patch-first corner.
Where this sits among everything scored
Of 380,066 CVEs with a current EPSS score, this one falls in the < 10% band (highlighted). Counts from FIRST.org, log-scaled.
Real-World Exposure
github.com/openchoreo/openchoreo🐹github.com/openchoreo/openchoreo🐹github.com/openchoreo/openchoreoReal-time download stats are indexed for npm and PyPI packages. This vulnerability affects Go packages — download data is not available via public APIs for these ecosystems.
Description
Summary
The OpenChoreo control-plane cluster-gateway exposes internal management APIs (/api/proxy/, /api/exec/, /api/wirelogs/) that tunnel requests through to connected data planes' Kubernetes APIs, but the internal listener authenticates no caller. Its request validator permits mutating HTTP methods and reads of Secrets in tenant namespaces (only kube-system Secrets are blocked), so 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 — with no client certificate or token — read Secrets in any tenant namespace, create/modify/delete workloads, and exec into pods across every connected data plane.
Impact
An attacker with network access to the cluster-gateway internal listener obtains tunneled access to every connected data plane's Kubernetes API with no caller-level access control. Across all connected data planes, this allows:
- Secret disclosure — reading any Secret outside
kube-systemin any tenant namespace (database credentials, cloud/KMS keys, TLS private keys), independent of any workload ServiceAccount permissions. - Workload tampering or destruction — creating, modifying, or deleting Deployments, Services, and other resources.
- Pod command execution inside workload pods via
/api/exec/.
This is also 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 — and any other authz gap or SSRF that reaches the internal API — reaches the data-plane Kubernetes API unchecked.
Direct exploitability depends on the network isolation of the internal listener, which is not fixed in source. Where the internal port is reachable by untrusted workloads with no restrictive NetworkPolicy — and with impact landing in a separate data-plane cluster — this is Critical; it is scored conservatively as High otherwise.
Patches
Fixed in 1.0.3, 1.1.3, and 1.2.0. Upgrade path: 1.1.x → 1.1.2, 1.0.x and earlier → 1.0.2, 1.2.0-rc1 line → 1.2.0.
Affected Packages
| Ecosystem | Package | Vulnerable range | Fix |
|---|---|---|---|
| 🐹Go | github.com/openchoreo/openchoreo | all versions | 1.0.3go get github.com/openchoreo/openchoreo@v1.0.3 |
| 🐹Go | github.com/openchoreo/openchoreo | ≥ 1.1.0&&< 1.1.3 | 1.1.3go get github.com/openchoreo/openchoreo@v1.1.3 |
| 🐹Go | github.com/openchoreo/openchoreo | ≥ 1.2.0-rc.1&&< 1.2.0 | 1.2.0go get github.com/openchoreo/openchoreo@v1.2.0 |
Detection & mitigation playbook
Open-source dependencyDetect
Scan your dependency tree (package-lock.json, pnpm-lock.yaml, requirements.txt, go.sum, etc.) for github.com/openchoreo/openchoreo, including transitive dependencies — a direct dependency you never call can still pull in a vulnerable version.
Fix
Update github.com/openchoreo/openchoreo to 1.0.3 or later, then make sure no transitive (indirect) dependency still pins the vulnerable range — O3 confirms CVE-2026-73842 is resolved across your whole dependency graph.
Workarounds
Restrict outbound requests from the affected component to an allowlist of hosts, block access to link-local and internal address ranges at the network layer, and require authentication on internal services so a forged request cannot reach them unauthenticated.
Frequently Asked Questions
Is CVE-2026-73842 in your dependencies?
Find it across Go, including transitive dependencies.