Skip to content

Fleet Deck

v0.16.1 Security

This release includes 2 security fixes for security teams reviewing exposed deployments.

✓ No known CVEs patched
Read the diff → Tool health → What is this tool? →
This release patches 2 known CVEs

Topics

agents ai-agents claude claude-code claude-code-plugin web
+4 more
developer-tools multi-agent orchestration tmux

Affected surfaces

auth breaking_upgrade

Summary

AI summary

Hook authentication now enforced in all modes and gateway settings remain token‑gated under trusted proxy, fixing a bypass introduced in v0.16.0.

Full changelog

0.16.0's loopback power gates assumed someone saw the daemon print its credentialed link. On auto-started daemons — Coder workspaces, systemd services, hook-spawned daemons — that line goes to a log file, and users hit a locked board with no key in sight. This release makes the key findable everywhere, makes the gates optional where they defend nothing, and closes a hook-auth bypass the 0.16.0 docs had wrongly guaranteed against.

Added

  • FLEETDECK_TRUST_LOOPBACK=on waives the four loopback power gates (/ws/term, POST /mail, gateway_* settings writes, the unsupervised arm) for plain-loopback callers — the pre-0.16.0 behavior, opted into explicitly. Keys off the real peer address, not a header. Startup-fatal combined with LAN bind or FLEETDECK_REQUIRE_TOKEN. Does not waive hook auth. For single-user machines and port-forwarded Coder workspaces where no other OS user can reach 127.0.0.1. docs/CODER.md carries both recipes.
  • The key is findable after auto-start. The SessionStart brief names where the key lives (fleetdeck token / $FLEETDECK_HOME/token); fleetdeck status shows the board URL and points at fleetdeck token; the board key gate explains recovery. fleetdeck status keeps the credentialed link out of routine output so it can't leak into logs/scrollback — pass --show-token to copy the full ?t= URL.

Security

  • gateway_* settings writes stay token-gated even under FLEETDECK_PROXY_AUTH=trust. They reroute every future session's LLM traffic and can exfiltrate the gateway credential; the trusted-proxy signal is derived from caller-controlled Host/Origin a direct-loopback process can forge. Only the explicit FLEETDECK_TRUST_LOOPBACK=on opt-out (real-peer keyed) waives them.
  • Hooks authenticate in every mode, including FLEETDECK_PROXY_AUTH=trust. 0.16.0 gated /hook/* on the bearer, but the proxy-trust exemption in authorized() returned before that gate: a direct-loopback process could forge the configured trusted Host/Origin and POST tokenless hooks on a trust-mode daemon, re-opening the session-impersonation forgeries 0.16.0 closed. The /hook/* gate now leads authorized(), ahead of every loopback and proxy-trust exemption. Regression coverage added (forged headers, TRUST_LOOPBACK on and off).

Full changelog: https://github.com/lacion/fleet-deck/blob/v0.16.1/CHANGELOG.md

Security Fixes

  • Hooks now authenticate in every mode, including `FLEETDECK_PROXY_AUTH=trust`, closing an impersonation bypass where a loopback process could POST tokenless hooks.
  • `gateway_*` settings writes stay token‑gated even when `FLEETDECK_PROXY_AUTH=trust` is set, preventing exfiltration of gateway credentials via forged headers.

Weekly OSS security release digest.

The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.

No spam, unsubscribe anytime.

Share this release

Track Fleet Deck

Get notified when new releases ship.

Sign up free

About Fleet Deck

All releases →

Related context

Earlier breaking changes

  • v0.13.0 Agents poller no longer uses a shell; runs via execFile with argv split on whitespace.
  • v0.6.0 Adds nullable columns `ticket`, `ticket_source`, `prev_callsign` to `sessions` table via schema migration.

Beta — feedback welcome: [email protected]