Security and deployment
WebMux runs arbitrary commands as the user who started the service, which amounts to exposing a shell to the network. It is not a process sandbox and offers no multi-user isolation; safety relies on network isolation.
WebMux exposes a shell to the network as your user, listening on 0.0.0.0:7681 by default. For local use, listen on 127.0.0.1; for remote access, bind to a trusted VPN such as Tailscale or WireGuard. Do not expose it to the internet unless you deliberately use a tunnel and accept that the token is the only barrier. It is not a process sandbox, and restarting the service ends every terminal session. Read the security model
Security model
- By default it listens on every interface at 0.0.0.0:7681. For local use set 127.0.0.1:7681; for remote use bind to a trusted VPN address and restrict reachable interfaces with a firewall.
- The first start creates a 0600 configuration file and a persistent 256-bit token; show it with webmux status --json --reveal-token.
- Every API and WebSocket requires authentication (when a token is set), compared in constant time; requests with an Origin must be same-origin or listed in allowed_origins.
- The token never appears in request URLs: HTTP uses a Bearer header and WebSocket a subprotocol. Terminal input and output are never logged, and the configuration API never returns the token.
- WebMux has no built-in TLS; for HTTPS use tailscale serve or a reverse proxy.
- Registered Git repositories must be trusted: Git runs hooks and filters from repository config. Closing a session cleans up its process tree, but daemons that fully detach from the session may escape it.
- Only the latest release receives security fixes.
Read the full security policy (Chinese)
Three recommended topologies
Reporting a vulnerability
Please do not report vulnerabilities in public issues. Use GitHub's private vulnerability reporting and include the affected version and platform, steps to reproduce or a proof of concept, and the possible impact. See security policy · reporting (Chinese).