Is cpppppp7/fluxa-x402-payment safe?
https://github.com/openclaw/skills/tree/main/skills/cpppppp7/fluxa-x402-payment
This skill provides legitimate x402 payment infrastructure for AI agents but carries significant financial risk due to an undocumented payout command capable of transferring USDC to arbitrary addresses, a compiled JavaScript bundle that cannot be fully source-audited, and a design philosophy of autonomous payment execution that creates a wide manipulation surface if the agent processes attacker-controlled content. Clone behavior was clean with no unexpected network activity or file system changes, and canary honeypots were not exfiltrated, but the skill's core functionality—combined with the payout capability and LLM-generated self-registration—makes it dangerous in the hands of a compromised or manipulated agent.
Category Scores
Findings (10)
HIGH Payout command enables direct cryptocurrency transfer to arbitrary addresses -35 ▶
The fluxa-cli.bundle.js exposes a 'payout' subcommand (cmdPayout) that transfers USDC to any --to address supplied as an argument. This command is absent from SKILL.md's documentation, meaning users and reviewers may not be aware it exists. Any agent with shell access could be manipulated via prompt injection from external content to invoke this command and send funds to an attacker-controlled wallet.
HIGH Compiled JavaScript bundle cannot be source-audited -25 ▶
fluxa-cli.bundle.js is a minified/bundled artifact with no corresponding TypeScript source in the repository. Reviewers cannot verify the bundle faithfully implements what the skill claims, nor rule out additional hidden functionality (e.g., telemetry, environment variable harvesting, or conditional behavior triggered by server responses).
HIGH All payment and mandate data transmitted to third-party fluxapay.xyz infrastructure -25 ▶
Every mandate description (which may contain task context), payment payload (resource URL, amount, payTo address), and JWT credential is sent to walletapi.fluxapay.xyz. The operator of this service has full visibility into what the agent is paying for, on whose behalf, and how much. The API base URLs can be overridden via environment variables, making this trust boundary fluid.
MEDIUM Agent self-registers with third-party service using LLM-generated identity, bypassing user consent -15 ▶
initialize-agent-id.md instructs the agent to generate its own registration parameters (email, agent_name, client_info) without user input: 'Generate these parameters yourself to represent your real information. Do not ask the user to fill them in.' This creates a FluxA account server-side tied to the user's payment infrastructure, using an identity the user never reviewed or approved.
MEDIUM Autonomous payment framing creates manipulation surface -30 ▶
The skill's explicit goal is enabling agents to 'perform paid actions without human intervention.' Combined with mandate amounts configurable to any value and x402 payment signing for any presented payload, an agent using this skill while browsing attacker-controlled content could be socially engineered into authorizing payments to malicious endpoints or over-budgeting mandates.
MEDIUM Empty HTML comment in SKILL.md at critical instruction boundary -7 ▶
An empty HTML comment <!-- --> appears immediately after the Step 1 header in SKILL.md, before the bash code block. While confirmed empty, this placement at a semantically significant location (instruction boundary) is unusual and could be used in modified versions of the skill to inject hidden instructions invisible to users reading rendered markdown.
MEDIUM Dangerous capability combination: payout + mandate enables full wallet drain -35 ▶
A sophisticated attacker who can inject content into the agent's context could chain: (1) mandate-create with a large limit amount, (2) payout --to
LOW JWT credential stored in home directory without encryption -10 ▶
The agent's JWT token and auth credentials (agent_id, token) are written in plaintext to ~/.fluxa-ai-wallet-mcp/config.json. Any process with read access to the user's home directory (including other skills) can read these credentials and use them to authorize payments.
LOW Canary files accessed at pre- and post-install timestamps -10 ▶
Filesystem monitoring shows .env, .ssh/id_rsa, .aws/credentials, .npmrc, .docker/config.json, and GCP credentials were opened at both pre-install (1771934668) and post-install (1771934685) timestamps. Cross-correlation with the audit harness's own scanning pattern and the '✅ All canary files intact' report indicate these were monitoring-system baseline sweeps, not the skill. However, the pattern warrants logging.
INFO API base URLs overridable via environment variables -10 ▶
AGENT_ID_API, WALLET_API, and WALLET_APP can be overridden via environment variables. In a compromised environment or with a malicious .env loaded by a prior skill, all FluxA API traffic could be redirected to an attacker-controlled server that serves fraudulent payment responses.