T03 · Remote Payload Retrieval and Execution
- Location
references/setup.md:27- Finding
Unverified Remote Installer Executed Directly Through a Shell
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This sync skill does what it says at a high level, but it handles sensitive agent memory and remote SSH writes with weak safeguards that users should review before installing.
Install only if you trust every peer and are comfortable syncing agent memory/profile data between machines. Before use, replace the Tailscale install one-liner with verified package-manager instructions, pin or verify SSH host keys, restrict peers to a dedicated low-privilege account and workspace path, run /sync diff before any transfer, and avoid pulling or bidirectional syncing persistent memory files without reviewing changes and keeping backups.
references/setup.md:27Unverified Remote Installer Executed Directly Through a Shell
scripts/handler.sh:163Command Injection Through Unvalidated Peer Path Configuration
scripts/handler.sh:66SSH Peer Authenticity Verification Is Disabled
scripts/handler.sh:34Unreviewed Peer Content Can Poison Persistent Agent Memory
The code substantially matches the core declared purpose of syncing data between Clawdbot instances over SSH/rsync and supports bi-directional sync, peer management, diffing, and history. However, the description overstates scope: the implementation only syncs a fixed set of paths (memory/ and a few markdown files) and does not include any explicit skill synchronization mechanism, even though the description says it synchronizes skills. Preferences are only partially represented through specific files rather than a general preference store. Additionally, the human-readable description lists trigger phrases, but the formal trigger list is empty. These are material description-to-behavior mismatches, though the primary purpose is otherwise aligned.
Fetching and executing a shell script directly from the internet creates a direct code-execution path with no inspection or authenticity verification. In a sync-oriented skill that establishes network connectivity between machines, compromise of this install step could lead to persistent access across multiple systems.
# Install Tailscale
curl -fsSL https://tailscale.com/install.sh | sh
# Login
tailscale up
The '| sh' construct is the dangerous execution step that turns remote content retrieval into immediate shell execution. This pattern is especially risky here because the skill is about cross-host synchronization and SSH trust setup, so successful compromise can grant broad access and propagate to connected systems.
# Install Tailscale
curl -fsSL https://tailscale.com/install.sh | sh
# Login
tailscale up
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
### Permission Denied
- Ensure SSH keys are set up
- Check authorized_keys permissions: `chmod 600 ~/.ssh/authorized_keys`
### Tailscale Not Connected
- Check status: `tailscale status`
The script builds rsync arguments with --delete, which can remove files during synchronization, but there is no confirmation prompt or user-visible warning in the code before push, pull, or diff-related destructive behavior is prepared. Because this is a shell skill performing cross-system file synchronization, silent deletion is a safety-critical operation that should be explicitly disclosed.
This push path copies local memory files to a remote system and can overwrite or delete remote data via rsync semantics without any interactive confirmation, preview enforcement, or conflict handling. In this skill's context, the synchronized content includes agent memory and user preference files, so unintended execution could leak sensitive data to another host or corrupt the remote bot state.
The pull operation writes remote content into local workspace files without confirmation, integrity checks, or conflict resolution. Because the synced targets include memory and instruction-like files, a compromised or incorrect peer could inject malicious or misleading content into the local agent's persistent state.
The bidirectional sync path modifies both local and remote state automatically based on timestamps, with no confirmation, no conflict management, and no trustworthy peer verification. In this skill context, that is especially dangerous because it propagates persistent memory and behavioral artifacts across agent instances, amplifying corruption, data leakage, or prompt/state poisoning between bots.
The skill advertises broad natural-language triggers such as 'share this with my other bot' and 'update other clawdbot', which can match ordinary conversation and cause sync actions to be invoked in contexts where the user did not intend a cross-machine transfer. In a sync skill, accidental activation is risky because it may propagate memory, profile data, or installed content to another host over SSH without an explicit, narrowly scoped confirmation step.
The skill describes bi-directional synchronization of memory and related files but does not prominently warn that sync can overwrite local state or propagate sensitive user data across machines. In this context, the omission is security-relevant because memory, USER.md, and optional skills may contain private or security-sensitive information, and bidirectional sync increases the chance of unintended disclosure or destructive overwrites.
The setup guide instructs users to pipe a remote script directly into the shell without any integrity verification, review step, or pinning to a trusted artifact. If the remote content, transport path, or publishing account is compromised, arbitrary code would execute immediately on the user's machine.
Commands invoke sudo or root privileges. Verify this elevated access is necessary and justified.
### Connection Refused
- Check SSH is running: `systemctl status ssh`
- Check firewall: `sudo ufw allow ssh`
### Permission Denied
- Ensure SSH keys are set up
Commands invoke sudo or root privileges. Verify this elevated access is necessary and justified.
### Permission Denied
- Ensure SSH keys are set up
- Check authorized_keys permissions: `chmod 600 ~/.ssh/authorized_keys`
### Tailscale Not Connected
- Check status: `tailscale status`
The script performs remote shell execution over SSH to create directories on the peer, but it does so silently and with unescaped command interpolation. In an agent context, this can cause user-unexpected remote side effects and increases risk if peer configuration values contain shell metacharacters or point to unintended hosts.
No suspicious patterns detected.