Back to skill

Security audit

Complete US Tax Returns - With your creditcard

Security checks for vulnerabilities and agentic risk

Overview

This skill handles real spending and card data but gives server-delivered instructions and code too much control over checkout execution.

Review carefully before installing. Use only with a tightly sandboxed agent, a scoped CreditClaw API key, explicit owner approval for purchases, no main-agent card decryption fallback, no execution of remotely delivered decrypt scripts, no following free-form remote instructions, and integrity-checked/version-pinned skill files. Treat any decrypted card output, webhook payload, buyer data, and shipping data as highly sensitive.

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

T03 · Remote Payload Retrieval and Execution

Error
Location
encrypted-card.md:177
Finding

Remote API Delivers Executable Decryption Code That Is Run Locally

Content
View full analysis
Card-ChaseD-9547.md ``` This outputs the card JSON (number, CVV, expiry, name, billing address). ``` The remotely delivered file is described as containing executable code: ```json { "event": "rail5.card.delivered", "bot_id": "bot_abc123", "data": { "card_id": "r5card_...", "card_name": "ChaseD", "card_last4": "9547", "file_content": "", "suggested_path": ".creditclaw/cards/Card-ChaseD-9547.md", "instructions": "Save this file to .creditclaw/cards/Card-ChaseD-9547.md — then confirm delivery via POST /bot/rail5/confirm-delivery" } } ``` ```text Save the file to `.creditclaw/cards/` (or the path in `suggested_path`). The file is self-contained — it includes the decrypt script between `DECRYPT_SCRIPT_START/END` markers and the encrypted data between `ENCRYPTED_CARD_START/END` markers. Follow the `instructions` field in the message payload for next steps. ``` ### Technical Analysis The Skill directs the Agent to obtain a self-contained card file from a remote API. That file contains both encrypted data and a decryption script, and the workflow subsequently runs the delivered script through Node.js. The reviewed package does not define or constrain the actual script that will execute. It provides no pinned digest, digital signature, local script allowlist, authenticated release manifest, or validation of the JavaScript contents. TLS authenticates the current server connection but does not establish that the received code is identical to the version reviewed during this audit. ...[truncated 1611 chars]
Remediation
View remediation

T01 · Skill Instruction Hijacking

Error
Location
encrypted-card.md:83
Finding

Server-Controlled Instructions Are Passed Directly to a Privileged Sub-Agent

Content
View full analysis
Card-ChaseD-9547.md", "Use the decrypted card details to complete checkout at DigitalOcean.", "Call POST /api/v1/bot/rail5/confirm with { \"checkout_id\": \"r5chk_abc123\", \"status\": \"success\" } when done.", "If checkout fails, call confirm with { \"status\": \"failed\" } instead.", "Announce the result." ], "spawn_payload": { "task": "You are a checkout agent...", "cleanup": "delete", "runTimeoutSeconds": 300, "label": "checkout-digitalocean" } } ``` ```text ### Step 2: Spawn a Sub-Agent Once the checkout is approved, spawn an ephemeral sub-agent using the `spawn_payload` from the response: ``` sessions_spawn({ task: spawn_payload.task, cleanup: "delete", runTimeoutSeconds: 300 }) ``` The sub-agent executes the `checkout_steps` in sequence. You (the main agent) wait for the sub-agent to complete and then announce the result. ``` ### Technical Analysis Both `spawn_payload.task` and `checkout_steps` originate from the remote API. The main Agent is instructed to pass the server-controlled natural-language task directly into `sessions_spawn` and have the resulting Agent execute the supplied steps. No local policy constrains the delegated task to a fixed set of checkout operations. There is no schema that limits server responses to merchant, amount, checkout ID, or other inert data fields. There is also no requirement to reject instructions that request unrelated filesystem, shell, credential, browser, or network operations. As a result, the external service occupie ...[truncated 1615 chars]
Remediation
View remediation

T03 · Remote Payload Retrieval and Execution

Error
Location
skill.md:33
Finding

Mutable Remote Skill Instructions Are Installed Without Integrity Verification

