SECURITY • OpenClaw quick fix
Featured: @OpenClawLog

Gateway still using `auth=none`? Upgrade and fail closed.

OpenClaw 2026.1.29 removed Gateway auth mode `none`: the Gateway now expects token/password auth, while trusted Tailscale Serve identity remains a separate allowed path. The same release notes and changelog also call out a fail-closed boundary: loopback requests with a non-local Host should be treated as remote unless trusted proxy headers prove otherwise. Treat this as an exposure audit, not just a config typo. Snapshot first, replace `auth=none`, verify proxy/Tailscale assumptions, then smoke-test both the unauthorized path and the intended CLI/agent path before unattended work resumes.

In simple words: Make a safe copy if the step could change your setup, try the smallest check, then confirm OpenClaw is back to normal before doing more. The source link and commands stay below for people who want the technical detail.

Checklist
Check every OpenClaw gateway bind address, tunnel, Tailscale hostname, reverse proxy, container port, and shared host where another machine or browser could reach the Gateway.
Exposure review before changing auth
- Is the Gateway bound only to localhost, or reachable on a Tailscale/shared-network address?
- Is any tunnel, reverse proxy, firewall rule, or container port publishing the Gateway?
- Is auth token/password backed, trusted Tailscale Serve identity, or effectively disabled as auth=none?
- Does any loopback request carry a non-local Host through a proxy?
- Which agent profile or CLI command must still work after auth is tightened?
If any path still depends on `auth=none`, upgrade away from that assumption and configure token/password auth or a deliberately trusted Tailscale Serve identity path.
Review reverse-proxy headers: loopback plus a non-local Host should not be trusted as local unless your trusted proxy boundary is explicit and documented.
Create a verified backup or rollback note before changing gateway auth, tokens, TLS, service files, proxy headers, or remote-agent config.
Restart the Gateway with your normal supervisor and confirm an unauthenticated request fails while the intended CLI/agent profile still connects.
Auth/proxy smoke-test expectation
# After switching away from auth=none and restarting:
# 1. An unauthenticated request from the reachable network path should fail.
# 2. A loopback request with a non-local Host should not be trusted unless it arrives through your documented trusted proxy path.
# 3. Your intended CLI/agent profile should pass its normal gateway/auth probe.
# 4. Keep the previous config/backup label until one real agent run succeeds.
Record the new auth mode, token-rotation owner, exposed hostname, proxy/Tailscale assumption, and smoke-test result so the next update does not silently reopen the no-auth path.
Closeout receipt
- OpenClaw version before/after:
- Old Gateway exposure path:
- Old auth mode or missing auth assumption:
- New auth mode / Tailscale Serve identity assumption:
- Trusted proxy headers reviewed? yes/no/not used:
- Unauthorized request result:
- Intended CLI/agent probe result:
- Rollback label and token owner:
Success looks like
No Tailscale, tunnel, reverse-proxy, container-published, or shared-network Gateway path depends on `auth=none`.
Remote-looking Host/proxy traffic fails closed unless it arrives through an explicitly trusted proxy or Tailscale identity path.
Unauthorized requests fail from the network path that used to reach the Gateway, while the intended operator/agent path still works.
The auth change has a dated rollback note, token owner, and proxy/Tailscale assumption instead of being a one-off config edit.

Source: OpenClaw v2026.1.29 release notes + OpenClawLog changelog · link