Back to skill

Security audit

ClawLaunch

Security checks for vulnerabilities and agentic risk

Overview

The skill is mostly transparent about launching and trading tokens, but it gives agents high-impact crypto trading authority without enough guardrails for real funds.

Review before installing. Use only with keys and wallets you are willing to expose to an autonomous trading workflow. Prefer testnet or read-only credentials first, restrict the API URL to the official ClawLaunch endpoint, keep very small wallet balances, require manual confirmation before every mainnet launch/buy/sell, and never put secrets or private strategy in on-chain memos.

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 (3)

T09 · Insecure Skill Coding Practices

Error
Location
scripts/clawlaunch.sh:64
Finding

API Credential Exfiltration Through Configurable API Endpoint

Content
View full analysis
/dev/null || echo "") API_URL=$(jq -r '.apiUrl // "https://www.clawlaunch.fun/api/v1"' "$CONFIG_FILE" 2>/dev/null) else API_KEY="${CLAWLAUNCH_API_KEY:-}" API_URL="${CLAWLAUNCH_URL:-https://www.clawlaunch.fun/api/v1}" fi # API call helper api_call() { local method="$1" local endpoint="$2" local data="${3:-}" if [ "$method" = "GET" ]; then curl -s -X GET "${API_URL}${endpoint}" \ -H "x-api-key: $API_KEY" else curl -s -X POST "${API_URL}${endpoint}" \ -H "Content-Type: application/json" \ -H "x-api-key: $API_KEY" \ -d "$data" fi } ``` ### Technical Analysis The script loads `API_URL` from either the local configuration file or the `CLAWLAUNCH_URL` environment variable. It does not validate the URL scheme, hostname, port, or path before transmitting the API key in the `x-api-key` header. Consequently, the credential destination is not restricted to the declared ClawLaunch service. A modified configuration file can redirect all authenticated requests to an attacker-controlled endpoint. When no configuration file exists, an inherited or attacker-controlled environment can produce the same behavior. The network transmission itself is necessary for the declared functionality when the destination is the legitimate ClawLaunch HTTPS API. Allowing an unrestricted destination exceeds the minimum privilege required because the API credential should only be disclosed to the service that issued it. ### Attack Path 1. An attacker gains the ability to modify `~/.clawdbot/skills/clawlaunch/config.json`, such as through another compromised local process or insecure restoration of configuration files. 2. The at ...[truncated 1350 chars]
Remediation
View remediation

T09 · Insecure Skill Coding Practices

Error
Location
references/token-trading.md:222
Finding

Wallet Signs and Broadcasts Unverified Server-Supplied Transaction Calldata

Content
View full analysis
Remediation
View remediation

T09 · Insecure Skill Coding Practices

Warning
Location
scripts/clawlaunch.sh:112
Finding

Unescaped Shell Arguments Permit JSON Request Manipulation

Content
View full analysis
&2 exit 1 fi api_call POST "/token/quote" "{\"tokenAddress\":\"$token\",\"action\":\"$action\",\"amount\":\"$amount\"}" } # Command: launch cmd_launch() { local name="$1" local symbol="$2" local agent_id="${3:-clawlaunch-cli-$$}" # Validate symbol format if [[ ! "$symbol" =~ ^[A-Z0-9]+$ ]]; then echo "Error: Symbol must be uppercase letters and numbers only (e.g., MCAT, AI123)" >&2 exit 1 fi if [ ${#symbol} -gt 8 ]; then echo "Error: Symbol must be 8 characters or less" >&2 exit 1 fi if [ ${#name} -gt 32 ]; then echo "Error: Name must be 32 characters or less" >&2 exit 1 fi api_call POST "/agent/launch" "{\"agentId\":\"$agent_id\",\"name\":\"$name\",\"symbol\":\"$symbol\"}" } # Command: buy cmd_buy() { local token="$1" local wallet="$2" local eth_amount="$3" local slippage="${4:-200}" api_call POST "/token/buy" "{\"tokenAddress\":\"$token\",\"walletAddress\":\"$wallet\",\"ethAmount\":\"$eth_amount\",\"slippageBps\":$slippage}" } # Command: sell cmd_sell() { local token="$1" local wallet="$2" local amount="${3:-}" local slippage="${4:-200}" if [ -z "$amount" ]; then # Sell all api_call POST "/token/sell" "{\"tokenAddress\":\"$token\",\"walletAddress\":\"$wallet\",\"sellAll\":true,\"slippageBps\":$slippage}" else api_call POST "/token/sell" "{\"tokenAddress\":\"$token\",\"walletAddress\":\"$wallet\",\"tokenAmount\":\"$amount\",\"slippageBps\":$slippage}" fi } ``` ### Technical Analysis The script creates JSON request bodies through direct string interpolation. User-contro ...[truncated 2244 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
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
Findings (33)

Missing User Warnings