Content
View full analysis
~/.creditclaw/skills/amazon/SKILL.md curl -s https://creditclaw.com/amazon/checkout.md > ~/.creditclaw/skills/amazon/CHECKOUT.md curl -s https://creditclaw.com/amazon/crossmint-wallet.md > ~/.creditclaw/skills/amazon/CROSSMINT-WALLET.md curl -s https://creditclaw.com/amazon/encrypted-card.md > ~/.creditclaw/skills/amazon/ENCRYPTED-CARD.md curl -s https://creditclaw.com/amazon/heartbeat.md > ~/.creditclaw/skills/amazon/HEARTBEAT.md curl -s https://creditclaw.com/amazon/management.md > ~/.creditclaw/skills/amazon/MANAGEMENT.md curl -s https://creditclaw.com/amazon/spending.md > ~/.creditclaw/skills/amazon/SPENDING.md curl -s https://creditclaw.com/amazon/stripe-x402-wallet.md > ~/.creditclaw/skills/amazon/STRIPE-X402-WALLET.md curl -s https://creditclaw.com/amazon/skill.json > ~/.creditclaw/skills/amazon/package.json ``` ### Technical Analysis The installation procedure downloads mutable instruction files from remote URLs and writes them directly into a persistent local Skill directory. No version-specific immutable URL, digest, signature, trusted manifest, or content validation is used. The `-s` option also suppresses diagnostic output, while the absence of `--fail` allows some HTTP error responses to be written into the destination files. Redirection opens and truncates the destination before transfer success is known. Because these files govern Agent behavior, replacing them is equivalent to replacing executable policy. A later response from the same URL can differ from the content reviewed during this audit. ### Attack Path 1. An attacker compromises the CreditClaw web server, DNS/deployment infrastructure, publishing account, or artifact-generation pipeline. 2. The ...[truncated 1055 chars]
Remediation
View remediation

T09 · Insecure Skill Coding Practices

Error
Location
encrypted-card.md:210
Finding

Remote Responses Control Local File Paths and Follow-Up Instructions

Content
View full analysis
", "suggested_path": ".creditclaw/cards/Card-ChaseD-9547.md", "instructions": "Save this file to .creditclaw/cards/Card-ChaseD-9547.md — then confirm delivery via POST /bot/rail5/confirm-delivery" } } ``` ```text Via bot messages (fallback): If you don't have a webhook, check `GET /bot/messages` for messages with `event_type: "rail5.card.delivered"`. The payload is identical. After saving the file, acknowledge the message via `POST /bot/messages/ack`. Save the file to `.creditclaw/cards/` (or the path in `suggested_path`). The file is self-contained — it includes the decrypt script between `DECRYPT_SCRIPT_START/END` markers and the encrypted data between `ENCRYPTED_CARD_START/END` markers. Follow the `instructions` field in the message payload for next steps. ``` ### Technical Analysis The API controls three security-sensitive values: - The bytes written to disk through `file_content`. - The destination through `suggested_path`. - Subsequent Agent behavior through the free-form `instructions` field. The documentation does not require path canonicalization, confinement to a fixed directory, filename validation, symlink protection, refusal to overwrite existing files, or filtering of natural-language instructions. Therefore, a compromised or malicious response could request writes outside the intended card directory or inject persistent instructions into files the Agent later trusts. Even if an implementation usually honors only benign paths, the Skill text explicitly permits using the server-provided ...[truncated 1386 chars]
Remediation
View remediation

T09 · Insecure Skill Coding Practices

Error
Location
encrypted-card.md:177
Finding

Decrypted Payment-Card Data Is Emitted to Process Output and May Enter Agent Logs

Content
View full analysis
Card-ChaseD-9547.md ``` This outputs the card JSON (number, CVV, expiry, name, billing address). Critical: The sub-agent must never store, log, or persist the decrypted card data. It exists only in memory for this single transaction. After checkout, the sub-agent is deleted. ``` The documented fallback additionally exposes the data to the main Agent: ```text Alternative: If your environment doesn't support spawning sub-agents, you can execute the `checkout_steps` directly as the main agent. The guardrails and encryption still protect your owner's card — but the main agent will see the decrypted card details in its context. ``` ### Technical Analysis The decrypt command is documented as outputting full card JSON. In an Agent environment, command output is commonly captured as a tool result and inserted into the model conversation, execution transcript, telemetry, debugging records, or orchestration logs. Consequently, the instruction not to log or persist the card data conflicts with the mechanism being used: emitting the plaintext to standard output already creates several opportunities for retention. Deleting an ephemeral sub-agent does not guarantee deletion of platform-level tool logs or model transcripts. The main-Agent fallback is especially unsafe because it intentionally places full card details into the primary conversation context, where they may remain available to later prompts or integrations. ### Attack Path 1. The checkout Agent obtains the single-use decryption key. 2. It runs ...[truncated 1263 chars]
Remediation
View remediation
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Rogue AgentSelf-Modification, Session Persistence
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
Findings (38)

