T03 · Remote Payload Retrieval and Execution
- Location
SKILL.md:45- Finding
Unverified Remote Script Piped Directly into a Shell
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
The skill is mostly coherent with controlling Claude Code through tmux, but it defaults to high-impact automation that bypasses permission checks and auto-approves prompts.
Install only if you intentionally want an agent to run Claude Code unattended in tmux. Avoid the curl-to-shell installer, do not use --dangerously-skip-permissions by default, do not auto-send confirmations, provision any non-root account through normal admin processes, and run it only in a tightly scoped project sandbox with disposable credentials.
SKILL.md:45Unverified Remote Script Piped Directly into a Shell
SKILL.md:131Claude Code Permission Controls Disabled by Default
SKILL.md:165Generic Terminal Prompts Are Automatically Confirmed Without Operation Validation
SKILL.md:131Untrusted Placeholders Are Interpolated into Nested Shell Commands
SKILL.md:68Plaintext Password Is Embedded in a Shell Command
Fetching a remote script with curl and piping it directly to sh is a classic unsafe pattern that executes unreviewed code from the network immediately. In a skill file, this is especially dangerous because it turns mere activation of the skill into arbitrary code execution and inherits any compromise of the remote host, DNS, TLS trust chain, or transient content changes.
npm install -g @anthropic-ai/claude-code
curl -fsSL https://claude.ai/install.sh | sh
### 0.3 Verify Claude Code Works
The pipe into sh creates an execution chain where network-fetched content is immediately interpreted by the shell, eliminating meaningful inspection points. This pattern materially increases exploitability because any upstream compromise or content substitution becomes direct command execution on the host.
npm install -g @anthropic-ai/claude-code
curl -fsSL https://claude.ai/install.sh | sh
### 0.3 Verify Claude Code Works
Skill selects an external model or provider that may use a different account or billing plan than the operator expects. Undisclosed model switches can cause unexpected cost or quota consumption.
claude --version
claude --print "hello" 2>&1 | head -5
**Common Issues**:
The skill instructs creating local user accounts and optionally setting passwords, which is a privileged system administration action unrelated to merely sending commands to an existing tmux/Claude Code setup. In a hostile or mistaken context, this could create persistence, expand access paths, or alter local authentication state without sufficient justification.
Skill selects an external model or provider that may use a different account or billing plan than the operator expects. Undisclosed model switches can cause unexpected cost or quota consumption.
id || echo "❌ user missing"
echo "=== auth ===" claude --print "test" 2>&1 | grep -E "error|Error" && echo "❌ auth failed" || echo "✅ auth ok" } check_env
The skill launches Claude Code with --dangerously-skip-permissions and presents it as a required parameter without a prominent warning. This disables confirmation gates that are meant to prevent unintended file changes, command execution, or other sensitive actions, making downstream prompts far more dangerous.
The skill describes detecting prompts and automatically answering them, including sending 'y', without warning that this can approve unintended or unsafe actions. In combination with a coding agent, auto-confirmation can authorize destructive operations, secrets exposure, or system changes that would otherwise have been reviewed.
Storing session identifiers and timing in a memory file can leak contextual information across tasks, users, or future runs. Even if the content seems low sensitivity, it can expose project names, cadence, and links between activities that help an attacker infer or target ongoing work.
1. **Must check environment on first use**: tmux, claude, regular user, authentication
2. **Clear session naming**: `cc-<project>-<task>` for managing multiple tasks
3. **Regular progress check**: Use `capture-pane` every 30 minutes
4. **Record session ID**: Note session name and start time in memory file
5. **Clean residual attach**: Regularly check `tmux list-clients` and cleanup
---
The skill's declared purpose includes auto-confirming prompts, which signals a design for autonomous approval rather than human-reviewed operation. In context, that increases risk because the skill is meant to drive a powerful coding tool that may request confirmation before impactful actions.
---
name: openclaw-claudecode
description: |
Control Claude Code (cc) via tmux to execute development tasks. Use for: starting CC development sessions, sending development commands, monitoring progress, auto-confirming prompts.
Trigger: user requests "start CC development", "use Claude Code to develop", "tmux + cc to execute task", "monitor CC progress", "check CC output".
Not for: simple code edits (use edit tool directly), non-development Claude conversations.
metadata:
The skill provides package installation commands as routine setup steps without clearly warning that they modify the system and may require elevated privileges. In security-sensitive environments, normalizing these commands increases the chance of unintended host changes and broadens the blast radius of using the skill.
The skill goes beyond tmux-based control of Claude Code and instructs installation of software, including piping a remote script directly to the shell. That expands its authority from session management into host modification and arbitrary code execution, which is dangerous in an adversarial skill because the fetched script can change over time and execute with the caller's privileges.
The explicit auto-confirm/interact section operationalizes autonomous decision-making by programmatically answering prompts. In this context, the danger is elevated because prompt requests are often the safety boundary for tools that modify code, run commands, or access resources.
tmux capture-pane -t <session_name> -p | tail -10 | grep -E "❯|Yes.*No|proceed|permission|y/n"
### 6. Auto-confirm/Interact
```bash
# Send confirmation
Session attachment management and force-detaching other tmux clients exceeds the stated purpose of monitoring Claude Code progress and can disrupt other operators or conceal concurrent oversight. In a shared environment this can be abused to interfere with legitimate monitoring or take exclusive control of an active session.
The instruction to record session name and start time in a memory file creates unnecessary retention of operational metadata. In aggregate, such notes can leak project identities, activity timing, and workflow context to later tasks or unauthorized viewers, especially if the memory store is broadly accessible.