Skip to content

v0.8.28 — Cross-origin WebSocket-hijack guard (CVE-2026-44211)

Choose a tag to compare

@sattyamjjain sattyamjjain released this 21 Jun 14:44
3279e89

Added

feat(guard): cross-origin WebSocket-hijack guard for CVE-2026-44211 (Cline Kanban)

Deny-by-default guard for the Cline Kanban cross-origin WebSocket-hijack class (npm kanban < 2.13.0, CVSS 9.7, CWE-1385 Missing Origin Validation in WebSockets + CWE-306 Missing Authentication, OWASP ASI05). Cline runs a control WebSocket server on 127.0.0.1:3484 that accepts every upgrade without validating the Origin header; since browsers do not apply same-origin/CORS to ws://, any visited website can drive the agent — leak workspace data, inject prompts into the agent terminal (RCE), or kill tasks. Loopback is not a mitigation. Fixed upstream in 2.13.0.

  • WebSocketOriginGuard (mcp_spec/ws_origin_guard.py): audit_endpoint(...) flags an endpoint with no Origin allow-list; check_upgrade / enforce_upgrade / wrap_handler reject a WS upgrade whose Origin is missing or non-allow-listed (empty allow-list = deny all). Wraps sync or async handlers; never opens a socket.
  • cline_cve_2026_44211_defaults(allowed_origins=...) preset (preset_id=ws_origin_hijack_guard, severity=critical, owasp=ASI05, cwe=(CWE-1385,CWE-306), cves=(CVE-2026-44211,)).
  • 17 tests; Pydantic-only core, no new runtime deps. (#96)

Sources: https://advisories.gitlab.com/npm/cline/CVE-2026-44211/ · https://www.oasis.security/blog/cline-kanban-websocket-hijack