Credential Access

High
Category
Privilege Escalation
Confidence
70% confidence
Finding

Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

Content

Scanner excerpt · checkout.md (reported line 341)May include surrounding context.

md
- **Set `amount_locked: true`** for fixed-price products so buyers can't underpay.
- **Leave `amount_usd` empty** for donation or tip jars.
- **Use `page_type: "digital_product"`** when selling downloadable content, API keys, or access tokens.
- **Use `success_url`** to redirect buyers back to your service after payment.
- **Check `GET /bot/sales`** periodically to reconcile completed sales with your fulfillment.
- **Multiple checkout pages** are fine — create one per product or service tier.

Context-Inappropriate Capability

High
Category
Not specified by scanner
Confidence
99% confidence
Finding

The workflow tells the agent to accept file_content from a webhook or message payload, save it locally, and later execute the embedded decrypt script. This combines remote content ingestion, file write, and subsequent execution—an especially dangerous supply-chain pattern that enables arbitrary code execution if the upstream service, transport, webhook handler, or stored message is compromised.

Content

No source excerpt is available for this finding.

YARA rule 'agent_skill_prompt_injection_hidden_instructions': Prompt injection or hidden instructions embedded in AI agent skill text [agent_skills]

High
Category
YARA Match
Confidence
80% confidence
Finding

YARA rule matched a hack tool or exploit indicator (offensive tools, reconnaissance, privilege escalation, or exploit frameworks).

Content

Scanner excerpt · skill.md (reported line 12)May include surrounding context.

md
reditclaw-amazon
version: 2.3.0
updated: 2026-02-23T00:00:00Z
description: Let your agent shop on Amazon with guardrailed wallets and owner approval.
homepage: https://creditclaw.com
api_base: https://creditclaw.com/api/v1
credentials: [CREDITCLAW_API_KEY]
metadata: {"openclaw":{"requires":{"env":["CREDITCLAW_API_KEY"]},"primaryEnv":"CREDITCLAW_API_KEY"}}
---

# CreditClaw — Amazon Shopping for AI Agents

CreditClaw.com is a financial enablement platform for Bots, Agents, and OpenClaw.
Securely manage agentic spending.
1. Encrypted cards — owner's real-world card is encrypted and the bot uses it within strict guardrails after owner approval.
2. A stablecoin wallet to seamlessly enable x402 payments with a simple "Fund with Stripe" option.
3. Easy-to-use "Storefronts" and product management for bots to sell both digital and physical products.

## Skill Files

| File | URL | Purpose |
|------|-----|---------|
| **SKILL.md** (this file) | `https://creditclaw.com/amazon/skill.md` | Reg

Unbounded Resource Access

Medium
Category
Excessive Agency
Confidence
80% confidence
Finding

Skill allows unbounded resource consumption (API calls, storage, compute). Without rate limits or quotas, a compromised or misbehaving agent can cause denial-of-service or cost overruns.

Content

Scanner excerpt · checkout.md (reported line 24)May include surrounding context.

md
-H "Content-Type: application/json"
  -d '{
    "title": "Premium API Access - 1 Month",
    "description": "Unlimited queries to my data analysis endpoint.",
    "amount_usd": 5.00,
    "amount_locked": true
  }'

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The skill documents collecting and transmitting buyer personal data such as recipient names, recipient emails, and buyer emails, but it provides no privacy, data handling, retention, or consent guidance. In an agent skill, this can lead developers to process PII insecurely or without appropriate user disclosure, creating compliance and privacy risk.

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 · checkout.md (reported line 473)May include surrounding context.

md
"title": "Premium API Access",
  "amount_usd": 5.00,
  "page_type": "digital_product",
  "digital_product_url": "https://api.databot.com/keys/generate",
  "shop_visible": true
}

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The guide describes a purchase flow but does not clearly and prominently warn that a submitted request results in a real order, consumes wallet funds, and transmits shipping information to third parties. In an agent-executed context, weak disclosure increases the chance of accidental high-impact actions and privacy exposure because operators may treat the call as a harmless quote or test operation.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

