CVE-2026-55883 Overview
CVE-2026-55883 is an information disclosure vulnerability in Tilt, a tool that defines development environments as code for microservice applications on Kubernetes. Versions 0.24.0 through 0.37.3 expose the HUD WebSocket at /ws/view behind a CSRF token, but that token is issued by the unauthenticated /api/websocket_token endpoint. The WebSocket upgrader also accepts clients that omit the Origin header. When the HUD listener is reachable over the network, any attacker who can connect to it can open the WebSocket and receive the full view stream. This includes session state, Tiltfile contents, resource statuses, and continuous updates. The issue is fixed in version 0.37.4 and is classified under [CWE-345] Insufficient Verification of Data Authenticity.
Critical Impact
Unauthenticated network attackers can subscribe to the Tilt HUD WebSocket stream and exfiltrate Tiltfile contents, session state, and live resource telemetry from exposed developer environments.
Affected Products
- Tilt versions 0.24.0 through 0.37.3
- Tilt HUD server exposed on non-loopback interfaces (via --host or TILT_HOST)
- Kubernetes microservice development environments using Tilt
Discovery Timeline
- 2026-07-10 - CVE-2026-55883 published to NVD
- 2026-07-14 - Last updated in NVD database
Technical Details for CVE-2026-55883
Vulnerability Analysis
Tilt runs an HTTP server that hosts a HUD (heads-up display) for developers to observe the state of microservices under development. The HUD streams updates over a WebSocket endpoint at /ws/view. To defend against cross-site WebSocket hijacking, Tilt required a CSRF token before upgrading the connection. That token, however, is minted by the /api/websocket_token endpoint without any authentication. Any client that can reach the listener can request a token, present it during the upgrade, and receive the same stream that a legitimate developer sees. The upgrader compounds the problem by accepting requests that omit the Origin header, removing an additional cross-origin safety check.
Root Cause
The root cause is insufficient verification of the requester's authenticity ([CWE-345]). The CSRF token is not bound to an authenticated session and is freely obtainable, defeating its purpose as an anti-forgery control. Combined with permissive Origin handling in the WebSocket upgrader, the token becomes a ticket that any network-adjacent party can collect. The upstream fix in commit 47393fb also changed default host guidance so users understand the risk of binding to 0.0.0.0.
Attack Vector
Exploitation requires only network reachability to the Tilt HUD port. An attacker sends an HTTP GET to /api/websocket_token to obtain a valid token, then opens a WebSocket to /ws/view supplying that token, with no Origin header set. The server upgrades the connection and begins streaming view state, including Tiltfile source, container and pod status, logs, and continued updates. This is most exploitable when developers set --host 0.0.0.0 or expose the HUD through a bastion, tunnel, or shared network.
// Patch excerpt: internal/cli/flags.go
// Before: guidance suggested 0.0.0.0 without warning.
// After: default is localhost, remote binding requires explicit intent.
cmd.Flags().StringVar(&webHostFlag, "host", defaultWebHost,
"Host for the Tilt HTTP server and default host for any port-forwards. "+
"Defaults to localhost; only change this if you need remote access "+
"and understand the security implications. Overrides TILT_HOST env variable.")
Source: tilt-dev/tilt commit 47393fb
Detection Methods for CVE-2026-55883
Indicators of Compromise
- Unexpected HTTP GET requests to /api/websocket_token from non-developer source addresses.
- WebSocket upgrade requests to /ws/view that arrive without an Origin header or from unfamiliar origins.
- Long-lived WebSocket sessions on the Tilt port originating from IPs outside the developer workstation range.
- Tilt processes bound to 0.0.0.0 or a public interface rather than 127.0.0.1.
Detection Strategies
- Inspect Tilt HTTP access logs for pairs of /api/websocket_token and /ws/view requests from the same non-local client.
- Alert on any Tilt listener discovered on a non-loopback interface via host inventory or network scans.
- Correlate WebSocket upgrade events lacking an Origin header with sustained outbound stream traffic from developer hosts.
Monitoring Recommendations
- Track running processes and listening sockets for the tilt binary and its bind address across engineering endpoints.
- Monitor egress from developer subnets to unexpected destinations on Tilt's default port range.
- Baseline the volume of /ws/view connections per host so anomalous concurrent subscribers trigger review.
How to Mitigate CVE-2026-55883
Immediate Actions Required
- Upgrade Tilt to version 0.37.4 or later on every developer workstation and CI runner.
- Audit TILT_HOST environment variables and --host flags, reverting any non-loopback values unless explicitly required.
- Rotate or invalidate any secrets that may have appeared in Tiltfiles or resource outputs while an exposed HUD was reachable.
Patch Information
The fix is delivered in Tilt 0.37.4. See the GitHub Security Advisory GHSA-6m68-r693-78qx, the pull request #6776, commit 47393fb, and the v0.37.4 release notes. The patch secures mutating and sensitive requests to the HUD server and changes default host guidance to localhost.
Workarounds
- Bind the Tilt HUD only to 127.0.0.1 and use SSH port forwarding for any remote access.
- Restrict access to the Tilt port with a host firewall rule allowing only the developer's own machine.
- Avoid running Tilt on shared or multi-tenant hosts until the upgrade is deployed.
# Safe local-only launch
export TILT_HOST=127.0.0.1
tilt up
# Host firewall example (Linux, iptables) to block remote access to Tilt's default port
sudo iptables -A INPUT -p tcp --dport 10350 ! -s 127.0.0.1 -j DROP
Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

