x402

ISSUES FOUND max severity CRITICALSkillSpector Caution 30 registry clawhub.ai last scanned 1 scan

8 findings (1 critical, 2 high, 3 medium, 2 low), mainly data exfiltration, policy violation, skill discovery abuse. Most recent scan 2026-02-07.

CRITICAL SECURITY RISK - This skill presents severe security vulnerabilities that could result in complete loss of cryptocurrency funds. The primary issues are: (1) Requiring private keys in environment variables with no secure key management, (2) Automatic execution of cryptocurrency transactions without user confirmation or spending limits, (3) Unrestricted tool access due to missing allowed-tools declaration, and (4) No safeguards against malicious payment APIs. The skill enables an AI agent to autonomously spend cryptocurrency from a user's wallet when encountering 402 responses from any API, with the private key exposed in plaintext. This combination of automatic financial transactions, insecure key storage, and lack of user controls creates an unacceptable risk profile. The skill should NOT be used in production without major security enhancements including hardware wallet support, transaction approval workflows, spending limits, and domain allowlists.

Scanner's overall assessment (LLM analyzer)

Second scanner: NVIDIA SkillSpector

Independent static run, no language model, over the same files as the Cisco scan above. How the two scanners compare across the whole corpus: Two scanners, one corpus.

What this skill does

Use x402 protocol for HTTP-native crypto payments. Use when Clawdbot needs to pay for APIs, access paid resources, or handle 402 Payment Required responses. Supports USDC payments on Base, Ethereum, and other EVM chains via the x402 standard.

Package
4 files, 17 KB
SKILL.md
595 words, 12+ sections
Code
Shell (1), TypeScript (1)
Requires
anyBins: node npx

SKILL.md covers: x402 Payment Protocol · Quick Start · Install SDK · or · Environment Setup · Store wallet private key securely · Optional: specify network RPC · How x402 Works · Using x402 Client · TypeScript/Node.js · With fetch wrapper · Manual Flow (curl)

Findings

CRITICAL Hardcoded Private Key Requirement in Environment Variable Data Exfiltrationllm

The skill requires WALLET_PRIVATE_KEY environment variable containing an Ethereum private key. This creates critical security risks: (1) Private keys stored in environment variables can be exposed through process listings, logs, error messages, or compromised systems. (2) The skill documentation explicitly instructs users to 'export WALLET_PRIVATE_KEY=0x...' which encourages insecure key management practices. (3) Private keys grant full control over cryptocurrency funds - if leaked, all assets can be stolen. (4) No key encryption, hardware wallet support, or secure enclave usage is mentioned. (5) The skill will execute cryptocurrency transactions using this exposed key.

SKILL.md

# Store wallet private key securely
export WALLET_PRIVATE_KEY="0x..."

And in manifest: 'env': ['WALLET_PRIVATE_KEY']
Remediation: Implement secure key management: (1) Use hardware wallets (Ledger, Trezor) or secure enclaves instead of raw private keys. (2) Support wallet connection protocols (WalletConnect, MetaMask) that never expose private keys. (3) If environment variables must be used, require encrypted keystores with password prompts. (4) Add prominent security warnings about private key handling. (5) Implement key rotation and access controls. (6) Consider using account abstraction or smart contract wallets with spending limits.
HIGH Automatic Cryptocurrency Transaction Execution Without User Confirmation Data Exfiltrationllm

The skill automatically executes cryptocurrency payments when encountering 402 Payment Required responses, without explicit user confirmation for each transaction. The x402Client and wrapFetch functions handle payments transparently in the background. This creates risks: (1) Malicious APIs could drain wallet funds by returning 402 responses with inflated amounts. (2) Users may not be aware transactions are being executed. (3) No spending limits, transaction caps, or approval workflows are mentioned. (4) Compromised or malicious API endpoints could exploit automatic payment behavior. (5) The 'automatic 402 handling' feature removes user control over fund transfers.

SKILL.md

const client = x402Client({
  privateKey: process.env.WALLET_PRIVATE_KEY,
  network: 'base',
});

// Automatic 402 handling
const response = await client.fetch('https://api.example.com/paid-endpoint');
Remediation: Implement transaction safeguards: (1) Require explicit user confirmation before each payment above a threshold. (2) Add spending limits (per-transaction, daily, total). (3) Implement allowlists for trusted payment recipients. (4) Show transaction previews with amount, recipient, and network before execution. (5) Add transaction logging and audit trails. (6) Implement emergency stop/pause functionality. (7) Validate payment amounts against reasonable bounds for the requested resource.
HIGH Missing allowed-tools Declaration Enables Unrestricted Tool Access Unauthorized Tool Usellm

The skill manifest does not declare 'allowed-tools', which means the agent has unrestricted access to all tools (Read, Write, Grep, Glob, Bash, Python). Given that this skill executes cryptocurrency transactions and handles private keys, unrestricted tool access creates significant risks: (1) Bash tool access allows arbitrary command execution including network calls. (2) Write tool access could modify system files or create malicious scripts. (3) Read tool access could exfiltrate sensitive data including the private key itself. (4) The skill's legitimate functionality only requires Bash for executing the check-balance.sh script, but gets full system access.

SKILL.md

