Skip to content
Heist/ feed
HighFix available

Cline: Cross-Origin WebSocket Hijacking in Cline Hub Dashboard (`/browser` endpoint)

Type: advisorySource: OSV1 source record

### Summary The Cline Hub dashboard server (`@cline/cline-hub`), launched via the `cline dashboard` CLI command, accepts WebSocket connections on the `/browser` endpoint without validating the HTTP `Origin` header. When `ROOM_SECRET` is not set—the default for local (`127.0.0.1`) binds—`isAuthorizedBrowserRequest()` returns `true` unconditionally, allowing any website a developer visits to open a cross-origin WebSocket to `ws://127.0.0.1:8787/browser`. An attacker-controlled page can then send `desktopCommand` frames to read workspace/session state, mutate MCP and provider settings, and—because dashboard sessions default to `autoApprove: true` for all tools—trigger arbitrary command execution when a provider/model is configured. Dynamically confirmed: an `upsert_mcp_server` frame injected a malicious `stdio` MCP server entry into the victim's Cline settings file with `ok: true` response. ### Details The vulnerable code path spans multiple files in the `apps/cline-hub` workspace. **No secret by default (local bind)** `apps/cline-hub/src/options.ts:54–57` converts an empty `ROOM_SECRET` environment variable to `undefined`: ```ts // apps/cline-hub/src/options.ts:54 function normalizeRoomSecret(value: string | undefined): string | undefined { const secret = value?.trim(); return secret ? secret : undefined; } ``` `apps/cline-hub/src/options.ts:67–85` allows the local default host (`127.0.0.1`) to start without a secret, so `roomSecret` remains `undefined` in the default configura

Announced Source revision 1
Original source ↗

GHSA-3cj3-hqcr-g934

Primary source · Revision 1

Imported from structured advisory data. Source references identify upstream records or fields; verify affected versions and your deployed configuration.

Security context

Source reference: osv:GHSA-3cj3-hqcr-g934

cline

Source reference: /affected/0/package/name

Affected versions
Not stated in this record
Fixed versions
3.0.30

Source reference: /affected/0/ranges

Prerequisites
Not stated in this record

Structured affected-version data

Original package identities and version rules from this source.

[
  {
    "ranges": [
      {
        "type": "SEMVER",
        "events": [
          {
            "introduced": "0"
          },
          {
            "fixed": "3.0.30"
          }
        ]
      }
    ],
    "package": {
      "name": "cline",
      "purl": "pkg:npm/cline",
      "ecosystem": "npm"
    },
    "database_specific": {
      "source": "https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2026/09/GHSA-3cj3-hqcr-g934/GHSA-3cj3-hqcr-g934.json"
    }
  }
]
Related CVEs
CVE-2026-59723

Source reference: /aliases

Publisher severity

high

Source reference: /database_specific/severity

Event
#14232 · Revision 1
Added to Heist Feed
Publisher date
Read the original announcement