Is brettcleary/coinfello safe?
https://github.com/openclaw/skills/tree/main/skills/brettcleary/coinfello
The CoinFello skill introduces significant financial security risks through its server-directed automatic delegation signing model: the @coinfello/agent-cli binary autonomously creates and submits signed blockchain delegations based on scope parameters returned by a third-party Vercel API, including arbitrary functionCall scopes, without per-delegation user confirmation. Compounding this, the generated private key is stored in plaintext on disk alongside the session token, creating a single-file compromise target for any co-installed skill or process with home directory read access. No malicious content was found in SKILL.md itself and the install process was clean, but the unpinned npm runtime dependency means the actual execution surface was not audited in this scan.
Category Scores
Findings (10)
CRITICAL Automatic server-directed blockchain delegation signing -35 ▶
The send_prompt workflow is fully server-driven: the CoinFello API returns ask_for_delegation clientToolCalls that specify any chainId and delegation scope (including functionCall with arbitrary contract targets and ABI selectors). The CLI autonomously signs and submits these delegations without an additional confirmation step per delegation. A malicious or compromised API can escalate delegation scope to drain user funds or execute arbitrary on-chain calls.
CRITICAL Blockchain private key stored in plaintext on disk -30 ▶
The create_account command generates an Ethereum private key and writes it in plaintext JSON to ~/.clawdbot/skills/coinfello/config.json. Any process with filesystem read access — including other installed skills, background processes, or a compromised npm package — can read this file and take full control of the associated blockchain account and any delegated funds.
HIGH Unpinned npx package execution — unaudited supply-chain dependency -25 ▶
All skill commands invoke npx @coinfello/agent-cli without a version specifier. npx resolves the latest published version at runtime. The binary itself was not present in the skill repository and was not scanned during this audit. A malicious update to the npm package would silently execute with full user-level permissions on next invocation, with access to the filesystem, network, and all stored credentials.
HIGH All signing material sent to third-party Vercel endpoint -22 ▶
User prompts, SIWE authentication messages, and signed blockchain delegations are all transmitted to https://hyp3r-58q8qto10-hyperplay.vercel.app/ (or an operator-configured override). This is a third-party Vercel deployment outside the user's control. A server-side compromise or DNS hijack redirects all sensitive cryptographic material to an attacker.
HIGH functionCall delegation scope enables arbitrary on-chain contract calls -20 ▶
The REFERENCE.md delegation scope table includes a functionCall type with targets (contract addresses) and selectors (4-byte ABI selectors) fields. The server can request this scope with any target addresses and any function selectors. If signed by the user's smart account, the resulting delegation could authorize the delegate to call any function on any contract on the user's behalf.
MEDIUM Session token co-located with private key in single plaintext file -12 ▶
sign_in writes the SIWE session token to the same config.json file as the private key. A single file read compromises both the signing key (enabling on-chain actions) and the API session (enabling authenticated server-side actions) simultaneously.
MEDIUM External API responses influence agent action path -15 ▶
The send_prompt command makes the agent's subsequent actions contingent on responses from the CoinFello API. The API's clientToolCalls field instructs the CLI whether to create delegations, what scope to request, and what chain to use. While this is declared behavior, it creates an indirect prompt-injection surface: a compromised or malicious API response can redirect the agent's blockchain actions without user awareness.
MEDIUM Automation shell script performs full delegation flow non-interactively -15 ▶
scripts/setup-and-send.sh chains create_account, sign_in, send_prompt, and get_transaction_status in sequence without per-step user confirmation. If an agent executes this script directly (e.g., in response to a social-engineering prompt), it would create a new private key, authenticate, and potentially sign a server-requested delegation in a single automated flow.
LOW Network connection to Ubuntu infrastructure during install window -10 ▶
A persistent TLS connection to 185.125.188.59:443 (Canonical/Ubuntu infrastructure) was present during the monitoring window. This connection predates the skill install and is attributable to the oathe VM's existing update infrastructure, not the skill. Noted for completeness.
INFO Canary credential files accessed by monitoring infrastructure -5 ▶
Honeypot files (.env, id_rsa, .aws/credentials, .npmrc, .docker/config.json, gcloud credentials) were opened at timestamps 1771923075 (pre-install canary setup) and 1771923092 (post-install canary integrity check). Timing and process context confirm these accesses originated from the oathe audit system, not from the skill or its install process. All canary files remained unmodified.