T03 · Remote Payload Retrieval and Execution
- Location
SKILL.md:73- Finding
Mutable Remote Installer Is Piped Directly into a Shell
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This deployment skill is mostly coherent, but it asks the agent to install mutable third-party software and create persistent automation with enough risk that users should review it carefully before use.
Install only if you are comfortable reviewing each command first. Prefer pinned versions or verified releases, avoid running curl-to-shell installers, use isolated environments for npm, Bun, and Python packages, confirm canonical target paths, and enable cron jobs or WeChat integration only after reviewing exactly what data they can read and modify.
SKILL.md:73Mutable Remote Installer Is Piped Directly into a Shell
SKILL.md:87Unpinned Third-Party Packages, Plugins, Skills, and Repositories Are Installed
SKILL.md:498Persistent Scheduled Agents Read and Modify Memory and Project Data
SKILL.md:114User-Controlled Paths Are Unsafely Interpolated into Shell Commands
The command 'curl -fsSL https://bun.sh/install | bash' executes code fetched from the network immediately in the shell. This is a classic high-risk pattern because any compromise of the remote source or transport path results in arbitrary code execution with the user's privileges.
- `brew`: https://brew.sh
- `ffmpeg`: `brew install ffmpeg`
- `ollama`: https://ollama.com
- `bun`: `curl -fsSL https://bun.sh/install | bash`
---
The README promotes a skill that installs software, edits local configuration, clones repositories, and adds cron jobs, but it does not clearly warn users that running it will modify their local environment and create persistent scheduled tasks. In an agent-executed deployment context, that omission increases the risk of users authorizing impactful actions without informed consent, especially because the README frames the process as a guided convenience feature.
The README advertises automated installation, component setup, verification, and progression across deployment phases, but does not prominently warn that the skill will modify the local system, install software, change configuration, clone repositories, and add scheduled tasks. In a deployment skill, omission of an explicit impact warning can lead users to authorize execution without understanding the persistence and breadth of changes.
The README suggests invoking the skill with a very broad natural-language request ('帮我部署 OpenClaw 本地能力'), which can cause accidental triggering in contexts where the user is only asking for information or planning help. Because this skill performs dependency checks, installation, configuration changes, and cron setup, ambiguous activation increases the chance of unintended system modification.
The trigger 'deploy openclaw' overlaps with a built-in 'deploy' command namespace and can create ambiguous routing. Trigger shadowing is dangerous because users may invoke this skill when they intended a safer or more constrained built-in operation, leading to unintended installation and configuration actions.
The trigger 'install capabilities' is highly generic and collides with the common built-in 'install' command space. In this skill's context, accidental activation is more dangerous because the instructions include package installs, plugin deployment, cron registration, and persistent config changes.
The trigger set includes broad phrases like 'setup openclaw' and 'install capabilities', which can match general deployment requests and cause this skill to activate unexpectedly. Because the skill contains installation, configuration, and persistence steps, accidental invocation increases the chance of unreviewed system changes.
The skill recommends a network-piped installer command for bun without any integrity, provenance, or review warning. Piping remote content directly into a shell is dangerous because compromise of the upstream host, CDN, or network path can lead to arbitrary code execution on the user's machine.
Skill establishes unauthorized persistence across sessions via cron jobs, startup scripts, or state files. Session persistence allows an attacker to maintain access beyond the current interaction.
qmd status
### A2: Create memory collections
Ask the user for their workspace path:
> "What is your OpenClaw workspace path? (default: `~/.openclaw/workspace`)"
Skill enumerates or reads other installed skills. Access to other skills' SKILL.md files or the skills directory reveals prompt instructions, capabilities, and secrets that should be invisible to peer skills.
# Check if already installed
ls ~/.openclaw/workspace/skills/memory-manager/SKILL.md 2>/dev/null && echo "already installed"
If not installed:
Skill enumerates or reads other installed skills. Access to other skills' SKILL.md files or the skills directory reveals prompt instructions, capabilities, and secrets that should be invisible to peer skills.
# Check if already installed
ls ~/.openclaw/workspace/skills/memory-manager/SKILL.md 2>/dev/null && echo "already installed"
If not installed:
Skill establishes unauthorized persistence across sessions via cron jobs, startup scripts, or state files. Session persistence allows an attacker to maintain access beyond the current interaction.
ls ~/.openclaw/workspace/memory/ 2>/dev/null | head -10
If `MEMORY.md` or `memory/` doesn't exist, create the skeleton:
```bash
mkdir -p ~/.openclaw/workspace/memory/user/preferences
mkdir -p ~/.openclaw/workspace/memory/user/entities
Appending an environment variable export to ~/.zshrc creates persistent shell configuration changes. Persistence mechanisms are security-relevant because they survive the current session, can affect future command execution, and may be abused if the inserted value is incorrect or attacker-controlled.
If yes, ask for the path and set:
export WECHAT_OCR_BIN=/path/to/wechat-ocr
# Add to ~/.zshrc or ~/.bashrc:
echo 'export WECHAT_OCR_BIN=/path/to/wechat-ocr' >> ~/.zshrc
No suspicious patterns detected.