x402
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:
nodenpx
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']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');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.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.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.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.'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
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'What is in the package
| File | Kind | Size |
|---|---|---|
SKILL.md | doc | 4.6 KB |
references/protocol-spec.md | doc | 3.7 KB |
scripts/check-balance.sh | script | 2.0 KB |
scripts/x402-fetch.ts | script | 6.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
- Static analyzer. Pattern rules over SKILL.md and bundled files: known-bad commands, exfiltration URLs, secrets, obfuscation.
- Llm analyzer. A language model reads the skill and reports intent-level issues the rules cannot express.
- Meta analyzer. A second model pass that validates, deduplicates and re-scores the other analyzers' findings.
What we did not check
- Runtime behaviour. The skill was not executed; findings come from reading its files.
- Anything fetched at install or run time, including remote scripts, package dependencies, and URLs the skill tells the agent to open.
- Content the analyzers cannot read: images, binaries, and some non-English text.
- Known scanner bypass classes. See the methodology and limitations page.
Sources
- Repository: https://clawhub.ai/skills/x402
- Raw scan result: x402-scan.json
- Badge for your README:
 - Request a re-scan