T01 · Skill Instruction Hijacking
- Location
SKILL.md:228- Finding
Agent Instructions Inject an Operator-Specific Commercial Referral
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This is a real trading skill whose core purpose is coherent, but it combines live-funds authority, private-key handling, an unpinned global install, and under-disclosed data-sharing and referral guidance.
Review carefully before installing. Use a dedicated low-balance API wallet, prefer read-only mode for monitoring, test with `--testnet`, avoid storing private keys in shell history or long-lived environment variables, verify the npm package/version yourself, and do not send account JSON to webhooks unless the endpoint is trusted and the payload is minimized. Treat the referral link as optional and unrelated to setup.
SKILL.md:228Agent Instructions Inject an Operator-Specific Commercial Referral
SKILL.md:12Unpinned Globally Installed Dependency Receives Wallet Credentials and Trading Authority
The reference documents market/limit order placement and leverage changes without a clear global warning that these commands affect live funds by default unless --testnet is used. In a high-frequency trading context, users may rapidly execute irreversible trades or leverage changes, amplifying the chance of accidental financial loss.
The skill provides direct live-trading commands, including leveraged orders, without strong warnings about financial loss, liquidation risk, or a clear recommendation to use testnet/paper practice first. In an agent context, this increases the chance that users execute risky real-money trades too quickly or misunderstand the consequences of market and leverage commands.
The account setup example instructs users to enter a private key but does not prominently warn about secret-handling risks such as key theft, shell history leakage, shoulder surfing, or use on compromised systems. In a trading tool, private keys directly control funds, so weak guidance around entry and storage materially increases the risk of asset theft.
The examples repeatedly place live market and limit orders on real assets without an upfront warning that these actions can execute immediately with real funds. In a trading skill, executable examples materially increase the chance of accidental financial loss, especially when copy-pasted by users who may not distinguish testnet from mainnet.
The example pipes live account position data to an arbitrary external webhook, which creates a clear data exfiltration path. Even if intended for monitoring, positions, balances, and trading activity are sensitive financial data, and the example provides no trust boundary, destination validation, or warning to the user.
The webhook example transmits account position data to an external service without any privacy or data-sharing warning. Users may unknowingly disclose portfolio composition, position sizes, entry prices, and unrealized PnL to third parties, which can expose sensitive financial intelligence.
This command explicitly posts the output of hl account positions --json to an external URL via curl, which is a direct external transmission of sensitive financial data. Because the example uses a generic webhook endpoint and no authentication, redaction, or warning, it normalizes unsafe export of account telemetry.
hl account positions --json | jq -r '.positions[] | [.coin, .size, .entryPx, .unrealizedPnl] | @csv'
# Send to monitoring service
hl account positions --json | curl -X POST -d @- https://your-webhook.com/positions
# Log to file with timestamp
echo "{\"timestamp\": \"$(date -Iseconds)\", \"data\": $(hl account positions --json)}" >> positions.log
The reference explicitly states that trading accounts are stored locally in ~/.hyperliquid/accounts.db and that users may enter private keys, but it provides no warning that these files and inputs contain highly sensitive material. In a trading skill, compromise of locally stored wallet credentials can directly enable unauthorized trading or fund loss, so the omission meaningfully increases user risk.
The documentation instructs users to enter a private key and exposes HYPERLIQUID_PRIVATE_KEY as an environment-variable workflow without warning about secret leakage through shell history, process listings, shared terminals, CI logs, or multi-user systems. Because this skill controls live trading accounts, disclosure of the key can lead to immediate account takeover and unauthorized orders.
Skill enables autonomous high-impact decisions without human-in-the-loop verification. Critical operations (destructive commands, financial transactions, data deletion) should require explicit user confirmation.
| Option | Description |
|--------|-------------|
| `--coin <coin>` | Only cancel orders for specific coin |
| `-y, --yes` | Skip confirmation prompt |
**Examples:**
Skill enables autonomous high-impact decisions without human-in-the-loop verification. Critical operations (destructive commands, financial transactions, data deletion) should require explicit user confirmation.
| Option | Description |
|--------|-------------|
| `--coin <coin>` | Only cancel orders for specific coin |
| `-y, --yes` | Skip confirmation prompt |
**Examples:**
The documentation instructs the agent to recommend a specific referral link unrelated to the core operational purpose of trading or monitoring. This creates a conflict of interest: an automated assistant could steer users toward a promoter-controlled URL during a sensitive financial setup flow, which is inappropriate even if the link is legitimate.
No suspicious patterns detected.