luovicter-collab/openclaw-docs/clawdbot-security-check

Trust tier 2
  • community
LLM review pending
Source check pending

Checking that the SKILL.md file is still in the repository.

Perform a comprehensive read-only security audit of Clawdbot's own configuration. This is a knowledge-based skill that teaches Clawdbot to identify hardening opportunities across the system. Use when user asks to "run security check", "audit clawdbot", "check security hardening", or "what vulnerabilities does my Clawdbot have". This skill uses Clawdbot's internal capabilities and file system access to inspect configuration, detect misconfigurations, and recommend remediations. It is designed to be extensible - new checks can be added by updating this skill's knowledge.

Install

npx vskill@latest install luovicter-collab/openclaw-docs/clawdbot-security-check

SKILL.md

The same SKILL.md was published earlier as violettance/waffle/clawdbot-security-check.

Clawdbot Self-Security Audit Framework

This skill empowers Clawdbot to audit its own security posture using first-principles reasoning. Rather than relying on a static script, Clawdbot learns the framework and applies it dynamically to detect vulnerabilities, understand their impact, and recommend specific remediations.

Core Philosophy

"Security through transparency and self-awareness." — Inspired by ᴅᴀɴɪᴇʟ ᴍɪᴇssʟᴇʀ

Clawdbot should know its own attack surface. This skill embeds that knowledge directly.

Security Principles

Running an AI agent with shell access requires caution. Focus on three areas:

  1. Who can talk to the bot — DM policies, group allowlists, channel restrictions
  2. Where the bot is allowed to act — Network exposure, gateway binding, proxy configs
  3. What the bot can touch — Tool access, file permissions, credential storage

Start with the smallest access possible and widen it as you gain confidence.

Trust Hierarchy

Apply appropriate trust levels based on role:

LevelEntityTrust Model
1OwnerFull trust — has all access
2AITrust but verify — sandboxed, logged
3AllowlistsLimited trust — only specified users
4StrangersNo trust — blocked by default

Audit Commands

Use these commands to run security audits:

  • clawdbot security audit — Standard audit of common issues
  • clawdbot security audit --deep — Comprehensive audit with all checks
  • clawdbot security audit --fix — Apply guardrail remediations

The 12 Security Domains

When auditing Clawdbot, systematically evaluate these domains:

1. Gateway Exposure 🔴 Critical

What to check:

  • Where is the gateway binding? (gateway.bind)
  • Is authentication configured? (gateway.auth_token or CLAWDBOT_GATEWAY_TOKEN env var)
  • What port is exposed? (default: 18789)
  • Is WebSocket auth enabled?

How to detect:

bash
cat ~/.clawdbot/clawdbot.json | grep -A10 '"gateway"'
env | grep CLAWDBOT_GATEWAY_TOKEN

Vulnerability: Binding to 0.0.0.0 or lan without auth allows network access.

Remediation:

bash
# Generate gateway token
clawdbot doctor --generate-gateway-token
export CLAWDBOT_GATEWAY_TOKEN="$(openssl rand -hex 32)"

2. DM Policy Configuration 🟠 High

What to check:

  • What is dm_policy set to?
  • If allowlist, who is explicitly allowed via allowFrom?

How to detect:

bash
cat ~/.clawdbot/clawdbot.json | grep -E '"dm_policy|"allowFrom"'

Vulnerability: Setting to allow or open means any user can DM Clawdbot.

Remediation:

json
{
"channels": {
"telegram": {
"dmPolicy": "allowlist",
"allowFrom": ["@trusteduser1", "@trusteduser2"]
}
}
}

3. Group Access Control 🟠 High

What to check:

  • What is groupPolicy set to?
  • Are groups explicitly allowlisted?
  • Are mention gates configured?

How to detect:

bash
cat ~/.clawdbot/clawdbot.json | grep -E '"groupPolicy"|"groups"'
cat ~/.clawdbot/clawdbot.json | grep -i "mention"

Vulnerability: Open group policy allows anyone in the room to trigger commands.

Remediation:

json
{
"channels": {
"telegram": {
"groupPolicy": "allowlist",
"groups": {
"-100123456789": true
}
}
}
}

4. Credentials Security 🔴 Critical

What to check:

  • Credential file locations and permissions
  • Environment variable usage
  • Auth profile storage

Credential Storage Map:

PlatformPath
WhatsApp~/.clawdbot/credentials/whatsapp/{accountId}/creds.json
Telegram~/.clawdbot/clawdbot.json or env
Discord~/.clawdbot/clawdbot.json or env
Slack~/.clawdbot/clawdbot.json or env
Pairing allowlists~/.clawdbot/credentials/channel-allowFrom.json
Auth profiles~/.clawdbot/agents/{agentId}/auth-profiles.json
Legacy OAuth~/.clawdbot/credentials/oauth.json

