Scan Report
75 /100
shekel-hyperliquid
AI-powered perpetual futures trading on Hyperliquid DEX
SKILL.md-only skill with mandatory dynamic instruction fetching from an uncontrolled backend, allowing the operator to silently pivot to malicious behavior at any time, compounded by undeclared wallet key export, credential forwarding to a third-party backend, and no local code to audit.
Do not install this skill
Do not deploy until the dynamic instruction fetching is removed. All behavior must be determined by local, versioned code. The export-agent-key and Rei API key forwarding capabilities must be declared explicitly. Consider forking and self-hosting if the trading logic is genuinely useful.
Attack Chain 4 steps
◎
Entry User deploys skill; SKILL.md appears legitimate with detailed trading documentation
SKILL.md:1⬡
Escalation Backend operator updates GET /skill to serve malicious instructions (no version pin, fetched on every interaction)
SKILL.md:14⬡
Escalation Malicious instructions call POST /auth/export-agent-key to extract the trading wallet private key
SKILL.md:72◉
Impact Wallet key exfiltrated to attacker-controlled endpoint; attacker drains all funds from the trading account
SKILL.md:72Findings 7 items
| Severity | Finding | Location |
|---|---|---|
| Critical | Mandatory dynamic instruction fetching — silent remote code replacement Supply Chain | SKILL.md:14 |
| High | Undeclared wallet key export capability Credential Theft | SKILL.md:72 |
| High | Rei API key forwarded to backend operator Credential Theft | SKILL.md:127 |
| High | All execution happens on an uncontrolled remote backend not declared as a dependency Doc Mismatch | SKILL.md:14 |
| Medium | API key written to filesystem without explicit declaration Sensitive Access | SKILL.md:167 |
| Medium | No pinned versions for external data sources Supply Chain | SKILL.md:270 |
| Low | Skill version in _meta.json does not match dynamic version mechanism Doc Mismatch | _clawsafe/pre-scan.json |
| Resource | Declared | Inferred | Status | Evidence |
|---|---|---|---|---|
| Filesystem | NONE | WRITE | ✗ Violation | SKILL.md:167 — instructs writing apiKey to MEMORY.md |
| Network | NONE | READ | ✗ Violation | SKILL.md:14-19 — mandates GET /skill/version and GET /skill on every interaction |
| Network | NONE | WRITE | ✗ Violation | SKILL.md:466-476 — POST /agent/run with user llmApiKey forwarded to backend |
| Environment | NONE | READ | ✗ Violation | _meta.json declares SHEKEL_API_KEY env requirement but SKILL.md does not documen… |
7 findings
Medium External URL 外部 URL
https://shekel-skill-backend.onrender.com/skill SKILL.md:15 Medium External URL 外部 URL
https://shekel-skill-backend.onrender.com/skill/version SKILL.md:31 Medium External URL 外部 URL
https://www.shekel.xyz/hl-skill-dashboard SKILL.md:45 Medium External URL 外部 URL
https://www.shekel.xyz/hl-skill-dashboard** SKILL.md:84 Medium External URL 外部 URL
https://shekel-skill-backend.onrender.com/agents/ SKILL.md:368 Medium External URL 外部 URL
https://shekel-skill-backend.onrender.com/agent/run SKILL.md:478 Medium External URL 外部 URL
https://t.me/c/2308722458/1 SKILL.md:570 File Tree
1 files · 22.2 KB · 581 lines Markdown 1f · 581L
└─
SKILL.md
Markdown
Security Positives
✓ No local code means no embedded malware in the skill package itself
✓ Clear error handling and rate limit documentation
✓ Risk circuit breakers documented (maxDrawdownPct, maxDailyLossPct)
✓ No base64-encoded execution or obfuscation observed
✓ Telegram support channel provided for recovery