CVEReports
CVEReports

Automated vulnerability intelligence platform. Comprehensive reports for high-severity CVEs generated by AI.

Product

  • Home
  • Sitemap
  • RSS Feed

Company

  • About
  • Contact
  • Privacy Policy
  • Terms of Service

© 2026 CVEReports. All rights reserved.

Made with love by Amit Schendel & Alon Barad



CVE-2026-73843

CVE-2026-73843: Critical Missing Authentication and Privilege Escalation in OpenChoreo Cluster Gateway

Alon Barad
Alon Barad
Software Engineer

Sep 3, 2026·7 min read·54 visits

Executive Summary (TL;DR)

OpenChoreo allowed unauthenticated remote command execution and API proxying in target Kubernetes clusters due to sharing public and private ports on the same gateway multiplexer.

Prior to versions 1.0.2 and 1.1.2, OpenChoreo's cluster gateway combined public agent traffic and administrative control-plane APIs on a single TCP port (8443). Exposing this port allowed external unauthenticated actors to access sensitive proxy and execution interfaces.

Vulnerability Overview

OpenChoreo is a developer platform for Kubernetes that coordinates remote tenant workloads. The platform establishes secure communication channels using remote agents deployed in target data-plane clusters. These agents initiate persistent WebSocket links to a centralized cluster-gateway component. The gateway must expose a public TCP port to allow inbound traffic from geographically separated Kubernetes clusters.

The primary architectural flaw in OpenChoreo prior to versions 1.0.2 and 1.1.2 is the concentration of multi-sphere routes on a single public-facing socket. The cluster-gateway initialized a unified TCP listener to serve both agent connectivity and administrative operations. By exposing this gateway port to the network to facilitate agent connections, administrative control-plane endpoints were exposed to the same network audience.

This Exposure of Resource to Wrong Sphere (CWE-668) results in complete authentication bypass for critical operations (CWE-306). Remote unauthenticated network actors situated on adjacent network paths can leverage these administrative paths to interact with the managed data-plane clusters. The vulnerability manifests primarily on TCP port 8443, exposing the cluster gateway to complete unauthorized takeover.

Root Cause Analysis

