CVE-2026-55883
HIGHSeverity by source
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:L/VA:N/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
Network read-only info leak with no auth (PR:N) but gated on a non-default non-loopback bind, hence AC:H; confidentiality only, so I:N and A:N.
Primary rating from Vendor (https://github.com/tilt-dev/tilt).
CVSS VectorVendor: https://github.com/tilt-dev/tilt
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:L/VA:N/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
Lifecycle Timeline
6DescriptionCVE.org
Summary
The Tilt HUD WebSocket (/ws/view) is gated by a CSRF token, but the token is served by an unauthenticated endpoint and the upgrader accepts any client that omits an Origin header. When the HUD is network-exposed, an attacker can open the HUD stream and read the developer's session state.
Details
The upgrader accepts a connection when the csrf query parameter matches a process-wide token (websocketCSRFToken). That token is served as text/plain by an unauthenticated handler (WebsocketToken, mounted at /api/websocket_token), so any reachable caller can fetch it and connect to /ws/view?csrf=<token>. When the parameter does not match, the upgrader falls back to a same-origin check that returns true when the Origin header is absent, so a non-browser client that omits Origin is accepted anyway. The token has no per-session binding.
Impact
An attacker who can reach the HUD listener can open the HUD WebSocket and receive the full view stream - session state, Tiltfile contents, resource statuses, and continued updates - defeating the intended anti-CSWSH protection.
Conditions for exploitation
- Affected version in
>= 0.24.0, <= 0.37.3. - HUD bound to a non-loopback address (
tilt up --host 0.0.0.0, orTILT_HOSTset). - Network reachability to the listener (default port
10350).
Not affected
- The default loopback-only bind is not reachable from the network.
Workarounds
Use the default loopback bind (omit --host, unset TILT_HOST). No complete workaround short of upgrading for non-loopback deployments.
AnalysisAI
Cross-site WebSocket hijacking in Tilt (the tilt-dev Kubernetes development tool) versions 0.24.0 through 0.37.3 lets a network-adjacent attacker read the developer's entire HUD view stream when the HUD is bound to a non-loopback address. The intended anti-CSWSH protection fails because the gating CSRF token is served by an unauthenticated endpoint and the WebSocket upgrader also accepts any client that omits an Origin header. …
Unlock full vulnerability intelligence
- Risk assessment & exploitation conditions
- Attack chain visualization
- Remediation with exact patch versions
- Threat intelligence from 22 sources
- Personal watchlist & email alerts
Free forever · No credit card required
Recommended ActionAI
Within 24 hours: Identify and catalog all Tilt deployments across development teams, specifically flagging instances with HUD bound to network-accessible addresses beyond 127.0.0.1. …
Sign in for detailed remediation steps and compensating controls.
Threat intelligence, references, and detailed analysis are available after sign-in.
Share
External POC / Exploit Code
Leaving vuln.today
GHSA-6m68-r693-78qx