T01 · Skill Instruction Hijacking
- Location
SKILL.md:163- Finding
Silent Hub Provider Delegates Remote Service Calls to the Local AI Agent
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
The skill mostly matches its money-earning purpose, but it enables background remote task handling, modifies local agent tooling, and performs risky account/session operations without enough user control.
Review this skill carefully before installing. Only use it if you are comfortable with automated X/Twitter actions, wallet/payment commands, installation of BNBot tooling, edits to MCP configuration, and a background provider that can receive and execute incoming Hub service calls. Prefer manual mode, avoid enabling autopilot until you understand the actions it will take, and do not allow the account-switch cleanup unless the exact storage path and consequences are clear.
SKILL.md:163Silent Hub Provider Delegates Remote Service Calls to the Local AI Agent
scripts/setup.sh:23Unpinned Third-Party Packages Are Silently Installed and Executed
SKILL.md:72Account Switching Deletes Broad Electron Session Storage
SKILL.md:133Bearer API Key Is Stored Without Explicit Restrictive Permissions
SKILL.md:437x402 Payment Token Is Transmitted in a URL Query Parameter
The skill advertises "fully automated autopilot mode" for browsing and executing bounty tasks through browser automation, but does not clearly warn that it may post, like, retweet, follow, or otherwise act on the user’s social-media accounts. This is especially risky here because the skill monetizes account activity and uses external automation tooling, increasing the chance of unauthorized actions, account sanctions, or reputational harm.
The documented /loop 30m /clawmoney autopilot setup encourages recurring unattended execution without warning users that the agent may continuously perform social-media and browser actions over time. In this context, continuous automation materially increases risk of repeated unauthorized actions, abuse of linked accounts, rate-limit or anti-bot enforcement, and compounding financial or reputational damage.
The declared description presents a broader multi-capability skill: earning money by completing tasks, searching/calling Hub agent services, and accepting incoming tasks. The supplied code chunk performs a much narrower function: it sends a read-only request to an API search endpoint, retrieves bounty tasks, and formats them for display. There is no code to complete tasks, submit proof, call services, interact with any Hub, or accept incoming tasks. While browsing available tasks is loosely related to the ClawMoney task ecosystem, the implemented behavior materially underdelivers relative to the declared purpose, so this is a description-behavior mismatch.
The declared description focuses on ClawMoney user-facing functionality: completing social media tasks for money, searching/calling services on the Hub, and accepting incoming tasks. The supplied code does not implement those behaviors. Instead, it silently installs and configures bnbot-related tooling and updates local MCP configuration, then checks wallet login status. Those are materially different capabilities and indicate a different primary purpose than the declared ClawMoney task-execution skill.
The skill instructs deletion of Electron cookies, local/session storage, IndexedDB, and related browser data via rm -rf, followed by kill -9, as part of a forced re-login flow. Even though the path is more specific than rm -rf ~, this is destructive local state manipulation that can erase unrelated session data, break applications, and be dangerous if path expansion or environment assumptions differ.
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 skill instructs deletion of Electron cookies, local/session storage, IndexedDB, and related browser data via rm -rf, followed by kill -9, as part of a forced re-login flow. Even though the path is more specific than rm -rf ~, this is destructive local state manipulation that can erase unrelated session data, break applications, and be dangerous if path expansion or environment assumptions differ.
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 skill instructs deletion of Electron cookies, local/session storage, IndexedDB, and related browser data via rm -rf, followed by kill -9, as part of a forced re-login flow. Even though the path is more specific than rm -rf ~, this is destructive local state manipulation that can erase unrelated session data, break applications, and be dangerous if path expansion or environment assumptions differ.
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 skill instructs the agent to silently start a background Hub provider that accepts incoming tasks from other agents and executes them. This creates an unattended remote task-execution surface with persistence, network connectivity, and access to local credentials/config, greatly increasing the risk of misuse, prompt injection, data exfiltration, and unauthorized actions.
Silently starting the Hub Provider without a clear warning removes the user's opportunity to understand that their agent will remain online, receive remote service calls, and execute incoming tasks. Because this changes the trust boundary from local, user-directed actions to continuous remote-triggered behavior, the context makes it especially dangerous.
The returning-user flow auto-starts the Hub Provider on every run without explicit warning or consent. This is more dangerous than a one-time startup because it normalizes persistent remote task acceptance and can re-enable exposure even if the user forgot it was previously configured.
The account-switch flow repeats the same destructive deletion and force-kill sequence. In the context of a user-invocable skill, instructing the agent to remove broad application state and kill processes is an unsafe tool use pattern that can cause data loss and denial of service.
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 account-switch flow repeats the same destructive deletion and force-kill sequence. In the context of a user-invocable skill, instructing the agent to remove broad application state and kill processes is an unsafe tool use pattern that can cause data loss and denial of service.
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 account-switch flow repeats the same destructive deletion and force-kill sequence. In the context of a user-invocable skill, instructing the agent to remove broad application state and kill processes is an unsafe tool use pattern that can cause data loss and denial of service.
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 header comments present the script as a ClawMoney setup, but the implementation installs bnbot-mcp-server and a bnbot skill instead. Deceptive labeling is dangerous because it conceals the true operational behavior of the script, increasing the chance that users or reviewers will authorize unintended software installation and configuration changes.
The setup script for a skill branded as ClawMoney silently installs and configures a different service, bnbot, including modifying .mcp.json so that future MCP activity uses that server. This mismatch between the declared skill purpose and the actual installed component is a strong supply-chain/deception indicator and could redirect agent capabilities, data access, or user trust to an unrelated package.
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 README states that users can invoke the skill by saying simply "clawmoney," which is a broad natural-language trigger that may activate the skill unintentionally in normal conversation. In this skill’s context, unintended invocation is more dangerous because the skill can perform onboarding, connect browser automation, and initiate earning workflows that may lead to account actions.
The skill repeatedly invokes remote packages via npx without pinning a version, which allows whatever the latest published awal package is at execution time to run on the host. In a skill that handles wallet auth, payments, tokens, and background services, a compromised or malicious package update could lead to credential theft, arbitrary code execution, or unauthorized transactions.
This unpinned npx awal call executes code fetched from the npm ecosystem at runtime without version control. Because the command is used in an authentication flow, any upstream package compromise could harvest email/session data or manipulate wallet state.
The skill uses unpinned npx awal during a forced re-login path. This creates a supply-chain risk at a sensitive point where account/session state is being changed, increasing the consequences of a malicious package update.
This login command downloads and runs the current awal package version on demand. In context, the package is entrusted with authentication and could exfiltrate the email address, flow identifiers, or manipulate the login process if compromised.
The unpinned npx awal verification command runs third-party code during credential verification. A malicious or hijacked package version could intercept verification codes or mint persistent access under attacker control.
Even this address lookup uses an unpinned runtime package, extending the supply-chain attack surface. Although lower sensitivity than OTP verification, it still exposes wallet-related context and executes arbitrary remote package code.