The root cause of CVE-2026-73843 lies in the unified HTTP routing multiplexer implementation inside the cluster-gateway subsystem. The Go application utilized a single http.ServeMux to handle incoming HTTP requests on the designated public gateway port (defaulting to 8443). The multiplexer registered public-facing WebSocket routes (/ws) alongside highly privileged control plane and proxy endpoints (/api/*) on the same listener configuration.

The platform's logical boundaries dictate that data-plane agents connect to /ws, while administrative services query the /api/* endpoints. Because the multiplexer evaluated all request paths against the same socket, there was no logical separation at the network layer. Consequently, any network interface permitted to send WebSocket initiation packets could also issue HTTP requests targeting the /api/ routing paths.

Furthermore, the internal handlers for /api/proxy/ and /api/exec/ lacked any software-level authentication checks, cryptographic handshakes, or role-based access validation. This structural omission assumed that any traffic reaching these paths originated from within a trusted perimeter. When multi-cluster deployments forced the exposure of port 8443 to the wider network, this trust assumption failed, leading to direct access to high-privilege execution vectors.

Code Analysis & Patch Inspection

Prior to the application of the remediation patch, the initialization of the HTTP server inside internal/cluster-gateway/server.go was configured to use a single router instance. Review of the vulnerable codebase shows that the Go HTTP handler routed traffic to /ws, /api/proxy/, /api/exec/, and /api/wirelogs/ through a single server instance. The registration of routes on the unified multiplexer did not implement any middleware validation or authorization filters.

// VULNERABLE CODE - internal/cluster-gateway/server.go
mux := http.NewServeMux()
mux.HandleFunc("/ws", s.handleWebSocket)          // Public agent endpoint
mux.HandleFunc("/api/proxy/", s.handleHTTPProxy)   // Unauthenticated HTTP proxy to Kubernetes API
mux.HandleFunc("/api/exec/", s.handleExec)         // Unauthenticated WebSocket remote command execution
mux.HandleFunc("/api/wirelogs/", s.handleWirelogs) // Unauthenticated network monitoring flow stream

The fix introduced in Pull Request #4122 establishes strict boundary isolation by instantiating two discrete Go http.Server instances running on separate sockets. The public-facing port (default 8443) is mapped strictly to a public multiplexer serving the /ws agent endpoint. A secondary, private socket (default 8444) is bound exclusively to the internal control-plane network to serve the administrative API endpoints.

// PATCHED CODE - internal/cluster-gateway/server.go
// Public listener: restricted exclusively to remote agent WebSockets
publicMux := http.NewServeMux()
publicMux.HandleFunc("/ws", s.handleWebSocket)
 
// Private internal listener: hosts caller-facing administrative endpoints
internalMux := http.NewServeMux()
internalMux.HandleFunc("/api/proxy/", s.handleHTTPProxy)
internalMux.HandleFunc("/api/exec/", s.handleExec)
internalMux.HandleFunc("/api/wirelogs/", s.handleWirelogs)
 
// Parallel goroutines are initialized to spin up both servers independently
s.httpServer = &http.Server{
    Addr:    fmt.Sprintf(":%d", s.config.Port),
    Handler: publicMux,
}
s.internalServer = &http.Server{
    Addr:    fmt.Sprintf(":%d", s.config.InternalPort), // Defaults to 8444
    Handler: internalMux,
}

By ensuring that the internal port 8444 is never exposed to external traffic, this architectural change mitigates the vulnerability. Any attempt to reach /api/proxy/ or /api/exec/ on the public-facing port 8443 now results in a 404 Not Found response, as the public multiplexer contains no routing rules for those paths.

Exploitation Methodology

Exploitation of CVE-2026-73843 is straightforward and does not require complex payloads or multi-stage bypasses. An attacker with network access to the exposed gateway port (typically 8443) first validates the presence of the endpoint by checking the TLS certificate or path behavior. Because the administrative routing paths are fully exposed on the same port, the attacker can interact with the data-plane's Kubernetes API.

To proxy arbitrary HTTP commands directly to target Kubernetes services, the attacker issues standard HTTP requests targeting the /api/proxy/ prefix. The gateway transparently proxies the incoming request to the target cluster API using the service account credentials of the control plane. This enables the unauthenticated attacker to list, create, modify, or delete Kubernetes resources across all tenant namespaces.

POST /api/proxy/namespaces/default/services HTTP/1.1
Host: target-gateway.example.com:8443
Content-Type: application/json
Connection: close
 
{
  "apiVersion": "v1",
  "kind": "Service",
  "metadata": {
    "name": "attacker-controlled-service"
  },
  "spec": {
    "ports": [{"port": 80, "targetPort": 80}],
    "selector": {"app": "vulnerable-app"}
  }
}

Additionally, the /api/exec/ endpoint allows the establishing of a raw terminal session inside running workload containers. An attacker initiates a standard WebSocket handshake targeting the vulnerable endpoint, appending target namespace, pod, and container parameters to the query string. The gateway upgrades the connection, allowing the attacker to send stdin frames and capture stdout/stderr, establishing direct command execution capabilities inside workload pods.

Impact Assessment

The impact of successful exploitation is critical, leading to complete control-plane and data-plane compromise. By utilizing the /api/proxy/ endpoint, attackers inherit the service account permissions of the cluster-gateway. This often translates to cluster-admin or near cluster-admin privileges within the target Kubernetes environments, enabling the manipulation of deployments, secrets, and configurations.

Through the /api/exec/ endpoint, attackers achieve remote execution inside running workload pods. This execution vector bypasses traditional authentication logs and audit trails on the Kubernetes API server, as the gateway processes and routes the execution stream directly. Attackers can leverage this foothold to retrieve secrets, run malware, or pivot laterally within the cluster network.

Despite the effectiveness of the port-separation patch, administrators must evaluate the re-exploitation potential stemming from misconfigurations. If an Ingress controller, service mesh, or Kubernetes Service object exposes port 8444 to the public internet, the unauthenticated endpoints will become exposed again. Furthermore, the internal endpoints still lack application-level authentication, meaning any compromised container within the cluster network can communicate with port 8444 of the gateway to execute operations.

Detection & Remediation Guidance

Mitigation of CVE-2026-73843 requires upgrading OpenChoreo to versions 1.0.2, 1.1.2, or later. These releases separate the public agent-facing port (8443) from the internal administrative port (8444). Operators must verify that internal network interfaces do not map public-facing Ingress controllers or LoadBalancers to target port 8444 of the cluster-gateway deployment.

If immediate upgrading is not feasible, operators must implement network-level access control lists. A strict Kubernetes NetworkPolicy must be applied to prevent external or unauthorized in-cluster pods from reaching the gateway pods on port 8443 (or port 8444 after upgrading). Access to the gateway's internal ports should be restricted exclusively to verified control-plane components like openchoreo-api and controller-manager.

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: restrict-gateway-internal
  namespace: openchoreo-control-plane
spec:
  podSelector:
    matchLabels:
      app: cluster-gateway
  policyTypes:
  - Ingress
  ingress:
  - from:
    - podSelector:
        matchLabels:
          app: openchoreo-api
    - podSelector:
        matchLabels:
          app: controller-manager
    ports:
    - protocol: TCP
      port: 8444

To detect exploitation attempts on legacy systems, security teams should configure Intrusion Detection Systems (IDS) to monitor network traffic for HTTP request strings containing administrative endpoints on public interfaces. Network signatures must flag any request targeting /api/exec/ or /api/proxy/ over the public gateway port.

Official Patches

OpenChoreo AdvisoryOfficial Security Advisory

Fix Analysis (1)

Technical Appendix

CVSS Score
9.6/ 10
CVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H
EPSS Probability
0.29%
Top 79% most exploited

Affected Systems

OpenChoreo Control PlaneOpenChoreo Cluster Gateway

Affected Versions Detail

Product
Affected Versions
Fixed Version
OpenChoreo
OpenChoreo
< 1.0.21.0.2
OpenChoreo
OpenChoreo
>= 1.1.0, < 1.1.21.1.2
AttributeDetail
CWE IDCWE-306, CWE-668
Attack VectorAdjacent Network
CVSS Severity9.6 (Critical)
EPSS Score0.00291
Exploit StatusNone
CISA KEV StatusNot Listed

MITRE ATT&CK Mapping

T1190Exploit Public-Facing Application
Initial Access
T1005Data from Local System
Collection
T1068Exploitation for Privilege Escalation
Privilege Escalation
CWE-306
Missing Authentication for Critical Function

The software does not perform any authentication for critical functionality.

Vulnerability Timeline

Preparatory structural commits landed in repository
2026-06-15
Security patch implemented in Pull Request #4122
2026-07-08
GHSA-qh9r-j7rp-4x2m published by OpenChoreo security team
2026-08-13
CVE-2026-73843 published
2026-08-13

References & Sources

  • [1]GitHub Security Advisory GHSA-qh9r-j7rp-4x2m
  • [2]Remediation Pull Request #4122
  • [3]Core Remediation Commit

Attack Flow Diagram

Press enter or space to select a node. You can then use the arrow keys to move the node around. Press delete to remove it and escape to cancel.
Press enter or space to select an edge. You can then press delete to remove it or escape to cancel.

More Reports

•1 day ago•CVE-2026-11748
6.9

CVE-2026-11748: Unauthenticated LDAP Injection in Central Dogma Server Authentication

An LDAP injection vulnerability exists in the centraldogma-server-auth-shiro module of LY Corporation Central Dogma before version 0.84.0. The search logic dynamically constructs LDAP search filters by interpolating user-provided usernames without escaping RFC 4515 metacharacters. Unauthenticated remote attackers can leverage this flaw to bypass authentication, enumerate directory hierarchies, and access unauthorized resources.

Alon Barad
Alon Barad
9 views•6 min read
•1 day ago•CVE-2026-11746
9.4

CVE-2026-11746: Use of Hard-coded ZooKeeper Replication Secret 'ch4n63m3' in Central Dogma Server

CVE-2026-11746 is a critical vulnerability in Central Dogma Server prior to version 0.84.0, where an embedded ZooKeeper replication secret silently falls back to a publicly known, hard-coded default string ('ch4n63m3'). Remote attackers with access to the replication network can authenticate as legitimate cluster peers, potentially leading to unauthorized data exposure, state manipulation, or complete cluster takeover.

Amit Schendel
Amit Schendel
7 views•6 min read
•1 day ago•CVE-2026-56665
4.2

CVE-2026-56665: Logical Validation Bypass in ZITADEL External JWT Identity Provider

A logical verification flaw in ZITADEL's external JWT Identity Provider validation allows attackers to bypass session expiration checks. If an incoming JWT lacks the 'exp' claim, the system skips validation entirely, creating an indefinitely valid session. This issue has been addressed in versions 3.4.12 and 4.15.2.

Alon Barad
Alon Barad
7 views•7 min read
•1 day ago•CVE-2026-59149
6.5

CVE-2026-59149: Sibling Directory Path Traversal in Mockoon Backend Server

CVE-2026-59149 identifies a directory traversal vulnerability in `@mockoon/commons-server`, the backend mock-server library powering the Mockoon application. The flaw occurs in the path containment validation logic used during raw file response generation. An unauthenticated attacker can exploit this weakness to retrieve arbitrary files from sibling directories sharing a common prefix with the designated static base directory.

Amit Schendel
Amit Schendel
9 views•5 min read
•1 day ago•CVE-2026-59148
8.8

CVE-2026-59148: Unauthenticated Administrative API and CORS Misconfiguration in Mockoon

An in-depth analysis of CVE-2026-59148, a high-severity flaw in Mockoon where unauthenticated administrative endpoints and a wildcard Cross-Origin Resource Sharing (CORS) policy allow remote execution, state poisoning, and credential theft.

Alon Barad
Alon Barad
11 views•6 min read
•1 day ago•CVE-2026-56666
4.8

CVE-2026-56666: Account Takeover via Improper Email Verification in ZITADEL Federated Identity Handler

An improper authentication vulnerability (CWE-287) in ZITADEL's external identity provider handler before version 4.15.3 allows remote attackers to perform complete account takeover. When auto-linking by email is enabled, ZITADEL verifies that the local target account has a verified email address but fails to verify if the external provider confirmed ownership of that same email. Attackers can exploit this by registering an unverified account with a victim's email address on a permissive external provider, leading to unauthorized account binding and persistent access.

Amit Schendel
Amit Schendel
7 views•7 min read