T03 · Remote Payload Retrieval and Execution
- Location
SKILL.md:500- Finding
Mutable Remote Homebrew Installer Is Executed Directly by Bash
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This is a disclosed multi-agent coding orchestrator, but it gives agents broad automatic execution authority and includes high-impact installation steps that users should review carefully before use.
Install only if you intentionally want a persistent multi-agent coding system that can spawn agents, run shell commands, alter repositories, and manage merge workflows. Review setup.sh and the SKILL.md setup commands before running them, prefer pinned and verified tool versions, avoid autonomous hook execution for untrusted tasks, and keep the Gas Town workspace limited to repositories and credentials you are comfortable exposing to these agents.
SKILL.md:500Mutable Remote Homebrew Installer Is Executed Directly by Bash
SKILL.md:81Unconditional Hook Execution Redirects the Agent to Potentially Untrusted Persistent Instructions
scripts/setup.sh:51Runtime Installation Uses Mutable Unpinned Third-Party Executables
scripts/setup.sh:23Go Toolchain Archive Is Unverified and Uses a Predictable Temporary Path
Tool parameters are crafted to achieve unintended or unsafe behavior. Parameter abuse can bypass intended safety checks (e.g. shell=True, --force, dangerous glob patterns).
# Install Go (apt version may be outdated, use official installer)
wget https://go.dev/dl/go1.24.12.linux-amd64.tar.gz
sudo rm -rf /usr/local/go && sudo tar -C /usr/local -xzf go1.24.12.linux-amd64.tar.gz
echo 'export PATH=$PATH:/usr/local/go/bin:$HOME/go/bin' >> ~/.bashrc
source ~/.bashrc
Tool parameters are crafted to achieve unintended or unsafe behavior. Parameter abuse can bypass intended safety checks (e.g. shell=True, --force, dangerous glob patterns).
# Install Go (apt version may be outdated, use official installer)
wget https://go.dev/dl/go1.24.12.linux-amd64.tar.gz
sudo rm -rf /usr/local/go && sudo tar -C /usr/local -xzf go1.24.12.linux-amd64.tar.gz
echo 'export PATH=$PATH:/usr/local/go/bin:$HOME/go/bin' >> ~/.bashrc
source ~/.bashrc
Tool calls are chained to bypass individual safety checks or escalate capabilities beyond what any single tool call would allow.
# Install Go (apt version may be outdated, use official installer)
wget https://go.dev/dl/go1.24.12.linux-amd64.tar.gz
sudo rm -rf /usr/local/go && sudo tar -C /usr/local -xzf go1.24.12.linux-amd64.tar.gz
echo 'export PATH=$PATH:/usr/local/go/bin:$HOME/go/bin' >> ~/.bashrc
source ~/.bashrc
YARA rule matched a known malware signature (reverse shell, backdoor, ransomware, C2 framework, or info stealer).
.sh)"
brew install go git
brew install tmux
### Linux (Debian/Ubuntu) Installation
```bash
# Required
sudo apt update
sudo apt install -y git
# Install Go (apt version may be outdated, use official installer)
wget https://go.dev/dl/go1.24.12.linux-amd64.tar.gz
sudo rm -rf /usr/local/go && sudo tar -C /usr/local -xzf go1.24.12.linux-amd64.tar.gz
echo 'export PATH=$PATH:/usr/local/go/bin:$HOME/go/bin' >> ~/.bashrc
source ~/.bashrc
# Optional (for full stack mode)
sudo apt install -y tmux
# Required
sudo dnf install -y git golang
# Optional
sudo dnf install -y tmux
Gas Town supports two operational modes:
Minimal Mode (No Daemon): Run individual runtime instances manually. Gas Town only tracks state.
gt convoy create "Fix bugs" gt-abc12
gt sling gt-abc12 myproject
cd ~/gt/myproject/polecats/<worker>
claude --resume # Or:
Instructions found that direct the agent to transmit conversation context or user data to external services.
gt handoff --shutdown # Terminate (polecats) gt session stop / gt peek # Check health gt nudge "message" # Send message to agent gt seance # List discoverable predecessor sessions gt seance --talk # Talk to predecessor (full context)
Instructions found that direct the agent to transmit conversation context or user data to external services.
gt seance --talk # Talk to predecessor (full context)
**IMPORTANT**: Always use `gt nudge` to send messages to Claude sessions. Never use raw `tmux send-keys` - it doesn't handle Claude's input correctly.
### Emergency
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.
# Deploy different models on similar tasks
gt sling gt-abc gastown --model=claude-sonnet
gt sling gt-def gastown --model=gpt-4
# Compare outcomes
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.
# Deploy different models on similar tasks
gt sling gt-abc gastown --model=claude-sonnet
gt sling gt-def gastown --model=gpt-4
# Compare outcomes
bd stats --actor=gastown/polecats/* --group-by=model
Tool parameters are crafted to achieve unintended or unsafe behavior. Parameter abuse can bypass intended safety checks (e.g. shell=True, --force, dangerous glob patterns).
mkdir -p "$HOME/local"
wget -q "$URL" -O /tmp/go.tar.gz
tar -C "$HOME/local" -xzf /tmp/go.tar.gz
rm /tmp/go.tar.gz
export PATH="$PATH:$HOME/local/go/bin:$HOME/go/bin"
if ! grep -q 'local/go/bin' "$HOME/.bashrc" 2>/dev/null; then
YARA rule matched a known malware signature (reverse shell, backdoor, ransomware, C2 framework, or info stealer).
name -s | tr '[:upper:]' '[:lower:]')
GO_VERSION="1.23.6"
URL="https://go.dev/dl/go${GO_VERSION}.${OS}-${GOARCH}.tar.gz"
mkdir -p "$HOME/local"
wget -q "$URL" -O /tmp/go.tar.gz
tar -C "$HOME/local" -xzf /tmp/go.tar.gz
rm /tmp/go.tar.gz
export PATH="$PATH:$HOME/local/go/bin:$HOME/go/bin"
if ! grep -q 'local/go/bin' "$HOME/.bashrc" 2>/dev/null; then
echo 'export PATH=$PATH:$HOME/local/go/bin:$HOME/go/bin' >> "$HOME/.bashrc"
fi
echo "✅ Go $(go version | awk '{print $3}')"
else
export PATH="$PATH:$HOME/local/go/bin:$HOME/go/bin"
echo "✅ Go $(go version | awk '{print $3}')"
fi
# Install gt if needed
if ! command -v gt &>/dev/null; then
echo "📦 Installing Gas Town (gt)..."
go install github.com/steveyegge/gastown/cmd/gt@latest 2>&1
echo "✅ gt $(gt version 2>&1)"
else
echo "✅ gt $(gt version 2>&1)"
fi
# Install bd if needed
if ! command -v bd &>/dev/null; then
echo "📦 Installing Beads (bd)...
The usage guidance is extremely broad: 'Just tell the agent what you need' followed by examples of autonomous multi-agent task execution. This can cause the skill to activate for loosely related prompts and launch orchestration behavior unexpectedly, increasing the chance of unintended code changes, unnecessary command execution, or over-delegation across repositories.
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.
$ npm install -g @gastown/gt # npm
$ go install github.com/steveyegge/gastown/cmd/gt@latest # From source
# If using go install, add Go binaries to PATH (add to ~/.zshrc or ~/.bashrc)
export PATH="$PATH:$HOME/go/bin"
# Create workspace with git initialization
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.
# If using go install, add Go binaries to PATH (add to ~/.zshrc or ~/.bashrc)
export PATH="$PATH:$HOME/go/bin"
# Create workspace with git initialization
gt install ~/gt --git
cd ~/gt
Commands invoke sudo or root privileges. Verify this elevated access is necessary and justified.
# Required
sudo apt update
sudo apt install -y git
# Install Go (apt version may be outdated, use official installer)
Commands invoke sudo or root privileges. Verify this elevated access is necessary and justified.
# Required
sudo apt update
sudo apt install -y git
# Install Go (apt version may be outdated, use official installer)
Commands invoke sudo or root privileges. Verify this elevated access is necessary and justified.
# Required
sudo apt update
sudo apt install -y git
# Install Go (apt version may be outdated, use official installer)
Commands invoke sudo or root privileges. Verify this elevated access is necessary and justified.
# Required
sudo apt update
sudo apt install -y git
# Install Go (apt version may be outdated, use official installer)
Commands invoke sudo or root privileges. Verify this elevated access is necessary and justified.
# Required
sudo apt update
sudo apt install -y git
# Install Go (apt version may be outdated, use official installer)
Commands invoke sudo or root privileges. Verify this elevated access is necessary and justified.
# Install Go (apt version may be outdated, use official installer)
wget https://go.dev/dl/go1.24.12.linux-amd64.tar.gz
sudo rm -rf /usr/local/go && sudo tar -C /usr/local -xzf go1.24.12.linux-amd64.tar.gz
echo 'export PATH=$PATH:/usr/local/go/bin:$HOME/go/bin' >> ~/.bashrc
source ~/.bashrc
This markdown file includes commands that remove and replace system directories (sudo rm -rf /usr/local/go && sudo tar ...) and later promotes auto-repair actions like gt doctor --fix without any cautionary note. For markdown files, SQP-2 applies when the skill description omits warnings about behaviors that could affect user data or system integrity, and these commands can materially alter a user's system.
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.
Option 2: Dispatch to Local Workers
bd create --prefix beads "Fix authentication bug"
gt convoy create "Auth fix" bd-xyz
gt sling bd-xyz beads
The documentation explicitly instructs agents to execute queued work automatically ('If your hook has work, RUN IT') without any warning, approval gate, or scope limitation. In a multi-agent system that can dispatch tasks, manipulate git state, and coordinate merges, this increases the chance of unintended or unsafe actions being carried out autonomously if malicious, erroneous, or overly broad work lands on a hook.
The phrase 'No asking' codifies autonomous decision-making without user confirmation, which is risky in a system designed to persist work across crashes and allow any worker to continue execution. Because this architecture includes automatic dispatch, monitoring, and merge-related workflows, a malicious or malformed task could propagate through the system and trigger impactful actions without a human review point.
**Gas Town Universal Propulsion Principle:**
> If your hook has work, RUN IT.
No waiting. No asking. Work lands on hook → work runs.
Molecules (work units) survive crashes. Any worker can continue where another left off. The engine never stops as long as there's fuel.
Detected: suspicious.destructive_delete_command