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-73842

CVE-2026-73842: Missing Authentication and Authorization on Internal Management Listener in OpenChoreo cluster-gateway

Alon Barad
Alon Barad
Software Engineer

Sep 4, 2026·6 min read·3 visits

Executive Summary (TL;DR)

OpenChoreo cluster-gateway exposed administrative routes on port 8444 without requiring authentication, enabling network-adjacent attackers to execute arbitrary commands and retrieve secrets across connected Kubernetes clusters.

A critical-severity missing authentication and privilege management vulnerability was identified in the OpenChoreo cluster-gateway component. The gateway exposed internal management endpoints, including arbitrary Kubernetes proxying and execution interfaces, on an unauthenticated port. An adjacent attacker within the control-plane network can bypass RBAC controls entirely and gain administrative control over all connected data planes.

Vulnerability Overview

The OpenChoreo control-plane architecture utilizes the cluster-gateway component to tunnel operational traffic and orchestrate communication across multiple managed Kubernetes data planes. This component exposes a dedicated internal management port designed to process instructions from authorized control-plane elements like openchoreo-api and controller-manager. In vulnerable installations, this internal network listener exposes administrative routes without enforcing verification controls.\n\nThe affected endpoints include /api/proxy/ for tunneling Kubernetes API requests, /api/exec/ for executing commands inside remote container environments, and /api/wirelogs/ for tracking raw log transmissions. Because the software handles inbound calls to these endpoints with high privilege levels, the absence of verification allows caller traffic to execute with the credentials assigned to the gateway. This creates a direct attack surface for unauthorized cluster-wide administrative actions.\n\nThe vulnerability is classified under CWE-306 (Missing Authentication for Critical Function). Because the architecture relies on network perimeter trust rather than cryptographic identity verification, any endpoint-adjacent endpoint can bypass the external identity verification stack. This structural flaw exposes internal cluster mechanics directly to adjacent network assets.

Root Cause Analysis

The core flaw is located in the initialization logic of the internal HTTP server within internal/cluster-gateway/server.go. When setting up the network listener on port 8444, the configuration code cloned the basic TLS configuration used for public-facing connections. However, the routine failed to configure client certificate parameters on this specific listener instance, leaving the ClientAuth setting at its default state of tls.NoClientCert.\n\nWithout mutual TLS (mTLS) enforcement, the TLS handshake successfully completes with any requesting client, even if no client certificate is presented. This design assumes that the physical or logical network separation of the control plane provides sufficient protection. This assumption violates zero-trust network principles by treating the local network namespace as an implicit trust domain.\n\nAdditionally, the gateway does not restrict the HTTP verbs processed by the /api/proxy/ handler, leading to a CWE-862 (Missing Authorization) condition. Although the routing logic was designed for read-only tracking, it processes and forwards arbitrary HTTP verbs including POST, PUT, and DELETE. Consequently, unauthenticated callers can execute write operations and state changes directly on downstream clusters.

Code Analysis

Before the remediation, the server setup logic in internal/cluster-gateway/server.go initialized the internal management server without specifying client certificate verification controls. The relevant vulnerable block cloned the standard TLS configuration but made no modifications to enforce mTLS requirements:\n\ngo\n// Vulnerable Server Initialization\ns.internalServer = &http.Server{\n Addr: fmt.Sprintf(\":%d\", s.config.InternalPort),\n Handler: internalMux,\n TLSConfig: tlsConfig.Clone(), // ClientAuth is unconfigured, allowing anonymous access\n ReadTimeout: s.config.ReadTimeout,\n WriteTimeout: s.config.WriteTimeout,\n IdleTimeout: s.config.IdleTimeout,\n}\n\n\nThe patch implemented in the security update resolves the vulnerability by introducing the helper function buildInternalTLSConfig. This function alters the cloned TLS configuration to enforce mutual certificate verification, using a dedicated Certificate Authority separate from the standard cluster infrastructure:\n\ngo\nfunc buildInternalTLSConfig(base *tls.Config, cfg *Config) (*tls.Config, error) {\n\ttlsConfig := base.Clone()\n\tif !cfg.InternalMTLSEnabled {\n\t\treturn tlsConfig, nil\n\t}\n\n\tif cfg.InternalClientCAPath == \"\" {\n\t\treturn nil, fmt.Errorf(\"internal mTLS is enabled but no client CA is configured\")\n\t}\n\n\tcaData, err := os.ReadFile(cfg.InternalClientCAPath)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"failed to read internal client CA: %w\", err)\n\t}\n\n\tcaPool := x509.NewCertPool()\n\tif !caPool.AppendCertsFromPEM(caData) {\n\t\treturn nil, fmt.Errorf(\"failed to parse internal client CA\")\n\t}\n\n\t// Require and verify client certificates from the isolated trust domain\n\ttlsConfig.ClientAuth = tls.RequireAndVerifyClientCert\n\ttlsConfig.ClientCAs = caPool\n\treturn tlsConfig, nil\n}\n\n\nBy implementing this validation step, the gateway stops unauthenticated requests at the TLS handshake phase, long before the HTTP multiplexer routes the traffic. Using a dedicated Certificate Authority is critical because it ensures that compromised data-plane agents holding standard client certificates cannot connect to the internal control-plane listener.

