T05 · Unauthorized Access and Privilege Escalation
- Location
references/openclaw-config.md:30- Finding
Unrestricted and Confirmation-Free Command Execution
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
The skill is a coherent Obsidian memory setup, but it recommends high-impact Discord and command-execution settings that need careful review before installation.
Install only if you are comfortable maintaining a persistent agent memory vault and reviewing the OpenClaw/Discord configuration yourself. Do not use the documented full tools, exec security full, or ask off settings on a normal machine or Discord-facing bot; use least privilege, keep command approvals on, avoid Administrator Discord permissions, restrict bot channels/users, and run any sync job as an unprivileged user with backups and logging.
references/openclaw-config.md:30Unrestricted and Confirmation-Free Command Execution
references/discord-setup.md:444Discord Setup Recommends Excessive Bot Permissions and Privileged Intents
references/discord-setup.md:382Persistent Cron Synchronization Performs Unattended Destructive Deletion
The guidance explicitly configures tools.profile: "full", exec.security: "full", and exec.ask: "off", giving a Discord-connected agent unrestricted tool use and direct command execution without confirmation. In a skill whose purpose is memory and workspace setup, this is over-privileged and materially increases the chance that a prompt, compromised channel, or user mistake leads to arbitrary local command execution.
The documentation normalizes unsafe execution settings by stating the agent can use all tools, execute commands directly, and do so without asking, but provides no prominent safety warning or compensating controls. This can lead operators to deploy an internet-facing or chat-driven agent with effectively unsupervised command execution, making prompt injection and accidental destructive actions far more likely.
The documented rm -rf "$WORKSPACE/memory/.dreams" is a destructive operation embedded in an automation example. Although narrowly targeted as written, recursive forced deletion in copy-paste guidance is hazardous because path mistakes, variable changes, or later edits can turn it into unintended data loss, especially when run unattended via cron.
WORKSPACE="/root/clawd" rsync -a --delete "$WORKSPACE/vault/10-journal/" "$WORKSPACE/memory/" cp -u "$WORKSPACE/vault/00-brain/MEMORY.md" "$WORKSPACE/MEMORY.md" rm -rf "$WORKSPACE/memory/.dreams" 2>/dev/null
Run via system cron every 30 minutes (matching heartbeat cadence):
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
"memorySearch": {
"enabled": true,
"sources": ["memory"],
"provider": "openai" // Requires OPENAI_API_KEY in ~/.openclaw/.env
},
"compaction": {
"mode": "safeguard" // Preserves context during compaction
The skill documents network-capable integration paths such as Discord bot connectivity and embedding-provider configuration, but it does not declare an explicit tool scope or allowed-tools boundary. That omission can cause the agent to invoke broader capabilities than a user expects, especially in a skill that also touches filesystem state and external services.
The description includes very broad triggers like 'remember this', 'update memory', 'create journal', and 'set up discord', which are common conversational phrases that could activate the skill unintentionally. In a skill that creates files, symlinks, sync scripts, and workspace structure, accidental activation can lead to unintended persistent changes or disclosure into long-term memory.
The setup section tells the operator to run a script that initializes the vault, creates symlinks, and modifies workspace layout, but it does not prominently warn that this performs persistent filesystem changes. Because the skill manages memory, journals, scripts, and integration scaffolding, users may not appreciate the scope of modifications before executing setup.
tools.profile: "full" grants the agent access to all tools, including ones unnecessary for the stated memory-system purpose. In the context of a Discord-integrated agent, broad tool access compounds the risk from malicious prompts, channel misuse, or compromised accounts by widening what the agent can do on the host or connected services.
| `ackReactionScope: "all"` | Scope | React to every message (vs just first) |
| `autoPresence.enabled` | Bot status | Shows health in member list sidebar |
| `voice.daveEncryption` | Keep false | DAVE E2EE breaks voice receive (known bug) |
| `tools.profile: "full"` | Full tool access | Agent can use all tools without asking |
| `exec.security: "full"` | No sandbox | Agent executes commands directly |
| `exec.ask: "off"` | No confirmation | Agent doesn't ask before running commands |
The phrase 'without asking' reflects autonomous operation for sensitive tool use, removing a human checkpoint before potentially impactful actions are taken. In a chat-driven environment, that sharply increases the risk that ambiguous instructions, social engineering, or prompt injection result in unauthorized or destructive behavior.
| `ackReactionScope: "all"` | Scope | React to every message (vs just first) |
| `autoPresence.enabled` | Bot status | Shows health in member list sidebar |
| `voice.daveEncryption` | Keep false | DAVE E2EE breaks voice receive (known bug) |
| `tools.profile: "full"` | Full tool access | Agent can use all tools without asking |
| `exec.security: "full"` | No sandbox | Agent executes commands directly |
| `exec.ask: "off"` | No confirmation | Agent doesn't ask before running commands |
exec.ask: "off" disables confirmation before command execution, allowing the agent to make consequential decisions and act on them autonomously. When paired with direct Discord interaction and full execution privileges, this creates a dangerous path from untrusted chat input to immediate system actions.
| `voice.daveEncryption` | Keep false | DAVE E2EE breaks voice receive (known bug) |
| `tools.profile: "full"` | Full tool access | Agent can use all tools without asking |
| `exec.security: "full"` | No sandbox | Agent executes commands directly |
| `exec.ask: "off"` | No confirmation | Agent doesn't ask before running commands |
## Custom Emoji & Status Reactions
The cron sync script uses rsync --delete and rm -rf in an automated job without warning about destructive behavior or validating paths before deletion. If variables, paths, or directory assumptions are wrong, the job can silently remove data on a recurring schedule, turning a documentation convenience into persistent data-loss risk.
The setup recommends Administrator or a broad set of bot permissions that exceed what is necessary for memory journaling and documentation workflows. Excessive Discord privileges enlarge the blast radius if the bot token is leaked or the bot is induced to act maliciously, enabling actions across channels, threads, messages, and voice features.
The file directly instructs appending content into persistent vault files but does not mention user notice, consent, or safeguards around modifying stored data. Because this skill is explicitly designed for long-lived memory and journaling, silent writes can create privacy, integrity, and auditability issues, especially if sensitive conversation content is stored automatically.
The auto-logging triggers are defined using very broad conversational phrases like 'Actually...' or 'Can you also...', which are common in ordinary dialogue and can cause the agent to persist user content without clear intent or consent. In a memory system skill whose purpose is to store information across sessions, this increases the likelihood of unintended retention of sensitive, private, or irrelevant content.
The reference configuration explicitly recommends full tool access, unrestricted command execution, and disabled confirmation prompts. In a skill framed around memory/Discord setup, this materially expands the agent's authority far beyond the stated purpose and would let a compromised or mistaken agent run arbitrary system commands without user review.
The config enables unsandboxed execution and disables approval prompts without prominently warning users about destructive system effects. That combination creates a high-risk operational posture because normal agent mistakes, prompt injection, or malicious workspace content could trigger file modification, persistence changes, or command execution automatically.
Setting ask to off removes a user approval checkpoint for actions taken with powerful tools. In isolation this is a safety weakness rather than an exploit, but combined with full exec privileges it increases the chance that harmful autonomous actions occur without human intervention.
"profile": "full", // Full tool access
"exec": {
"security": "full", // No sandbox restrictions
"ask": "off" // No confirmation prompts
},
"media": {
"audio": {
Skill enables autonomous high-impact decisions without human-in-the-loop verification. Critical operations (destructive commands, financial transactions, data deletion) should require explicit user confirmation.
## Safety
- Don't exfiltrate private data
- Don't run destructive commands without asking
- \`trash\` > \`rm\`
- When in doubt, ask"
The manifest focuses on Obsidian-based memory, semantic search, self-improvement logging, and Discord workspace integration. Advertising a GEMINI_API_KEY for image, video, or music generation introduces an unrelated capability that is not supported by the stated skill purpose and broadens expected access unnecessarily.
The header comment describes a narrower scope than the script actually performs. Beyond symlinks and the learnings directory, the script writes multiple brain files, project templates, daily note templates, decision templates, and Obsidian application configuration.
The manifest does mention Discord workspace integration at the skill level, but this specific script's documented purpose is setting up the Obsidian memory vault structure, templates, and symlinks. The embedded post-install guidance expands into Discord bot creation and privileged intent enablement, which is not implemented by the script and is not necessary for local vault setup.
No suspicious patterns detected.