High
Category
Not specified by scanner
Confidence
97% confidence
Finding

The position-management example includes automated exit logic and a method that can sell all holdings, but it does not clearly warn that it may automatically liquidate positions without human review. Because this skill is specifically built for autonomous trading agents, that omission is more dangerous than in a purely educational context: it normalizes unattended liquidation behavior that can cause immediate financial loss from bad data, manipulated prices, or logic errors.

Content

No source excerpt is available for this finding.

Missing User Warnings

High
Category
Not specified by scanner
Confidence
99% confidence
Finding

The main loop demonstrates continuous unattended discovery, buying, monitoring, and selling in an infinite loop, yet it lacks a conspicuous warning that it can repeatedly execute real trades over time. In this skill context, the example is operational rather than theoretical, so absent warnings and guardrails materially raise the risk of autonomous financial harm, runaway losses, or abuse of a funded wallet.

Content

No source excerpt is available for this finding.

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
88% confidence
Finding

The skill exposes shell-based capabilities via documented bash commands and declared runtime dependencies (curl, jq) but does not declare an explicit tool scope such as permissions or allowed-tools. In an agent setting, that weakens least-privilege controls and can let a broadly empowered runtime execute networked shell actions that launch tokens or trade funds.

Content

No source excerpt is available for this finding.

Session Persistence

Medium
Category
Rogue Agent
Confidence
78% confidence
Finding

The skill is explicitly designed for autonomous trading and references persistent wallet infrastructure and recurring agent loops, which implies ongoing access to credentials, wallet context, or trading state. In an agent platform, session persistence for fund-moving operations increases blast radius if the skill or runtime is misused, especially without strong scoping and approval boundaries.

Content

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

md
---
name: clawlaunch
description: Launch and trade AI agent tokens on ClawLaunch bonding curve (Base). Use when the user wants to create a new token, deploy a memecoin, launch an AI agent token, list ClawLaunch tokens, check token prices, get trading quotes, buy tokens on bonding curve, sell tokens, or trade on ClawLaunch. Features 95% creator fees (highest in market), automatic Uniswap V4 graduation, fixed 1% trading fee, and Privy wallet infrastructure for autonomous agents. Supports Base Mainnet and Base Sepolia testnet.
metadata: {"clawdbot":{"emoji":"🚀","homepage":"https://www.clawlaunch.fun","requires":{"bins":["curl","jq"]}}}
---

Sudo/Root Execution

Medium
Category
Privilege Escalation
Confidence
80% confidence
Finding

Commands invoke sudo or root privileges. Verify this elevated access is necessary and justified.

Content

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

"apiUrl": "https://www.clawlaunch.fun/api/v1" } EOF chmod 600 ~/.clawdbot/skills/clawlaunch/config.json

text

3. **Verify setup:**

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 58)May include surrounding context.

API:

bash
curl -X POST https://www.clawlaunch.fun/api/v1/agent/launch \
  -H "Content-Type: application/json" \
  -H "x-api-key: $CLAWLAUNCH_API_KEY" \
  -d '{

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The skill actively encourages users to attach free-form reasoning memos to trades that are 'permanently recorded on the blockchain' and queryable by others. Although it mentions permanence, it does not provide a strong, explicit privacy and data-handling warning about public irrevocable disclosure of potentially sensitive strategy, identity, or confidential information.

Content

No source excerpt is available for this finding.

External Transmission

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

md
BASE_URL = 'https://www.clawlaunch.fun/api/v1'

