v0.8.28 — Cross-origin WebSocket-hijack guard (CVE-2026-44211)
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_handlerreject 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