T01 · Skill Instruction Hijacking
- Location
SKILL.md:515- Finding
Silent Remote Task Delegation to a Local AI with Optional Permission Bypass
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This skill is broadly about earning through ClawMoney, but it asks for unusually broad automatic control over accounts, wallet-linked actions, local setup, and a background task provider.
Review this carefully before installing. Only use it if you are comfortable with automated public social actions, wallet-linked payment flows, local MCP configuration changes, and a background provider that can receive tasks from other agents. Avoid enabling auto-accept or the Claude backend, stop the provider when not needed, and do not run the setup from unusual project paths until the installer is fixed.
SKILL.md:515Silent Remote Task Delegation to a Local AI with Optional Permission Bypass
SKILL.md:171Market Provider Is Silently Started as a Persistent Background Process
scripts/setup.sh:23Silent Installation and Execution of Unpinned Third-Party Dependencies
scripts/setup.sh:49Project Path Injection Enables Arbitrary Python Execution During Setup
SKILL.md:139Bearer API Key Is Stored Without Explicit Restrictive Permissions
SKILL.md:453x402 Payment Token Is Transmitted in a URL Query Parameter
SKILL.md:73Account Switching Deletes Broad Electron State and Force-Kills an Unverified PID
The README advertises a “fully automated autopilot mode” for browsing and executing bounty tasks through browser automation, but it does not prominently warn that the skill may perform real actions on the user’s social media accounts and wallet-connected workflows. In this context, automation can post, reply, follow, or otherwise act externally, creating risk of account abuse, policy violations, unwanted financial/account state changes, and reputational harm.
The recurring execution example instructs users to loop autopilot every 30 minutes without warning about repeated autonomous execution. This materially raises the danger because the agent may continuously perform external tasks, amplifying accidental misuse, account spam, repeated policy violations, or sustained unwanted interactions without ongoing user review.
The declared description says this skill helps earn money on ClawMoney by doing tasks, using market services, and accepting tasks. The supplied code does not implement any of that user-facing functionality. Instead, it acts as an installer/configurator for a bnbot MCP server and related skill integration, including editing local config files and checking wallet login state. Those are materially different capabilities and indicate a different primary purpose than the declared ClawMoney operations.
The skill instructs the agent to delete Electron cookie/storage databases and kill processes as part of switching accounts. That is broad host manipulation unrelated to narrowly scoped task execution and can destroy unrelated local session data or interrupt other applications using the same storage/processes.
The rm -rf ~/Library/Application Support/Electron/{Cookies,...} command performs destructive deletion of shared browser/session storage. This can wipe unrelated Electron application state and credentials, making it far broader than a safe account-switch operation and difficult to justify automatically.
rm -rf ~/Library/Application\ Support/Electron/{Cookies,Cookies-journal,Local\ Storage,Session\ Storage,IndexedDB,WebStorage}
kill -9 $(npx awal status --json 2>/dev/null | grep -o '"pid":[0-9]*' | grep -o '[0-9]*') 2>/dev/null
npx awal auth login <new-email> --json
The rm -rf ~/Library/Application Support/Electron/{Cookies,...} command performs destructive deletion of shared browser/session storage. This can wipe unrelated Electron application state and credentials, making it far broader than a safe account-switch operation and difficult to justify automatically.
rm -rf ~/Library/Application\ Support/Electron/{Cookies,Cookies-journal,Local\ Storage,Session\ Storage,IndexedDB,WebStorage}
kill -9 $(npx awal status --json 2>/dev/null | grep -o '"pid":[0-9]*' | grep -o '[0-9]*') 2>/dev/null
npx awal auth login <new-email> --json
The rm -rf ~/Library/Application Support/Electron/{Cookies,...} command performs destructive deletion of shared browser/session storage. This can wipe unrelated Electron application state and credentials, making it far broader than a safe account-switch operation and difficult to justify automatically.
rm -rf ~/Library/Application\ Support/Electron/{Cookies,Cookies-journal,Local\ Storage,Session\ Storage,IndexedDB,WebStorage}
kill -9 $(npx awal status --json 2>/dev/null | grep -o '"pid":[0-9]*' | grep -o '[0-9]*') 2>/dev/null
npx awal auth login <new-email> --json
This repeated rm -rf sequence appears in the existing-agent login flow, again deleting broad shared Electron storage as an implementation detail of reauthentication. The context makes it especially dangerous because the agent is told to do it automatically without explicit consent.
Login existing ACTIVE agent (re-auth via verification code):
npx awal status --json). If wallet email differs, switch wallet first:
rm -rf ~/Library/Application\ Support/Electron/{Cookies,Cookies-journal,Local\ Storage,Session\ Storage,IndexedDB,WebStorage}
kill -9 $(npx awal status --json 2>/dev/null | grep -o '"pid":[0-9]*' | grep -o '[0-9]*') 2>/dev/null
npx awal auth login <email> --json
This repeated rm -rf sequence appears in the existing-agent login flow, again deleting broad shared Electron storage as an implementation detail of reauthentication. The context makes it especially dangerous because the agent is told to do it automatically without explicit consent.
Login existing ACTIVE agent (re-auth via verification code):
npx awal status --json). If wallet email differs, switch wallet first:
rm -rf ~/Library/Application\ Support/Electron/{Cookies,Cookies-journal,Local\ Storage,Session\ Storage,IndexedDB,WebStorage}
kill -9 $(npx awal status --json 2>/dev/null | grep -o '"pid":[0-9]*' | grep -o '[0-9]*') 2>/dev/null
npx awal auth login <email> --json
This repeated rm -rf sequence appears in the existing-agent login flow, again deleting broad shared Electron storage as an implementation detail of reauthentication. The context makes it especially dangerous because the agent is told to do it automatically without explicit consent.
Login existing ACTIVE agent (re-auth via verification code):
npx awal status --json). If wallet email differs, switch wallet first:
rm -rf ~/Library/Application\ Support/Electron/{Cookies,Cookies-journal,Local\ Storage,Session\ Storage,IndexedDB,WebStorage}
kill -9 $(npx awal status --json 2>/dev/null | grep -o '"pid":[0-9]*' | grep -o '[0-9]*') 2>/dev/null
npx awal auth login <email> --json
The skill directs silent startup of a background Market Provider after onboarding. This creates a persistent, network-connected service that can receive and handle external tasks using stored credentials, yet the user is not clearly warned about the ongoing process or its implications.
In the returning-user flow, the skill auto-starts the Market Provider on every run without explicit disclosure. Repeated silent startup normalizes hidden persistence and could expose the system to incoming tasks whenever the skill is invoked.
The returning-user account-switch path repeats the same destructive host-manipulation pattern, combining broad rm -rf deletion with process termination. This is a true vulnerability because it can impact unrelated applications and user data on the host.
Step 1 — Switch wallet (awal):
rm -rf ~/Library/Application\ Support/Electron/{Cookies,Cookies-journal,Local\ Storage,Session\ Storage,IndexedDB,WebStorage}
kill -9 $(npx awal status --json 2>/dev/null | grep -o '"pid":[0-9]*' | grep -o '[0-9]*') 2>/dev/null
npx awal auth login <new-email> --json
The returning-user account-switch path repeats the same destructive host-manipulation pattern, combining broad rm -rf deletion with process termination. This is a true vulnerability because it can impact unrelated applications and user data on the host.
Step 1 — Switch wallet (awal):
rm -rf ~/Library/Application\ Support/Electron/{Cookies,Cookies-journal,Local\ Storage,Session\ Storage,IndexedDB,WebStorage}
kill -9 $(npx awal status --json 2>/dev/null | grep -o '"pid":[0-9]*' | grep -o '[0-9]*') 2>/dev/null
npx awal auth login <new-email> --json
The returning-user account-switch path repeats the same destructive host-manipulation pattern, combining broad rm -rf deletion with process termination. This is a true vulnerability because it can impact unrelated applications and user data on the host.
Step 1 — Switch wallet (awal):
rm -rf ~/Library/Application\ Support/Electron/{Cookies,Cookies-journal,Local\ Storage,Session\ Storage,IndexedDB,WebStorage}
kill -9 $(npx awal status --json 2>/dev/null | grep -o '"pid":[0-9]*' | grep -o '[0-9]*') 2>/dev/null
npx awal auth login <new-email> --json
The setup script for a skill named ClawMoney silently installs and configures unrelated 'bnbot' components, including modifying .mcp.json to add a new MCP server. This mismatch between declared skill purpose and actual installed software is a strong supply-chain and deceptive-installation risk, because users may unknowingly grant execution capability to a different agent tool than they intended.
npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.
npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.
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.
修改 SKILL.md 后,**必须同步更新三个文件并发布**:
1. **本文件** `clawmoney-skill/SKILL.md` → git push + `npx clawhub publish`
2. **项目内部 skill** `/Users/jacklee/Projects/clawmoney-web/.claude/skills/clawmoney/SKILL.md` → git push
3. **网站 skill** `/Users/jacklee/Projects/clawmoney-web/public/skill.md` → git push
三者内容保持一致。每次更新都要 clawhub publish 新版本。
The phrase “just say ‘clawmoney’” is an overly broad activation pattern for a skill that can install dependencies, connect a browser automation extension, and initiate account-affecting workflows. Broad invocation increases the chance of accidental triggering or prompt collisions, especially in multi-skill or conversational environments where a simple keyword may activate external actions unexpectedly.
The skill repeatedly invokes npx awal without pinning a specific version, allowing whatever package version is currently published or locally resolved to run with the agent's permissions. In this skill, that tool handles wallet authentication and payments, so a compromised or breaking upstream release could directly affect credentials, funds, or host state.
The skill's safety section says to confirm actions with the user, but the onboarding instructions explicitly require automatic execution without pausing and include silent provider startup. This contradiction can cause the agent to perform state-changing, networked, and persistent actions without informed consent.
This unpinned npx awal call executes an external package at runtime without version control. Because the command participates in authentication and wallet state handling, supply-chain compromise or an incompatible update could lead to credential theft, unauthorized actions, or destructive behavior.
Running npx awal unpinned during account-switching increases risk because the command is combined with host-destructive operations and authentication flows. A malicious or tampered package version could abuse that privileged context to execute arbitrary code or manipulate wallet/session data.
This npx awal invocation is not version-pinned and is used in a login flow that processes user email and verification state. Uncontrolled package resolution exposes the agent to supply-chain attacks and unexpected behavior changes in a security-sensitive path.
No suspicious patterns detected.