
OpenClaw's default configuration listens on all network interfaces, has no authentication, allows unrestricted file system access, and lets agents install arbitrary code from the internet. If you installed OpenClaw and changed nothing, your system is exposed. This OpenClaw security audit checklist gives you 15 specific steps to lock it down, starting with the 4 that take under 10 minutes and fix the most critical vulnerabilities.
OpenClaw is not a chatbot. OpenClaw is an autonomous agent runtime with system-level access, persistent API connections, terminal capabilities, and the ability to install and execute third-party code. Traditional application security checklists miss the unique attack surface of an AI agent that consumes data and produces executable code simultaneously.
Security researcher Caleb Sima from Semgrep framed the core problem: "The boundary doesn't exist. It's data all the way down until it suddenly becomes execution." Every tool call an OpenClaw agent makes requires validation because LLM outputs are inherently non-deterministic. The same input can produce different code outputs on different runs, making exhaustive testing impossible.
Three critical CVEs have affected OpenClaw installations:
Each CVE exploited default configurations that the majority of OpenClaw installations were running unchanged. This checklist fixes every vulnerability class these CVEs represent.
Every OpenClaw security audit starts with version verification. Versions before 2026.2.25 contain unpatched critical vulnerabilities.
openclaw --version
openclaw update --latest
This single command patches CVE-2026-25253 and 7 additional critical vulnerabilities. Do not proceed with any other hardening steps until this update is complete. Hardening an outdated version is pointless because the known exploits bypass configuration-level protections.
By default, recent OpenClaw versions enforce fail-closed authentication. But older installations or migrated configurations may have authentication disabled. Verify this is active:
# In openclaw.json or config.yaml auth: enabled: true method: "token" token: "your-32-character-random-token"
Use a minimum 32-character random token. Anything shorter is brute-forceable. Generate one with openssl rand -hex 32 on Linux or macOS.
OpenClaw's default binding of 0.0.0.0:18789 exposes the gateway API to every network interface. Over 15,000 publicly accessible OpenClaw instances were identified before the CVE-2026-25253 disclosure. Change this immediately:
server: host: "127.0.0.1" port: 18789
Access remotely through SSH tunnels, Tailscale, or a reverse proxy with TLS. Never expose port 18789 directly to the public internet. For the full networking setup, see the OpenClaw Docker deployment guide.
By default, OpenClaw agents can install skills autonomously from ClawHub. Independent audits have identified over 820 confirmed malicious skills out of approximately 10,700 total on ClawHub. Roughly 12% of audited skills were actively malicious or contained at least one vulnerability.
skills: auto_install: false require_confirmation: true
This forces human review before any skill installation. No skill reaches your production environment without explicit approval.
Pro tip: These 4 steps take under 10 minutes and eliminate the most critical attack vectors. Everything else in this checklist adds additional defense layers, but steps 1 through 4 are non-negotiable for any OpenClaw deployment handling business data.
A reverse proxy (Nginx, Caddy, or Traefik) provides SSL/TLS encryption, rate limiting, and request filtering between the internet and your OpenClaw gateway. Without TLS, all communication between your browser and the gateway travels in plaintext, including authentication tokens.
The reverse proxy also hides OpenClaw version information from network scanners. Attackers actively scan for exposed OpenClaw gateways and target specific version ranges with known exploits.
On Ubuntu/Debian VPS instances, configure UFW to allow only SSH and your reverse proxy port:
sudo ufw default deny incoming sudo ufw default allow outgoing sudo ufw allow 22/tcp sudo ufw allow 443/tcp sudo ufw enable
Do not add a rule for port 18789. The reverse proxy handles external traffic. OpenClaw listens on localhost only (from Step 3), and the reverse proxy forwards authenticated requests internally.
Run OpenClaw in a Docker container with a dedicated network namespace. Restrict outbound traffic to only the external services OpenClaw needs: LLM API endpoints (api.anthropic.com, api.openai.com), messaging platform APIs, and your specific business tool connections.
Disable mDNS broadcasting to prevent local network discovery:
export OPENCLAW_DISABLE_BONJOUR=1
Security Hardening Is Complex. Let Mixbit Handle It.
Every step in this checklist is applied during Mixbit deployments. Security-first, not security-afterthought.
Review every skill's source code before installing. Red flags that indicate a malicious or vulnerable skill:
Use automated scanning tools before manual review. Cisco's skill scanner provides automated detection of common malicious patterns:
pip install cisco-ai-skill-scanner skill-scanner scan ./skill-directory
ClawHub download metrics are gamed. Popularity does not equal safety. Prefer security-audited skill collections like the Awesome OpenClaw Skills repository, which curates and filters from the broader ClawHub registry. Check the best OpenClaw plugins guide for vetted recommendations.
Apply the principle of least privilege to every OpenClaw agent:
permissions: filesystem: "read-only" shell: false network: ["api.openai.com", "api.anthropic.com"] oauth: false
Enable write access, shell access, and OAuth only for specific agents that require those capabilities, and only for the specific resources they need. A reporting agent does not need shell access. An email triage agent does not need file system write permissions.
A skill that is safe today can receive a malicious update tomorrow. Pin every installed skill to a specific version and re-audit before upgrading. Supply chain attacks through skill updates have been documented: initially benign skills used as stepping stones for later malicious payloads.
Configure OpenClaw to log all agent actions, skill events, authentication attempts, and API calls. Redact sensitive data in logs to prevent credential exposure in log files:
"logging": {
"redactSensitive": "tools"
}Centralize logs using Docker's logging drivers or forward to a log management service. Without centralized logging, investigating an incident requires manually searching through multiple container log files.
Track every domain your OpenClaw instance connects to. Flag any connections to unknown external APIs. A skill that suddenly starts contacting an IP address not in your allowlist is compromised or was malicious from the start.
ss -tunp | grep openclaw # or for detailed monitoring: tcpdump -i any host $(hostname) and not port 22
Monitor the skill directory for unauthorized changes using inotifywait or AIDE. Skills should not modify themselves after installation. Any file creation, modification, or deletion in the skill directory outside of a deliberate update is suspicious.
OpenClaw security is not a one-time configuration. Follow this review schedule:
| Frequency | Action |
|---|---|
| Weekly | Check for OpenClaw version updates and security advisories |
| Monthly | Review installed skills against known malicious skill databases |
| Monthly | Audit outbound network connections log for anomalies |
| Quarterly | Full skill re-audit including dependency updates |
| Immediately | Re-audit after any CVE disclosure or skill registry incident |
Run the built-in security tools as part of every scheduled review:
openclaw doctor --fix openclaw audit openclaw security audit --deep
OpenClaw incident response follows a specific sequence because the agent has active connections to business systems with stored credentials:
The difference between a 5-minute response and a 5-hour response determines whether an incident stays contained or becomes a data breach affecting your customers.
Pro tip: Golden rule from Semgrep's security cheat sheet: "Do NOT connect OpenClaw to crown jewel systems or data during initial deployment." Use an isolated VM, enable container sandboxing, minimize stored credentials, and network-segment from production systems until you have verified that your security configuration holds.
| # | Step | Priority | Time |
|---|---|---|---|
| 1 | Update to latest version | Critical | 2 min |
| 2 | Enable gateway authentication (32+ char token) | Critical | 2 min |
| 3 | Bind gateway to 127.0.0.1 | Critical | 1 min |
| 4 | Disable auto-install for skills | Critical | 1 min |
| 5 | Deploy behind reverse proxy with TLS | High | 15 min |
| 6 | Configure firewall (UFW) | High | 5 min |
| 7 | Isolate network, disable mDNS | High | 10 min |
| 8 | Audit every skill before installation | High | Ongoing |
| 9 | Use trusted skill sources only | High | Ongoing |
| 10 | Restrict agent permissions (least privilege) | High | 10 min |
| 11 | Pin skill versions, disable auto-updates | Medium | 5 min |
| 12 | Enable comprehensive logging with redaction | Medium | 10 min |
| 13 | Monitor outbound network connections | Medium | 10 min |
| 14 | Set up file integrity monitoring | Medium | 15 min |
| 15 | Schedule regular security reviews | Medium | Ongoing |
Steps 1 through 4 take under 10 minutes. Steps 5 through 7 add another 30 minutes. Together, these 7 steps eliminate the attack surface that caused every major OpenClaw security incident to date.
For businesses that handle customer data, financial records, or regulatory-sensitive workflows, this security audit checklist is the minimum responsible configuration. The 7 security gaps in self-installed OpenClaw covers additional vulnerabilities specific to DIY setups. For teams that want every item on this checklist handled by professionals, Mixbit's deployment service applies all 15 steps during the initial setup, with ongoing monitoring through managed operations.
Get Every Security Step Right from Day One
Mixbit applies this complete security audit checklist during every deployment. Hardened, monitored, and maintained.