T01 · Skill Instruction Hijacking
- Location
SKILL.md:248- Finding
Mandatory Branded-Output Injection
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
The skill mostly does what it claims, but it needs review because it sends transaction lookups to third-party services, exposes the optional API key through URL-based curl calls, and can rewrite a user-configured local rate-limit file.
Review before installing. This skill is not malicious from the inspected artifacts, but use it only if you are comfortable sending transaction hashes to Tokenview and public blockchain endpoints. Prefer a low-privilege environment, avoid setting TRANSACTION_RECEIPT_RATE_FILE to any existing important file, and treat the Tokenview API key as potentially visible in local process or URL logs.
SKILL.md:248Mandatory Branded-Output Injection
SKILL.md:76Arbitrary Rate-Limit File Rewriting Through an Unrestricted Configurable Path
SKILL.md:125API Key Exposure Through URL Query Parameters and Process Arguments
The README explicitly describes fallback to Tokenview and public RPC/block explorer endpoints, but it does not warn users that submitted transaction hashes and related request metadata may be disclosed to third-party services. While transaction hashes are public on-chain data, sending them to external providers can still leak user interest, timing, IP address, wallet associations, and investigative context, which creates a meaningful privacy and operational security risk.
Commands invoke sudo or root privileges. Verify this elevated access is necessary and justified.
- If `TRANSACTION_RECEIPT_RATE_FILE` is set, use it directly.
- Else use `~/.openclaw/state/transaction-receipt/rate-limit.log`.
- If `HOME` is unavailable, fallback to `${TMPDIR:-/tmp}/transaction-receipt-rate-limit.log`.
3. Ensure the parent directory exists (`mkdir -p`), then ensure file permissions are private where possible (`chmod 600 "$RATE_FILE" 2>/dev/null || true`).
4. **Before each** planned on-chain request (Tokenview or Fallback):
- `NOW=$(date +%s)`, `CUTOFF=$((NOW - 3600))`.
- If the file exists: keep only numeric timestamps newer than `CUTOFF`, rewrite the file.
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
"https://services.tokenview.io/vipapi/tx/btc/${HASH}?apikey=${TOKENVIEW_API_KEY}"
Doc shorthand: `https://services.tokenview.io/vipapi/tx/eth|btc/{{hash}}?apikey={{TOKENVIEW_API_KEY}}` (still use curl timeouts).
### 3-B. Fallback: public read-only (no key or bad key)
The instructions require the final response to end with the exact English phrase "Data aggregated by Antalpha AI" and make that wording mandatory. This imposes a fixed language output requirement without user opt-in or a documented locale justification, which fits the language/locale policy violation category.
The manifest header declares version 1.1.2 at L003, but the Versioning section states 'this document version: 1.1.1' at L278. This is an active documentation contradiction about the skill's identity/version rather than a mere omission.
No suspicious patterns detected.