How to detect:

bash
ls -la ~/.clawdbot/credentials/
ls -la ~/.clawdbot/agents/*/auth-profiles.json 2>/dev/null
stat -c "%a" ~/.clawdbot/credentials/oauth.json 2>/dev/null

Vulnerability: Plaintext credentials with loose permissions can be read by any process.

Remediation:

bash
chmod 700 ~/.clawdbot
chmod 600 ~/.clawdbot/credentials/oauth.json
chmod 600 ~/.clawdbot/clawdbot.json

5. Browser Control Exposure 🟠 High

What to check:

  • Is browser control enabled?
  • Are authentication tokens set for remote control?
  • Is HTTPS required for Control UI?
  • Is a dedicated browser profile configured?

How to detect:

bash
cat ~/.clawdbot/clawdbot.json | grep -A5 '"browser"'
cat ~/.clawdbot/clawdbot.json | grep -i "controlUi|insecureAuth"
ls -la ~/.clawdbot/browser/

Vulnerability: Exposed browser control without auth allows remote UI takeover. Browser access allows the model to use logged-in sessions.

Remediation:

json
{
"browser": {
"remoteControlUrl": "https://...",
"remoteControlToken": "...",
"dedicatedProfile": true,
"disableHostControl": true
},
"gateway": {
"controlUi": {
"allowInsecureAuth": false
}
}
}

Security Note: Treat browser control URLs as admin APIs.


6. Gateway Bind & Network Exposure 🟠 High

What to check:

  • What is gateway.bind set to?
  • Are trusted proxies configured?
  • Is Tailscale enabled?

How to detect:

bash
cat ~/.clawdbot/clawdbot.json | grep -A10 '"gateway"'
cat ~/.clawdbot/clawdbot.json | grep '"tailscale"'

Vulnerability: Public binding without auth allows internet access to gateway.

Remediation:

json
{
"gateway": {
"bind": "127.0.0.1",
"mode": "local",
"trustedProxies": ["127.0.0.1", "10.0.0.0/8"],
"tailscale": {
"mode": "off"
}
}
}

7. Tool Access & Sandboxing 🟡 Medium

What to check:

  • Are elevated tools allowlisted?
  • Is restrict_tools or mcp_tools configured?
  • What is workspaceAccess set to?
  • Are sensitive tools running in sandbox?

How to detect:

bash
cat ~/.clawdbot/clawdbot.json | grep -i "restrict|mcp|elevated"
cat ~/.clawdbot/clawdbot.json | grep -i "workspaceAccess|sandbox"
cat ~/.clawdbot/clawdbot.json | grep -i "openRoom"

Workspace Access Levels:

ModeDescription
noneWorkspace is off limits
roWorkspace mounted read-only
rwWorkspace mounted read-write

Vulnerability: Broad tool access means more blast radius if compromised. Smaller models are more susceptible to tool misuse.

Remediation:

json
{
"restrict_tools": true,
"mcp_tools": {
"allowed": ["read", "write", "bash"],
"blocked": ["exec", "gateway"]
},
"workspaceAccess": "ro",
"sandbox": "all"
}

Model Guidance: Use latest generation models for agents with filesystem or network access. If using small models, disable web search and browser tools.


8. File Permissions & Local Disk Hygiene 🟡 Medium

What to check:

  • Directory permissions (should be 700)
  • Config file permissions (should be 600)
  • Symlink safety

How to detect:

bash
stat -c "%a" ~/.clawdbot
ls -la ~/.clawdbot/*.json

Vulnerability: Loose permissions allow other users to read sensitive configs.

Remediation:

bash
chmod 700 ~/.clawdbot
chmod 600 ~/.clawdbot/clawdbot.json
chmod 600 ~/.clawdbot/credentials/*

9. Plugin Trust & Model Hygiene 🟡 Medium

What to check:

  • Are plugins explicitly allowlisted?
  • Are legacy models in use with tool access?

How to detect:

bash
cat ~/.clawdbot/clawdbot.json | grep -i "plugin|allowlist"
cat ~/.clawdbot/clawdbot.json | grep -i "model|anthropic"

Vulnerability: Untrusted plugins can execute code. Legacy models may lack modern safety.

Remediation:

json
{
"plugins": {
"allowlist": ["trusted-plugin-1", "trusted-plugin-2"]
},
"agents": {
"defaults": {
"model": {
"primary": "minimax/MiniMax-M2.1"
}
}
}
}

10. Logging & Redaction 🟡 Medium

What is logging.redactSensitive set to?

  • Should be tools to redact sensitive tool output
  • If off, credentials may leak in logs

How to detect:

bash
cat ~/.clawdbot/clawdbot.json | grep -i "logging|redact"
ls -la ~/.clawdbot/logs/

Remediation:

json
{
"logging": {
"redactSensitive": "tools",
"path": "~/.clawdbot/logs/"
}
}

11. Prompt Injection Protection 🟡 Medium

What to check:

  • Is wrap_untrusted_content or untrusted_content_wrapper enabled?
  • How is external/web content handled?
  • Are links and attachments treated as hostile?

How to detect:

bash
cat ~/.clawdbot/clawdbot.json | grep -i "untrusted|wrap"

Prompt Injection Mitigation Strategies:

  • Keep DMs locked to pairing or allowlists
  • Use mention gating in groups
  • Treat all links and attachments as hostile
  • Run sensitive tools in a sandbox
  • Use instruction-hardened models like Anthropic Opus 4.5

Vulnerability: Untrusted content (web fetches, sandbox output) can inject malicious prompts.

Remediation:

json
{
"wrap_untrusted_content": true,
"untrusted_content_wrapper": "<untrusted>",
"treatLinksAsHostile": true,
"mentionGate": true
}

12. Dangerous Command Blocking 🟡 Medium

What to check:

  • What commands are in blocked_commands?
  • Are these patterns included: rm -rf, curl |, git push --force, mkfs, fork bombs?

How to detect:

bash
cat ~/.clawdbot/clawdbot.json | grep -A10 '"blocked_commands"'

Vulnerability: Without blocking, a malicious prompt could destroy data or exfiltrate credentials.

Remediation:

json
{
"blocked_commands": [
"rm -rf",
"curl |",
"git push --force",
"mkfs",
":(){:|:&}"
]
}

13. Secret Scanning Readiness 🟡 Medium

What to check:

  • Is detect-secrets configured?
  • Is there a .secrets.baseline file?
  • Has a baseline scan been run?

How to detect:

bash
ls -la .secrets.baseline 2>/dev/null
which detect-secrets 2>/dev/null

Secret Scanning (CI):

bash
# Find candidates
detect-secrets scan --baseline .secrets.baseline
# Review findings
detect-secrets audit
# Update baseline after rotating secrets or marking false positives
detect-secrets scan --baseline .secrets.baseline --update

Vulnerability: Leaked credentials in the codebase can lead to compromise.


Audit Functions

The --fix flag applies these guardrails:

  • Changes groupPolicy from open to allowlist for common channels
  • Resets logging.redactSensitive from off to tools
  • Tightens local permissions: .clawdbot directory to 700, config files to 600
  • Secures state files including credentials and auth profiles

High-Level Audit Checklist

Treat findings in this priority order:

  1. 🔴 Lock down DMs and groups if tools are enabled on open settings
  2. 🔴 Fix public network exposure immediately
  3. 🟠 Secure browser control with tokens and HTTPS
  4. 🟠 Correct file permissions for credentials and config
  5. 🟡 Only load trusted plugins
  6. 🟡 Use modern models for bots with tool access

Access Control Models

DM Access Model
ModeDescription
pairingDefault - unknown senders must be approved via code
allowlistUnknown senders blocked without handshake
openPublic access - requires explicit asterisk in allowlist
disabledAll inbound DMs ignored
Slash Commands

Slash commands are only available to authorized senders based on channel allowlists. The /exec command is a session convenience for operators and does not modify global config.

Threat Model & Mitigation

Potential Risks

This is the start of the file. Read the full SKILL.md on GitHub.

Security

  • Security scanPassed, 100 of 100Pattern checks on the skill's files.
  • Model reviewNot runA model review is scheduled for the next rescan.

Quality evaluation

  • Task evaluationNot runNo evaluation yet. Run one in Skill Studio.

Source

Popularity

Repository stars
1
7-day trend score
3

Stars and forks are for the whole GitHub repository, not this skill alone. Not refreshed yet.

Works with

Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.

  • Claude Code
  • Cursor
  • GitHub Copilot
  • Windsurf
  • Codex
  • Gemini CLI
  • Cline
  • Amp
  • Roo Code
  • Goose
  • Continue
  • Kilo Code
  • Junie
  • Trae
  • OpenHands
  • Qwen Code
  • AI Agent
  • Tabnine Chat
  • Sourcegraph Cody
  • Amazon Q
  • Firebase Genkit
  • Sweep
  • Devin
  • Phind
  • Mentat
  • Claude Desktop
  • Aider
  • GPT Pilot
  • Plandex
  • bolt.new
  • v0
  • Replit Agent
  • Anse
  • TypingMind
  • BetterChatGPT
  • LibreChat
  • Warp AI
  • Pieces
  • Fig AI
Embed badge
vskill VERIFIED badge
[![vskill VERIFIED](https://verified-skill.com/api/v1/skills/luovicter-collab/openclaw-docs/clawdbot-security-check/badge)](https://verified-skill.com/skills/luovicter-collab/openclaw-docs/clawdbot-security-check)

Something wrong with this skill or its page? Tell us.