T03 · Remote Payload Retrieval and Execution
- Location
SKILL.md:6- Finding
Mutable Remote Installation Script Is Executed Directly by Bash
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
The skill's stated app is coherent, but its installer can run a mutable remote shell script before review, so users should review it carefully before installing.
Prefer the manual signed GitHub Release path over the curl-to-bash installer. Before using this skill, understand that it manages provider API keys, writes a sync copy into OpenClaw's auth-profiles.json, and modifies OpenClaw configuration; verify the app signature, release provenance, and any installer script before running it.
SKILL.md:6Mutable Remote Installation Script Is Executed Directly by Bash
The use of '| bash' is a classic chaining pattern that executes network-retrieved content immediately, eliminating meaningful user review and turning any upstream compromise into direct code execution on the user's machine. In the context of a tool that manages API keys and modifies local auth configuration, successful exploitation could steal credentials, alter model/provider settings, or install persistence on the host.
Option 2 — Install script:
curl -fsSL https://raw.githubusercontent.com/Gogo6969/clawapi/main/install.sh | bash
The script downloads the signed .zip from GitHub Releases, verifies the SHA-256 checksum, and installs the app. Review the script source before running.
Using '| bash' chains network retrieval directly into command execution, eliminating an inspection step and increasing the blast radius of any upstream compromise. In this skill's context, the app manages API keys and writes to OpenClaw configuration, so installer compromise could expose secrets, alter configs, or install persistence on the host.
curl -fsSL https://raw.githubusercontent.com/Gogo6969/clawapi/main/install.sh | bash
The install script downloads the same signed .zip from GitHub Releases, verifies the SHA-256 checksum, unzips it, and moves the app to /Applications. You can review the script source before running it.
The README instructs users to fetch and execute a remote script in a single command, which creates a supply-chain and remote code execution risk if the GitHub account, repository, branch, or delivery path is ever compromised. Even though the text says the script verifies a checksum and suggests reviewing the source, the dangerous part is that arbitrary shell code is executed before the user can independently validate what it does.
Option 2 — Install script:
curl -fsSL https://raw.githubusercontent.com/Gogo6969/clawapi/main/install.sh | bash
The script downloads the signed .zip from GitHub Releases, verifies the SHA-256 checksum, and installs the app. Review the script source before running.
The skill metadata includes an install command that fetches a remote script and immediately executes it with bash. This creates a direct remote code execution path during installation: if the upstream GitHub content, repository, account, or network path is compromised, arbitrary code will run on the user's machine without prior inspection.
description: Switch AI models and manage API keys for OpenClaw with a native macOS app. Supports 16 providers including OpenAI, Anthropic, xAI, Google, Groq, Ollama, LM Studio, and more.
homepage: https://github.com/Gogo6969/clawapi
user-invocable: true
metadata: {"openclaw":{"emoji":"🔑","requires":{"bins":["curl"],"config":["skills.entries.clawapi"]},"install":[{"kind":"script","command":"curl -fsSL https://raw.githubusercontent.com/Gogo6969/clawapi/main/install.sh | bash"}]}}
---
# ClawAPI — Model Switcher & Key Vault for OpenClaw
The documentation instructs users to run a curl-to-bash install command, which is an unsafe installation pattern even if the referenced script currently performs checksum verification later. The risk occurs before any script-internal validation, because untrusted remote code is already being executed by the shell.
curl -fsSL https://raw.githubusercontent.com/Gogo6969/clawapi/main/install.sh | bash
The install script downloads the same signed .zip from GitHub Releases, verifies the SHA-256 checksum, unzips it, and moves the app to /Applications. You can review the script source before running it.