Exploitation Methodology

Exploiting this vulnerability requires the attacker to have adjacent network access to port 8444 of the cluster-gateway pod. This access is typically obtained by compromising a less-privileged container running within the same Kubernetes cluster or through shared network namespaces. Because authentication is not required, the attacker can establish a TLS connection directly using command-line utilities or HTTP client libraries.\n\nOnce the connection is established, the attacker issues direct requests to the /api/proxy/ API endpoint, targeting a connected data plane cluster. Because the gateway possesses administrative Service Account privileges, the downstream cluster accepts the forwarded request as a fully authorized administrative call. The following request illustrates an anonymous query retrieving sensitive Kubernetes secrets from a production namespace:\n\nhttp\nGET /api/proxy/planes/dataplane-prod/api/v1/namespaces/tenant-prod/secrets HTTP/1.1\nHost: cluster-gateway.openchoreo-control-plane.svc.cluster.local:8444\n\n\n\nThe response returns the raw secrets, allowing the attacker to retrieve credentials, database tokens, and private keys. The attacker can then transition to the /api/exec/ endpoint, using websocket upgrades to spawn high-privilege shell environments in target containers. This enables complete control-plane bypass and arbitrary command execution without leaving standard Kubernetes audit log trails linked to the attacker's identity.

Impact Assessment

The potential consequences of exploiting CVE-2026-73842 are critical, carrying a CVSS base score of 9.0. An adjacent attacker can perform unauthorized read, write, and delete operations across all connected data-plane clusters. This compromise completely breaks isolation boundaries in multi-tenant environments, exposing all tenant data.\n\nBecause the gateway handles commands with high-privilege cluster roles, attackers can modify running container specifications, mount host-level filesystems, and delete critical infrastructure resources. The CVSS Scope metric is classified as Changed (S:C) because compromising the internal gateway listener in the control plane directly leads to administrative control over separate downstream tenant clusters.\n\nThis vulnerability is not currently associated with active campaigns in the wild, nor is it included in the CISA KEV catalog. The EPSS score is currently evaluated at 0.0018, which reflects a low current threat profile. However, due to the ease of exploitation once adjacent network access is achieved, patching remains an urgent priority.

Remediation and Mitigation

The definitive solution is upgrading the OpenChoreo control plane to versions 1.0.3, 1.1.3, or 1.2.0-rc.2. These versions introduce the --internal-mtls command-line flag and require a dedicated CA certificate bundle for client verification. The associated Helm charts have been modified to generate and distribute these certificates automatically using cert-manager resource declarations.\n\nIf an immediate upgrade is not feasible, administrators must implement strict network security controls to isolate the vulnerable port. A Kubernetes NetworkPolicy should be deployed to allow ingress traffic on port 8444 exclusively from verified control-plane components like openchoreo-api and controller-manager. This reduces the exposure to adjacent pods within the cluster network.\n\nyaml\napiVersion: networking.k8s.io/v1\nkind: NetworkPolicy\nmetadata:\n name: restrict-cluster-gateway-internal\n namespace: openchoreo-control-plane\nspec:\n podSelector:\n matchLabels:\n app.kubernetes.io/component: cluster-gateway\n policyTypes:\n - Ingress\n ingress:\n - from:\n - podSelector:\n matchLabels:\n app.kubernetes.io/component: openchoreo-api\n - podSelector:\n matchLabels:\n app.kubernetes.io/component: controller-manager\n ports:\n - protocol: TCP\n port: 8444\n\n\nAdditionally, security teams should inspect cluster-gateway deployment logs for the absence of the mTLS configuration warning. The presence of the string 'internal API mTLS disabled' indicates a vulnerable state. Enabling mTLS and auditing control-plane audit logs for unexpected requests to the /api/ paths on port 8444 are vital steps to verify the integrity of the environment.

Official Patches

OpenChoreoOfficial GitHub Security Advisory

Fix Analysis (3)

Technical Appendix

CVSS Score
9.0/ 10
CVSS:3.1/AV:A/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H
EPSS Probability
0.18%
Top 92% most exploited

Affected Systems

OpenChoreo cluster-gateway control-plane component

Affected Versions Detail