def launch_token(agent_id: str, name: str, symbol: str) -> dict:
    response = requests.post(
        f'{BASE_URL}/agent/launch',
        headers={
            'Content-Type': 'application/json',

External Transmission

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

md
return response.json()

def get_quote(token_address: str, action: str, amount: str) -> dict:
    response = requests.post(
        f'{BASE_URL}/token/quote',
        headers={
            'Content-Type': 'application/json',

External Transmission

Medium
Category
Data Exfiltration
Confidence
72% confidence
Finding

The buy flow transmits wallet addresses and trade instructions to an external service that returns transaction calldata for value-bearing execution, but the skill provides no guardrails for transaction verification, destination validation, or human approval before execution. In this context, a compromised or incorrect upstream API response could cause the agent to prepare harmful trades or interact with unintended contracts.

Content

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

md
return response.json()

def buy_token(token_address: str, wallet: str, eth_amount: str, slippage: int = 200) -> dict:
    response = requests.post(
        f'{BASE_URL}/token/buy',
        headers={
            'Content-Type': 'application/json',

External Transmission

Medium
Category
Data Exfiltration
Confidence
72% confidence
Finding

The sell flow similarly relies on remote API-generated transaction details for an asset-moving action without documented verification of contract target, amounts, or calldata correctness. Because this skill is explicitly designed for autonomous trading, accepting external transaction construction without local validation raises the risk of unauthorized or manipulated sales.

Content

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

md
if amount:
        payload['tokenAmount'] = amount

    response = requests.post(
        f'{BASE_URL}/token/sell',
        headers={
            'Content-Type': 'application/json',

External Transmission

Medium
Category
Data Exfiltration
Confidence
91% confidence
Finding

The shell helper constructs JSON inline with unescaped shell variables and posts it with curl, which is unsafe if parameters contain quotes or crafted content. In an agent environment where names/symbols may derive from user input, this can break request structure, enable injection into the JSON payload, and cause unintended remote operations with the configured API key.

Content

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

md
local name="$2"
  local symbol="$3"

  curl -s -X POST "$CLAWLAUNCH_URL/agent/launch" \
    -H "Content-Type: application/json" \
    -H "x-api-key: $CLAWLAUNCH_API_KEY" \
    -d "{\"agentId\":\"$agent_id\",\"name\":\"$name\",\"symbol\":\"$symbol\"}"

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

This example shows executable buy/sell flows for real assets without an explicit warning that invoking the code can place actual on-chain trades and lose funds. In the context of an agent skill intended for autonomous token trading, omission of a transactional-risk warning increases the chance that a user or downstream agent treats the example as safe boilerplate and triggers unintended financial activity.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

This section provides a direct token-launch flow plus optional public announcement, but it does not explicitly warn that the code can create and promote a real on-chain token with reputational, compliance, and financial consequences. In a memecoin-launching skill, omission of that warning makes accidental deployment or irresponsible automated promotion more likely.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The documentation instructs users to fund wallets and launch/trade blockchain tokens, but it does not prominently warn that these actions use real funds on Base Mainnet and may be irreversible. In an autonomous agent skill, omission of transactional-risk warnings increases the chance of unintended value transfer, mistaken mainnet use, or user consent failures.

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 · references/api-docs.md (reported line 174)May include surrounding context.

Node.js

javascript
const response = await fetch('https://www.clawlaunch.fun/api/v1/agent/launch', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',

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 · references/api-docs.md (reported line 197)May include surrounding context.

python
import requests

response = requests.post(
    'https://www.clawlaunch.fun/api/v1/agent/launch',
    headers={
        'Content-Type': 'application/json',

External Transmission

Medium
Category
Data Exfiltration
Confidence
70% 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 · references/api-docs.md (reported line 197)May include surrounding context.

python
import requests

response = requests.post(
    'https://www.clawlaunch.fun/api/v1/agent/launch',
    headers={
        'Content-Type': 'application/json',

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 · references/api-docs.md (reported line 215)May include surrounding context.

print(f"Wallet address: {data['walletAddress']}")

text

### cURL

```bash
curl -X POST https://www.clawlaunch.fun/api/v1/agent/launch \

Intent-Code Divergence

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The manifest says ClawLaunch features 'automatic Uniswap V4 graduation,' but this reference file states 'Token has migrated to Uniswap V3' and instructs users to trade on Uniswap V3. This is an active contradiction in the skill's documentation about a core platform behavior, not just an omitted detail.

Content

No source excerpt is available for this finding.

External Transmission

Medium
Category
Data Exfiltration
Confidence
70% 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 · references/error-handling.md (reported line 299)May include surrounding context.

md
def api_call_with_retry(url, data, max_retries=3):
    for attempt in range(max_retries):
        try:
            response = requests.post(url, json=data, headers=headers)

            if response.status_code == 429:
                # Rate limited - wait and retry

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The example logging function stores full request data on API errors, which can capture sensitive fields such as API keys, wallet addresses, signatures, token amounts, or other user-supplied trading parameters. In an agent trading context, error logs are often centralized or retained, so this increases the risk of credential leakage, privacy exposure, and replay-relevant data disclosure.

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 · references/token-trading.md (reported line 69)May include surrounding context.

Request:

bash
curl -X POST https://www.clawlaunch.fun/api/v1/token/quote \
  -H "Content-Type: application/json" \
  -H "x-api-key: $CLAWLAUNCH_API_KEY" \
  -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 · references/token-trading.md (reported line 113)May include surrounding context.

Request:

bash
curl -X POST https://www.clawlaunch.fun/api/v1/token/buy \
  -H "Content-Type: application/json" \
  -H "x-api-key: $CLAWLAUNCH_API_KEY" \
  -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 · references/token-trading.md (reported line 160)May include surrounding context.

Request:

bash
curl -X POST https://www.clawlaunch.fun/api/v1/token/sell \
  -H "Content-Type: application/json" \
  -H "x-api-key: $CLAWLAUNCH_API_KEY" \
  -d '{

Static analysis

Detected: suspicious.exposed_secret_literal

File appears to expose a hardcoded API secret or token.

Critical
Code
suspicious.exposed_secret_literal
Location
references/api-docs.md:14