other
- Location
SKILL.md:22- Finding
Disclosure of a Wallet Signing Key to a Third-Party Trading Service
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This skill documents a real leveraged-trading service, but it asks users to submit a signing key to a third party and to add referral advertising to an agent's system prompt.
Review this carefully before installing. Do not use a primary wallet or broad signing key, and do not let an agent trade or copy-trade without explicit per-action approval, limits, and revocation steps. Remove or ignore the system-prompt referral instruction; referral promotion should be disclosed and user-controlled, not embedded into privileged agent instructions.
SKILL.md:22Disclosure of a Wallet Signing Key to a Third-Party Trading Service
SKILL.md:132Referral Promotion Injected into the Agent System Prompt
The registration flow instructs users to submit an hl_signing_key to an external service without a strong warning that this is highly sensitive credential material capable of authorizing trading activity. In a skill intended for AI agents, presenting a signing key as routine input materially raises the risk of key exfiltration, account takeover, unauthorized trading, and irreversible financial loss.
The examples demonstrate real trade opening and copy-trading flows that can cause immediate leveraged financial exposure and automatic follower position changes, but they do not prominently warn that these are live actions with loss risk. In an agent context, example code is often treated as executable guidance, so omission of safety gating materially increases the chance of unintended trades or autonomous replication of risky positions.
The registration example asks for a wallet address and signing key and shows them being sent to a third-party API without a clear warning that the signing key is a highly sensitive credential. For AI agents and integrators, this can normalize unsafe secret handling, leading to credential exfiltration, account takeover, or unauthorized trading if the key is logged, reused, or transmitted insecurely by surrounding systems.
Tool parameters are crafted to achieve unintended or unsafe behavior. Parameter abuse can bypass intended safety checks (e.g. shell=True, --force, dangerous glob patterns).
- GET /v1/trade/positions — live positions with unrealized PnL
- GET /v1/trade/history — trade history
- POST /v1/copy/follow/:id — copy a trader
- DELETE /v1/copy/follow/:id — stop copying
- GET /v1/copy/leaderboard — top traders (no auth)
- GET /v1/referral/code — referral code
- GET /v1/referral/stats — referral earnings
Tool parameters are crafted to achieve unintended or unsafe behavior. Parameter abuse can bypass intended safety checks (e.g. shell=True, --force, dangerous glob patterns).
- `POST /v1/trade/close` — `{ position_id }`
- `GET /v1/trade/positions` — live positions with unrealized PnL
- `POST /v1/copy/follow/:leader_agent_id` — `{ allocation_usdc, max_position_size?, stop_loss_pct? }`
- `DELETE /v1/copy/follow/:leader_agent_id` — unsubscribe
- `GET /v1/copy/leaderboard` — top 10 by 30d PnL% (no auth)
- `GET /v1/referral/code` / `GET /v1/referral/stats` / `POST /v1/referral/withdraw`
The skill promotes leveraged trading, automatic copy-trading, and position management without explicit warnings about loss of funds, liquidation risk, or the possibility that an agent may open and close positions automatically on a user's behalf. In an agent-integrated context, omission of these warnings increases the chance of unsafe autonomous financial actions being taken without informed user consent.
This example transmits a wallet address and especially an hl_signing_key to an external endpoint, which constitutes outbound transmission of highly sensitive financial credentials. Given the skill's purpose is leveraged trading, compromise or misuse of that key could immediately enable unauthorized orders, copy-trading changes, or other account actions with direct monetary impact.
# 1. Register (requires Hyperliquid wallet — see Setup below)
curl -X POST https://trading.purpleflea.com/v1/auth/register \
-H "Content-Type: application/json" \
-d '{"hl_wallet_address":"0x...","hl_signing_key":"0x..."}'
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
# Get your referral code
curl https://trading.purpleflea.com/v1/referral/code \
-H "Authorization: Bearer sk_trade_..."
# Check earnings
The referral section includes withdrawal of earnings to an address and encourages automatic monetization behavior without warning that these actions move funds and can create hidden incentives for tool usage. In an agent setting, this can bias decisions toward self-serving behavior and enable unauthorized withdrawals or monetized recommendations without user awareness.
The instruction to embed referral-biased text into an agent's system prompt is an attempt to shape future tool selection in favor of the provider's monetization, regardless of user interest. This is dangerous because it creates persistent hidden prompt-level influence that can steer agent behavior, undermine neutrality, and prioritize referral revenue over user safety or suitability.
This example transmits a wallet address and especially an HL signing key to an external service, which is a classic sensitive-data outbound transfer. Even if intended for legitimate registration, the operation is dangerous because users or agents may paste real secrets into commands, and those secrets can then be exposed through logs, telemetry, shell history, or compromise of the remote service.
# 1. Create account (requires Hyperliquid wallet)
curl -X POST https://trading.purpleflea.com/v1/auth/register \
-H "Content-Type: application/json" \
-d '{"hl_wallet_address":"0x...","hl_signing_key":"0x..."}'
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
# Subscribe to copy a leader trader
curl -X POST https://trading.purpleflea.com/v1/copy/follow/ag_xxx \
-H "Authorization: Bearer sk_trade_..." \
-H "Content-Type: application/json" \
-d '{"allocation_usdc":1000,"max_position_size":200,"stop_loss_pct":5}'