Product
Affected Versions
Fixed Version
OpenChoreo
OpenChoreo
< 1.0.31.0.3
OpenChoreo
OpenChoreo
>= 1.1.0, < 1.1.31.1.3
OpenChoreo
OpenChoreo
>= 1.2.0-rc.1, < 1.2.0-rc.21.2.0-rc.2
AttributeDetail
CWE IDCWE-306
Attack VectorAdjacent
CVSS v3.1 Score9.0
EPSS Score0.0018 (0.18%)
Exploit Statusnone
CISA KEVNo

MITRE ATT&CK Mapping

T1190Exploit Public-Facing Application
Initial Access
T1068Exploitation for Privilege Escalation
Privilege Escalation
CWE-306
Missing Authentication for Critical Function

The product does not perform any authentication for a functionality that requires a provable user identity.

Vulnerability Timeline

Fix commits authored to introduce mutual TLS (mTLS) enforcement
2026-07-22
GitHub Security Advisory (GHSA-rh53-xvx2-j327) published
2026-08-13
CVE-2026-73842 assigned and published to NVD
2026-08-13
Vulnerability metadata and NVD configurations updated
2026-08-18

References & Sources

  • [1]GitHub Security Advisory GHSA-rh53-xvx2-j327
  • [2]OpenChoreo Pull Request 4256
  • [3]OpenChoreo Pull Request 4258
  • [4]OpenChoreo Pull Request 4259

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

•5 minutes ago•CVE-2026-73556
5.3

CVE-2026-73556: Regular Expression Denial of Service (ReDoS) in vLLM lm-format-enforcer Backend

CVE-2026-73556 is a Regular Expression Denial of Service (ReDoS) vulnerability in the vLLM inference engine's lm-format-enforcer structured-output backend. Prior to version 0.26.0, lack of compilation timeouts or complexity validation for user-supplied regular expressions in the structured_outputs.regex parameter allowed unauthenticated remote attackers to trigger CPU exhaustion and block the core execution loop.

Amit Schendel
Amit Schendel
0 views•5 min read
•about 1 hour ago•CVE-2026-73557
6.3

CVE-2026-73557: Race Condition in PyTorch Tensor Invariant Checks within vLLM Engine

CVE-2026-73557 details a race condition vulnerability in the vLLM serving framework, arising from the thread-unsafe usage of PyTorch's process-global sparse tensor invariant check manager. When processing concurrent requests with custom prompt or multimodal embeddings, concurrent thread execution can disable global tensor integrity checks. An unauthenticated attacker can leverage this timing window to submit malformed sparse coordinate (COO) tensors containing out-of-bounds indices, causing memory corruption and process crashes (Denial of Service).

Alon Barad
Alon Barad
1 views•5 min read
•about 3 hours ago•GHSA-7Q9C-HPX7-9CWM
7.5

GHSA-7Q9C-HPX7-9CWM: Unauthenticated Remote Shutdown in @typespec/spector Mock Server

An unauthenticated remote shutdown vulnerability exists in the Microsoft TypeSpec Spector mock server. Due to missing authentication on critical administrative routes and binding to all network interfaces, any remote attacker can shut down the mock server.

Alon Barad
Alon Barad
3 views•7 min read
•about 4 hours ago•CVE-2026-72796
5.8

CVE-2026-72796: Access Control Bypass via Static Routes in SiYuan

A detailed technical breakdown of CVE-2026-72796 (GHSA-fgmr-7w36-9qfq), an access control bypass vulnerability in the SiYuan personal knowledge management system. Prior to version 3.7.4, inconsistent authorization checks between dynamic API endpoints and static file routes allowed authenticated low-privilege readers or anonymous public users to read sensitive files, templates, snippets, and export directories.

Amit Schendel
Amit Schendel
4 views•8 min read
•about 5 hours ago•CVE-2026-75858
7.8

CVE-2026-75858: Silent Remote Code Execution via Approval Bypass in CodeWhale Interactive Tools

CVE-2026-75858 is a critical authorization bypass vulnerability in CodeWhale's interactive execution tools, allowing silent, unprompted execution of model-supplied Python and shell commands on the host machine. The defect affects versions between 0.8.41 and 0.8.64, bypassing any configured approval policies via indirect prompt injection.

Alon Barad
Alon Barad
5 views•6 min read
•about 6 hours ago•CVE-2026-75911
8.5

CVE-2026-75911: Remote Code Execution via Configuration Override in CodeWhale

CVE-2026-75911 is a configuration injection and remote code execution vulnerability in CodeWhale. Unsafe merging of repository-level TOML configuration files allows malicious repositories to silently enable shell tool registration and inject prompts, forcing the integrated LLM agent to execute arbitrary host commands.

Alon Barad
Alon Barad
6 views•6 min read