Back to skill

Security audit

Clawhub Skill

Security checks for vulnerabilities and agentic risk

Overview

The skill is openly a paid market-intelligence integration, but it asks agents to sign real on-chain payments and advertises a fund-like deposit option without enough user-control and risk safeguards.

Review this skill before installing. Use it only with strict wallet spending limits, manually confirm every USDC transaction, verify recipient, mint, network, facilitator, amount, endpoint, and expiry before signing, and avoid the Vault-lite deposit option unless you have independently evaluated the operator and financial risks.

Vulnerability Patterns
  • Insecure Skill Coding PracticesFinds exploitable flaws such as hardcoded secrets or command injection
  • Skill Instruction HijackingAlters the agent's session goals or safety constraints when the skill loads
  • Agent Memory PoisoningWrites attacker-controlled rules into memory that affect later sessions
  • Remote Payload Retrieval and ExecutionFetches external code whose behavior can change after review
  • Embedded Malicious CodeShips malicious scripts inside the skill and executes them locally
Findings (1)

T09 · Insecure Skill Coding Practices

Error
Location
SKILL.md:49
Finding

Remote Payment Challenge Is Signed Without Mandatory Validation or User Confirmation

Content
View full analysis

Vulnerability Details

File Location: SKILL.md, lines 49–51
Vulnerability Type: Unvalidated transaction authorization
Risk Level: High

Relevant snippet:

markdown
1. `GET` any endpoint unpaid -> HTTP 402 + `PAYMENT-REQUIRED` header (base64 JSON challenge)
2. Decode, sign with a USDC(Solana) wallet per the challenge, retry with `X-PAYMENT` header
3. Facilitator verifies + settles on-chain; you get 200 + the data (no custodian, no key escrow)

Technical Analysis

The skill directs an agent to decode and sign payment terms supplied by a remote API. Although advertised prices, a USDC mint, a payment recipient, and a facilitator are documented elsewhere in SKILL.md, the payment procedure does not require the agent to verify the challenge against those declared values.

In particular, there is no mandatory check for:

  • The expected payment amount for the selected endpoint
  • The documented recipient address
  • The documented USDC mint and Solana mainnet
  • The expected facilitator
  • Challenge expiration or replay constraints
  • A user-approved maximum payment
  • Explicit user confirmation before signing

The remote service operator controls the PAYMENT-REQUIRED response. Consequently, remotely supplied transaction terms cross the wallet-authorization boundary and are signed without a documented validation gate. This is a reachable authorization flaw when an agent follows the instructions with access to a funded, signing-capable wallet.

Attack Path

  1. A user asks the agent to query one of the paid carry-intelligence endpoints.
  2. The agent sends an unpaid request and receives an HTTP 402 response.
  3. A compromised or dishonest endpoint returns a syntactically valid payment challenge whose amount, recipient, mint, network, or other terms differ from the advertised terms.
  4. Following SKILL.md, the agent decodes and signs the challenge without mechanically checking those fields or ob ...[truncated 818 chars]
Remediation
View remediation

Remediation Suggestions

Before signing, require the client to parse and validate every payment challenge against a strict policy:

  1. Map each endpoint to an exact maximum price and reject challenges above that amount.
  2. Allow only the documented recipient address, USDC mint, Solana mainnet, and facilitator.
  3. Bind the challenge to the intended endpoint and request.
  4. Validate expiration, nonce, and replay-protection fields.
  5. Reject missing, malformed, ambiguous, or unexpected transaction fields.
  6. Display the amount, asset, network, and recipient and require explicit user confirmation before each payment.
  7. Enforce wallet-level per-transaction and cumulative spending limits.
  8. Treat redirects as untrusted and never forward payment authorization to a different origin.
  9. Document a fail-closed rule: any mismatch between the challenge and the advertised payment policy must abort the operation.
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
Findings (4)

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The skill instructs the agent to perform on-chain USDC payments and later references capital deposits, but does not prominently warn that these actions spend real funds and expose the user to market, counterparty, and operational risk. In an agent setting, this omission is dangerous because it can normalize automated payment or transfer behavior without informed user consent.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

The skill provides a remote MCP server configuration but does not warn that prompts, tool arguments, and possibly sensitive context may be transmitted to an external server. This is a security and privacy issue because users may connect the MCP endpoint expecting local behavior while unintentionally disclosing proprietary or personal data to a third party.

Content

No source excerpt is available for this finding.

External Transmission

Medium
Category
Data Exfiltration
Confidence
50% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

Scanner excerpt · SKILL.md (reported line 74)May include surrounding context.

md
- Track record: https://github.com/TheArkofTech/hl-carry-public (settled prints, git-timestamped)
- PayTo: `22PpHwVGiikZMJKPLjMmbaUhfkoLG6J28NjJurbsM2g1` (Solana - every payment lands here on-chain)
- Facilitator: Coinbase CDP (`https://api.cdp.coinbase.com/platform/v2/x402`)

## Vault-lite (for agents holding capital)

Context-Inappropriate Capability

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The skill primarily presents itself as paid market intelligence, but then introduces a 'Vault-lite' deposit/fund-like capability for agents holding capital. Expanding from data access into handling user funds materially changes the risk profile by encouraging asset transfer to an external operator without prominent safeguards, suitability checks, or custody/risk disclosures.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.