GitHub Security Advisory: GHSA-v8j7-hp7c-738f
Package: github.com/kubetail-org/kubetail/modules/cli (GO)
Severity: MODERATE (CVSS 6.5)
CWE: CWE-1385: Missing Origin Validation in WebSockets
Vulnerable versions: < 0.16.0
Patched in: 0.16.0

Summary: Kubetail has a Cross-Site WebSocket Hijacking issue that allows attacker to read Kubernetes logs from authenticated users

Details:
### Summary

Kubetail's dashboard exposes WebSocket endpoints that did not adequately validate the Origin header on connection upgrade. A malicious web page visited by a user with an active Kubetail session could open a WebSocket to the user's dashboard and read their Kubernetes logs in real time. This is a Cross-Site WebSocket Hijacking (CSWSH) vulnerability and affects both the desktop deployment (default http://localhost:7500) and cluster deployments (typically behind an Ingress with HTTP basic auth).

### Impact

An attacker who can convince an authenticated Kubetail user to visit a page they control can:

- Establish a WebSocket connection to the victim's dashboard from the attacker's origin
- Stream container logs the victim has access to via the Kubernetes API
- Exfiltrate the contents to an attacker-controlled server

The attacker gains **read-only** access to logs — no write or destructive operations are exposed. However, container logs frequently contain credentials accidentally written by application code, bearer tokens, internal hostnames, customer PII, and other secrets, so the practical impact of read access can be significant.

The desktop deployment is particularly exposed because the dashboard is reachable at a predictable localhost URL, requires no network reachability from the attacker, and the browser will attach ambient credentials to the WebSocket handshake.
For cluster deployments fronted by HTTP basic auth, the browser's automatic re-sending of basic-auth credentials on the WebSocket upgrade request enables the same attack against the configured dashboard origin.

### Affected versions

| Component                                    | Name                           | Affected | Patched   |
| --------------------------------- | ---------------------- | -------- | ---------- |
| Kubetail Dashboard docker image | `kubetail-dashboard` | < 0.14.0  | >= 0.14.0  |
| Kubetail Helm Chart                       | `kubetail/kubetail`       | < 0.23.0 | >= 0.23.0 |
| Kubetail CLI                                    | `kubetail`                     | < 0.16.0 | >= 0.16.0  |

Confirmed in Google Chrome. Microsoft Edge is presumed affected as it shares Chromium's WebSocket implementation, but was not directly tested.

**Preconditions for exploitation**

1. The victim has an active authenticated Kubetail session (desktop dashboard running, or browser holding valid credentials for a cluster deployment).
2. The victim visits a web page controlled by the attacker in the same browser.
3. The attacker knows or can guess the dashboard URL (trivial for desktop; cluster deployments require knowing the Ingress hostname).

### Patches

Upgrade to:
* Kubetail Dashboard 0.14.0 or later
* Kubetail Helm Chart 0.23.0 or later
* Kubetail CLI 0.16.0 or later

### Workarounds

If users cannot upgrade immediately:

* **Desktop:** Stop the dashboard (kubetail CLI process) when not actively in use. Avoid visiting untrusted sites in the same browser profile whil