Is echennells/sparkbtcbot-proxy-deploy safe?
https://github.com/openclaw/skills/tree/main/skills/echennells/sparkbtcbot-proxy-deploy
This skill is a legitimate deployment guide for a serverless Bitcoin L2 proxy and contains no overt prompt injection, hidden instructions, or malicious code within its own SKILL.md. However, it introduces significant risk through three primary vectors: it directs the agent to act as a handler for a BIP39 wallet mnemonic (full cryptocurrency wallet control), it instructs npm install on an unaudited external repository with full supply chain exposure, and the deployed proxy enables autonomous Lightning invoice payments with no out-of-band confirmation. Canary file accesses detected during monitoring are timing-consistent with the audit infrastructure's own baseline checks and no data exfiltration was observed.
Category Scores
Findings (10)
HIGH BIP39 Wallet Mnemonic Collected and Handled by Agent -25 ▶
The skill instructs the agent to solicit the user's BIP39 mnemonic seed phrase (12-24 words), which confers total and irrevocable control over all funds in the Spark wallet. The agent is then directed to embed this value in a Vercel REST API call as a JSON body parameter. In a typical agentic workflow, tool inputs and outputs are logged, stored in conversation history, and sent to the LLM provider — any of these exposures permanently compromise the wallet with no recovery path.
HIGH npm install of Unaudited External Repository Creates Supply Chain Risk -20 ▶
The skill directs the agent to clone https://github.com/echennells/sparkbtcbot-proxy.git and run npm install. This repository is entirely separate from the audited skill package and was not inspected during this audit. A malicious or compromised postinstall script in that repository could read environment variables (including any already-collected mnemonic), spawn network connections to exfiltrate credentials, or install persistent malware. The Spark SDK and its transitive dependencies add additional unverified code surface.
HIGH Autonomous Lightning Payment Capability Enables Direct Financial Loss -20 ▶
The deployed proxy exposes POST /api/l402 which autonomously fetches URLs, parses 402 responses, pays Lightning invoices, and returns the protected content — all without additional user confirmation. An agent equipped with this skill and manipulated via prompt injection or confused by ambiguous user instructions could be directed to pay attacker-controlled L402 paywalls, resulting in immediate and unrecoverable Bitcoin loss. The skill's own documentation acknowledges that failed polling results in lost funds.
MEDIUM Mnemonic Generation Command Prints Seed Phrase to stdout -13 ▶
The one-liner provided for generating a new wallet mnemonic calls console.log(r.mnemonic), causing the 12-word seed phrase to appear in the command's standard output. When an agent executes this via a shell tool, the output becomes part of the tool result returned to the LLM, is stored in the agent's conversation context, and may be transmitted to the LLM API provider. This is avoidable — the mnemonic could be written directly to a file — but the SKILL.md specifically instructs this pattern.
MEDIUM Agent Instructed to Act as Credential Collector for High-Value Secrets -18 ▶
The skill explicitly instructs the agent to ask the user for their Upstash account credentials and BIP39 mnemonic 'upfront' before proceeding. This positions the agent as an intermediary that collects and retransmits secrets of extraordinary sensitivity. While framed as legitimate deployment configuration, any agent operating under this skill becomes a credential handler for assets whose exposure leads to direct financial loss — a pattern that significantly elevates the impact of any secondary compromise (e.g., conversation log leak, LLM provider breach).
MEDIUM Hardcoded Admin Fallback Token Provides Permanent Elevated Access -15 ▶
The API_AUTH_TOKEN environment variable is described as a 'hardcoded admin fallback' that grants full admin access 'even if Redis is down or tokens get wiped.' Unlike Redis-stored tokens which can be revoked, this token cannot be invalidated without redeployment. If an agent echoes this value in output, includes it in an error message, or stores it in an accessible location, any observer gains permanent admin-level access to wallet balance reads, invoice creation, Lightning payments, fund transfers, and token management.
MEDIUM Vercel Deployment of Unaudited External Code to Production -15 ▶
The skill instructs the agent to deploy the cloned external repository to Vercel production using npx vercel --prod. If the echennells/sparkbtcbot-proxy repository contains malicious code or is compromised between clone and deploy, the resulting Vercel deployment is an attacker-controlled service that receives all wallet mnemonic and API credentials as environment variables and handles all financial transactions. The skill does not instruct the agent to review the cloned code before deploying.
LOW Spending Limits Enforced by the Same Proxy Being Deployed -10 ▶
The skill presents MAX_TRANSACTION_SATS and DAILY_BUDGET_SATS as security controls against overspending. However, these limits are enforced exclusively by the proxy server being deployed using code from the external repository. If that repository is malicious, the spending limits may be non-functional or bypassable, providing false assurance to users who believe they have capped their financial exposure.
LOW Canary Credential Files Accessed Read-Only During Monitoring Window -12 ▶
Six honeypot credential files (.env, .ssh/id_rsa, .aws/credentials, .npmrc, .docker/config.json, gcloud application_default_credentials.json) were opened and read during the monitoring period. The initial access cluster at 13:16:03 occurred before the git clone initiated at 13:16:08, and the second cluster at approximately 13:16:24 occurred after install completion — both timing patterns are consistent with the audit monitoring infrastructure performing baseline and post-install canary verification rather than skill-initiated access. No canary content was transmitted over any network interface; the integrity checker confirms all files remain intact.
INFO Clean Install — No Unexpected Artifacts or Network Activity 0 ▶
The skill installation produced only the expected files (SKILL.md, _meta.json) in the designated skill directory. All observed network connections were consistent with the GitHub clone operation. No new listening services, unexpected processes, filesystem changes outside the skill directory, or persistent connections were introduced.