Manifest shows: 'allowed-tools: Not specified'. The skill includes bash scripts and requires environment variable access, but no tool restrictions are declared.
Remediation: Add explicit allowed-tools declaration to manifest: (1) Declare only necessary tools: 'allowed-tools: [Bash]' for executing the balance check script. (2) If Read access is needed for configuration, explicitly declare it. (3) Avoid Write, Python, Grep, Glob unless absolutely necessary. (4) Document why each tool is required. (5) Follow principle of least privilege - request minimum tools needed for functionality.
MEDIUM SKILL DISCOVERY ABUSE detected by YARA Skill Discovery Abusestatic

Detects manipulation of skill discovery to increase unwanted activation: Perfect

SKILL.md:3

x402 enables instant stablecoin payments directly over HTTP using the 402 Payment Required status code. Perfect for AI agents paying for APIs, data, or compute on-demand.
Remediation: Review and remove skill discovery abuse pattern
MEDIUM Unbounded Network Requests to Arbitrary Payment APIs Resource Abusellm

The skill allows making HTTP requests to arbitrary URLs that may return 402 Payment Required responses. There are no restrictions on: (1) Which domains can be contacted. (2) Rate limiting or request throttling. (3) Maximum number of payment attempts. (4) Timeout configurations. This could lead to: (1) Resource exhaustion from excessive API calls. (2) Denial of wallet funds through repeated payment requests. (3) Network flooding if malicious endpoints return continuous 402 responses. (4) Infinite retry loops if payment verification fails.

SKILL.md

const response = await client.fetch('https://api.example.com/paid-endpoint');

No domain allowlists, rate limits, or retry bounds are mentioned in the documentation.
Remediation: Implement request controls: (1) Add domain allowlists for trusted payment APIs. (2) Implement rate limiting (e.g., max 10 requests/minute). (3) Add maximum retry attempts for failed payments. (4) Set request timeouts. (5) Implement circuit breakers for failing endpoints. (6) Add total spending limits per time period. (7) Log all payment attempts for monitoring.
MEDIUM Insufficient Security Warnings in Skill Description Social Engineeringllm

The skill description and documentation do not adequately warn users about the critical security implications of cryptocurrency transaction execution. The description 'Use x402 protocol for HTTP-native crypto payments' is matter-of-fact and does not convey: (1) That real cryptocurrency funds will be spent. (2) That private keys must be exposed to the agent. (3) That transactions are irreversible. (4) That malicious APIs could drain funds. (5) The risks of automatic payment execution. Users may enable this skill without understanding they are giving an AI agent control over their cryptocurrency wallet.

SKILL.md

Description: 'Use x402 protocol for HTTP-native crypto payments. Use when Clawdbot needs to pay for APIs, access paid resources, or handle 402 Payment Required responses.'
Remediation: Add prominent security warnings: (1) Add 'WARNING: This skill executes real cryptocurrency transactions' to description. (2) Include security considerations section explaining risks. (3) Warn about private key exposure risks. (4) Explain transaction irreversibility. (5) Recommend starting with test networks. (6) Suggest using dedicated wallets with limited funds. (7) Add disclaimer about potential fund loss. (8) Include security best practices section.
LOW Skill does not specify a license Policy Violationstatic

Skill manifest does not include a 'license' field. Specifying a license helps users understand usage terms.

SKILL.md

Remediation: Add 'license' field to SKILL.md frontmatter (e.g., MIT, Apache-2.0)
LOW Missing License Declaration Data Exfiltrationllm

The skill manifest does not specify a license ('license: Not specified'). While not a direct security threat, this creates legal and security ambiguity: (1) Users don't know the terms under which they can use the skill. (2) Liability for financial losses from skill usage is unclear. (3) No warranty disclaimers are present. (4) Redistribution and modification rights are undefined. For a skill handling cryptocurrency transactions, clear licensing and liability terms are important.

SKILL.md

YAML Manifest Details show: 'license: Not specified'
Remediation: Add explicit license to manifest: (1) Choose appropriate open source license (MIT, Apache 2.0, etc.). (2) Include LICENSE file in skill package. (3) Add warranty disclaimers for financial operations. (4) Clarify liability limitations. (5) Document any usage restrictions.

What is in the package

FileKindSize
SKILL.mddoc4.6 KB
references/protocol-spec.mddoc3.7 KB
scripts/check-balance.shscript2.0 KB
scripts/x402-fetch.tsscript6.9 KB

External hosts referenced

mainnet.base.org arb1.arbitrum.io eth.llamarpc.com mainnet.optimism.io polygon-rpc.com docs.cdp.coinbase.com facilitator.coinbase.com github.com paid-api.com weather-api.x402.org www.x402.org

Hostnames that appear in the skill's files. Referencing a host is not a finding; compare against the findings above and the skill's stated purpose.

Environment variables referenced

WALLET_PRIVATE_KEY ARB_RPC_URL BASE_RPC_URL ETH_RPC_URL OP_RPC_URL POLYGON_RPC_URL RPC_URLS UNSUPPORTED_NETWORK

Package contents recorded 2026-10-22. The scan above ran against the version current at scan time; the two can differ if the skill has since been updated.

What we checked

What we did not check

Sources