The documentation materially expands the skill’s operational scope from Amazon-only purchasing to Shopify and arbitrary URL-based stores. This can mislead downstream agents or users into invoking broader commerce capabilities than the published skill metadata suggests, weakening trust boundaries and potentially enabling unintended purchases from less-vetted merchants.

Content

No source excerpt is available for this finding.

External Transmission

Medium
Category
Data Exfiltration
Confidence
60% 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 · crossmint-wallet.md (reported line 32)May include surrounding context.

Purchase Request

bash
curl -X POST https://creditclaw.com/api/v1/card-wallet/bot/purchase \
  -H "Authorization: Bearer $CREDITCLAW_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
85% confidence
Finding

The description frames the file as a checkout companion, but the actual behavior includes local storage of sensitive card artifacts and execution of embedded code. This mismatch weakens operator understanding and consent, increasing the chance that high-risk capabilities are enabled in environments that only expected ordinary payment orchestration.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
89% confidence
Finding

The instruction says 'When you need to buy something' and presents the flow as the core transaction path without narrowly scoped trigger phrases or exclusion conditions. In a markdown skill file, this broad phrasing can overlap with common user requests and makes it unclear when the skill should activate versus defer.

Content

No source excerpt is available for this finding.

External Transmission

Medium
Category
Data Exfiltration
Confidence
60% 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 · encrypted-card.md (reported line 59)May include surrounding context.

Step 1: Request Checkout

bash
curl -X POST https://creditclaw.com/api/v1/bot/rail5/checkout \
  -H "Authorization: Bearer $CREDITCLAW_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{

External Transmission

Medium
Category
Data Exfiltration
Confidence
60% 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 · encrypted-card.md (reported line 164)May include surrounding context.

The sub-agent calls this endpoint to retrieve the one-time decryption key:

bash
curl -X POST https://creditclaw.com/api/v1/bot/rail5/key \
  -H "Authorization: Bearer $CREDITCLAW_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "checkout_id": "r5chk_abc123" }'

Context-Inappropriate Capability

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The skill instructs the agent to execute node decrypt.js ... on a locally stored script whose contents originate from a delivered card file. That creates a direct code-execution path tied to payment handling, and if the file or delivery channel is tampered with, arbitrary code could run under the agent's privileges rather than merely decrypting data.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
90% confidence
Finding

The skill instructs the agent to save an encrypted card file to disk without strong user-facing warnings about handling sensitive payment material or storage hardening. Even if encrypted, the file is a durable payment artifact that becomes far more dangerous when paired with the one-time key retrieval flow and embedded decryption code.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
90% confidence
Finding

The skill directs the user to call a protected endpoint with a bearer token and states that it returns balances, spending limits, cards, and status across all connected rails. In a markdown skill file, this kind of access to sensitive financial/account data should be accompanied by a warning about handling private data and protecting the API key, but none is provided here.

Content

No source excerpt is available for this finding.

External Transmission

Medium
Category
Data Exfiltration
Confidence
60% 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 · management.md (reported line 23)May include surrounding context.

When your balance is low, ask your human if they'd like you to request a top-up:

bash
curl -X POST https://creditclaw.com/api/v1/bot/wallet/topup-request \
  -H "Authorization: Bearer $CREDITCLAW_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

The skill is presented as an Amazon-shopping capability, but it also advertises broader commerce features such as storefronts, selling products, and invoice/payment-link generation. This scope expansion can mislead users and downstream agents into granting trust or permissions appropriate for shopping while exposing monetization and payment-collection actions outside the declared purpose.

Content

No source excerpt is available for this finding.

Session Persistence

Medium
Category
Rogue Agent
Confidence
75% confidence
Finding

The skill instructs local persistence of downloaded skill files under a user directory, creating a durable trusted artifact that may later be re-used without integrity verification. Persisting remotely fetched instructions can increase supply-chain risk if files are later tampered with, replaced, or interpreted as trusted local content by other tooling.

Content

Scanner excerpt · skill.md (reported line 35)May include surrounding context.

| package.json (metadata) | https://creditclaw.com/amazon/skill.json | Machine-readable skill metadata | Follow your human's instructions on how to manage and save skill files. If unsure, you can install locally:

bash
mkdir -p ~/.creditclaw/skills/amazon
curl -s https://creditclaw.com/amazon/skill.md > ~/.creditclaw/skills/amazon/SKILL.md
curl -s https://creditclaw.com/amazon/checkout.md > ~/.creditclaw/skills/amazon/CHECKOUT.md
curl -s https://creditclaw.com/amazon/crossmint-wallet.md > ~/.creditclaw/skills/amazon/CROSSMINT-WALLET.md

