There are hundreds of self-hosted OpenClaw instances running right now with their API endpoints exposed to the public internet. No authentication. No rate limiting. No encryption in transit.
If you're running OpenClaw on a VPS and you haven't explicitly locked down the networking, your instance is probably one of them.
This isn't a hypothetical risk. It's the default state of a standard Docker deployment.
The Five Security Problems
1. Exposed API Endpoints
A default OpenClaw Docker deployment binds to 0.0.0.0:3000. That means the management API — the one that lets you read conversation history, modify agent configuration, and access stored credentials — is accessible to anyone who finds your IP address.
There's no built-in authentication layer. If your VPS firewall isn't configured (or doesn't exist because you're using a basic DigitalOcean droplet), your entire agent's memory and configuration is public.
The fix if self-hosting: Set up Tailscale or WireGuard to create a private network. Only access the management interface through the VPN. Configure iptables to block all external traffic on port 3000.
On Clawfleet: Your instance runs in an isolated container behind our authentication layer. The management API is only accessible through the Clawfleet dashboard, which requires your login credentials and enforces rate limiting.
2. Credential Storage
Your OpenClaw agent needs API keys to function: Anthropic API key, Telegram bot token, email service credentials, CRM tokens, and potentially your clients' credentials.
In a self-hosted setup, these are stored in environment variables or a .env file on disk. If your VPS is compromised, every credential is exposed in plaintext.
Worse — many agencies copy their .env file across multiple instances, so a breach on one VPS exposes credentials for all clients.
The fix if self-hosting: Use a secrets manager (HashiCorp Vault, AWS Secrets Manager, or Doppler). Never store credentials in .env files in production. Rotate keys regularly.
On Clawfleet: Credentials are stored in encrypted key-value storage, separated per instance. Each client's credentials are isolated — a vulnerability in one instance cannot access another's secrets.
3. Unpatched Containers
The OpenClaw Docker image is based on a Node.js base image. That base image has dependencies. Those dependencies have CVEs (Common Vulnerabilities and Exposures) that get discovered regularly.
How often do you rebuild your Docker image? How often do you check for security patches in the base image? Most self-hosters deploy once and never update.
Six months later, they're running an image with 47 known vulnerabilities, 3 of which are rated "critical."