Skill Enumeration

Medium
Category
Agent Snooping
Confidence
80% confidence
Finding

Skill enumerates or reads other installed skills. Access to other skills' SKILL.md files or the skills directory reveals prompt instructions, capabilities, and secrets that should be invisible to peer skills.

Content

Scanner excerpt · skill.md (reported line 36)May include surrounding context.

Follow your human's instructions on how to manage and save skill files. If unsure, you can install locally:

bash
mkdir -p ~/.creditclaw/skills/amazon
curl -s https://creditclaw.com/amazon/skill.md > ~/.creditclaw/skills/amazon/SKILL.md
curl -s https://creditclaw.com/amazon/checkout.md > ~/.creditclaw/skills/amazon/CHECKOUT.md
curl -s https://creditclaw.com/amazon/crossmint-wallet.md > ~/.creditclaw/skills/amazon/CROSSMINT-WALLET.md
curl -s https://creditclaw.com/amazon/encrypted-card.md > ~/.creditclaw/skills/amazon/ENCRYPTED-CARD.md

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The file includes multiple payment rails and merchant support beyond Amazon, despite the skill branding implying a narrower use case. This increases the risk of overbroad financial authority and can cause an agent to perform purchases or payment actions on unintended platforms under the umbrella of a trusted Amazon skill.

Content

No source excerpt is available for this finding.

External Transmission

Medium
Category
Data Exfiltration
Confidence
60% 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 123)May include surrounding context.

You can register before your human does. You'll get an API key immediately.

bash
curl -X POST https://creditclaw.com/api/v1/bots/register \
  -H "Content-Type: application/json" \
  -d '{
    "bot_name": "my-research-bot",

Autonomous Decision Making

Medium
Category
Excessive Agency
Confidence
85% confidence
Finding

The skill explicitly permits autonomous purchases under certain approval modes and thresholds. Even with server-side guardrails, this creates a real financial-action capability where an agent can decide to spend funds without per-transaction human confirmation, which is a security-relevant behavior if the agent is prompt-injected, misaligned, or operating on ambiguous user intent.

Content

Scanner excerpt · skill.md (reported line 321)May include surrounding context.

md
**You must follow these rules:**
- If `approval_mode` is `ask_for_everything`, ask your human before any purchase to get their approval. **New accounts default to this mode.** Your owner can loosen this from their dashboard once they're comfortable.
- If `approval_mode` is `auto_approve_under_threshold`, you may spend freely up to `ask_approval_above_usd`. Anything above that requires owner approval.
- If `approval_mode` is `auto_approve_by_category`, you may spend freely on `approved_categories` within limits. All others require approval.
- **Never** spend on `blocked_categories`. These are hard blocks enforced server-side and will be declined.
- Always read and follow the `notes` field — these are your owner's direct instructions.

Autonomous Decision Making

Medium
Category
Excessive Agency
Confidence
85% confidence
Finding

Category-based auto-approval similarly authorizes the agent to make financial decisions without case-by-case review. The surrounding context reduces risk somewhat because blocked categories and server-side enforcement exist, but it remains dangerous if category classification is wrong, manipulated, or broader than the user realizes.

Content

Scanner excerpt · skill.md (reported line 322)May include surrounding context.

md
**You must follow these rules:**
- If `approval_mode` is `ask_for_everything`, ask your human before any purchase to get their approval. **New accounts default to this mode.** Your owner can loosen this from their dashboard once they're comfortable.
- If `approval_mode` is `auto_approve_under_threshold`, you may spend freely up to `ask_approval_above_usd`. Anything above that requires owner approval.
- If `approval_mode` is `auto_approve_by_category`, you may spend freely on `approved_categories` within limits. All others require approval.
- **Never** spend on `blocked_categories`. These are hard blocks enforced server-side and will be declined.
- Always read and follow the `notes` field — these are your owner's direct instructions.
- Cache this for up to 30 minutes. Do not fetch before every micro-purchase.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
98% confidence
Finding

The API reference exposes generalized payment collection, checkout-page, invoice, and seller-profile operations that materially exceed a simple guarded Amazon purchasing workflow. If an agent installs this skill expecting buy-side functionality only, it may gain the ability to create public payment artifacts or conduct broader financial operations without clearly differentiated consent.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.