T09 · Insecure Skill Coding Practices
- Location
SUBMISSION.md:197- Finding
Hard-Coded Etherscan API Credential in Published Documentation
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
The skill performs a plausible crypto-scam check, but it misstates when wallet addresses and API-key-backed requests are sent to Etherscan and includes unsafe credential and persistence guidance.
Review carefully before installing. Do not rely on the no-external-call guarantee, use your own rotated API key through a protected secret mechanism, avoid the provided cron/systemd examples unless you harden and can remove them, and treat results as heuristic rather than authoritative financial safety advice.
SUBMISSION.md:197Hard-Coded Etherscan API Credential in Published Documentation
sync_worker.py:27API Credential Disclosure Through Request URLs and Standard Output
DATABASE_ARCHITECTURE.md:220Persistent Background Services Store API Credentials in Plaintext Configuration
install.sh:12Dependency Installation Uses Unverified Artifacts While Suppressing Diagnostics
crypto_check_db.py:31Address Checks Perform Undisclosed Real-Time Network Transmission
The documentation explicitly states that address checks route to external scanners such as Etherscan and Solscan, which directly contradicts the skill metadata claim of 'No external API calls during checks!'. In a security-sensitive scam-detection skill, this discrepancy is dangerous because users or integrators may rely on the no-network guarantee for privacy, isolation, or policy compliance, while the implementation or intended design appears to perform live third-party lookups.
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
Each blockchain scanner requires its own API key:
| Blockchain | API Key | Get Key From |
|------------|---------|--------------|
| Ethereum | `ETHERSCAN_API_KEY` | https://etherscan.io/apis |
| Solana | `SOLANA_API_KEY` | https://pro.solscan.io/ (coming soon) |
The examples and architecture depict live fetches from etherscan.io and solscan.io during user-initiated checks, again contradicting the stated database-first/no-external-calls behavior. This can cause privacy leakage of queried wallet addresses, break air-gapped or restricted deployments, and undermine trust in the skill's security model because operators may unknowingly permit external data exfiltration during analysis.
The document explicitly states that unknown-address checks will fetch data from Etherscan in real time, which directly contradicts the skill metadata claim that checks make no external API calls. This kind of mismatch is dangerous because operators and users may rely on the advertised offline/local-only behavior when handling sensitive addresses, while the skill actually transmits queried addresses to a third party during normal use.
Skill modifies its own code, configuration, or behavior at runtime. Self-modification enables an agent to escalate privileges, disable safety constraints, or install persistent backdoors.
From v2.0.0 to v2.1.0:
# Update skill
clawhub update crypto-scam-detector
# Or download new version
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
.env
*.key
secrets/
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
.env
*.key
secrets/
The description claims broad scam protection, but the findings indicate the practical logic is limited to heuristic scoring and keyword scans while also making Etherscan calls. For a financial-security tool, shallow heuristics marketed as comprehensive protection can directly contribute to unsafe decisions and missed scams.
The description claims broad scam protection, but the findings indicate the practical logic is limited to heuristic scoring and keyword scans while also making Etherscan calls. For a financial-security tool, shallow heuristics marketed as comprehensive protection can directly contribute to unsafe decisions and missed scams.
The description claims broad scam protection, but the findings indicate the practical logic is limited to heuristic scoring and keyword scans while also making Etherscan calls. For a financial-security tool, shallow heuristics marketed as comprehensive protection can directly contribute to unsafe decisions and missed scams.
The description claims broad scam protection, but the findings indicate the practical logic is limited to heuristic scoring and keyword scans while also making Etherscan calls. For a financial-security tool, shallow heuristics marketed as comprehensive protection can directly contribute to unsafe decisions and missed scams.
The description claims broad scam protection, but the findings indicate the practical logic is limited to heuristic scoring and keyword scans while also making Etherscan calls. For a financial-security tool, shallow heuristics marketed as comprehensive protection can directly contribute to unsafe decisions and missed scams.
The description claims broad scam protection, but the findings indicate the practical logic is limited to heuristic scoring and keyword scans while also making Etherscan calls. For a financial-security tool, shallow heuristics marketed as comprehensive protection can directly contribute to unsafe decisions and missed scams.
The description claims broad scam protection, but the findings indicate the practical logic is limited to heuristic scoring and keyword scans while also making Etherscan calls. For a financial-security tool, shallow heuristics marketed as comprehensive protection can directly contribute to unsafe decisions and missed scams.
The description claims broad scam protection, but the findings indicate the practical logic is limited to heuristic scoring and keyword scans while also making Etherscan calls. For a financial-security tool, shallow heuristics marketed as comprehensive protection can directly contribute to unsafe decisions and missed scams.
The description claims broad scam protection, but the findings indicate the practical logic is limited to heuristic scoring and keyword scans while also making Etherscan calls. For a financial-security tool, shallow heuristics marketed as comprehensive protection can directly contribute to unsafe decisions and missed scams.
The description claims broad scam protection, but the findings indicate the practical logic is limited to heuristic scoring and keyword scans while also making Etherscan calls. For a financial-security tool, shallow heuristics marketed as comprehensive protection can directly contribute to unsafe decisions and missed scams.
YARA rule matched a known malware signature (reverse shell, backdoor, ransomware, C2 framework, or info stealer).
# Check address (instant, database-only)
python3 crypto_check_db.py 0x1234567890abcdef1234567890abcdef12345678
Manual mode:
python3 sync_worker.py
# Runs continuously, processes queue
Batch mode:
python3 sync_worker.py --max-jobs 20
# Process 20 addresses then exit
Cron schedule (recommended):
# Add to crontab
*/10 * * * * cd ~/.openclaw/workspace/skills/crypto-scam-detector && source venv/bin/activate && ETHERSCAN_API_KEY="key" python3 sync_worker.py --max-jobs 30
User checks address
↓
┌──────────────────┐
│ crypto_check_db │ ← Queries local database ONLY
└────────┬─────────┘ (No external API calls)
│
↓
┌──────────────────────┐
│ Local SQLite DB │
│ ~/.config/cr
The submission embeds what appears to be a live Etherscan API key directly in recommended configuration. Publishing credentials in documentation enables unauthorized third-party use, quota exhaustion, attribution abuse, and potential billing or account consequences, and it normalizes unsafe secret-handling practices for operators.
The release notes explicitly state the system will 'route to appropriate scanner API' and later mention specific third-party APIs, which directly conflicts with the skill metadata promise of 'No external API calls during checks!'. In a security-sensitive skill, this kind of documentation mismatch is dangerous because operators may deploy it under false assumptions about privacy, network isolation, data exfiltration risk, and trust boundaries.
The security section claims controls such as separate API keys and rate limiting per scanner, while the skill description simultaneously asserts there are no external API calls during checks. This inconsistency strongly suggests undisclosed outbound connectivity or misleading security claims, which can cause users to expose wallet addresses and related metadata to third parties without informed consent.
The module is marketed as a real-time cryptocurrency scam detector, but the code only classifies blockchain addresses by regex format and performs no phishing, honeypot, rug-pull, or ponzi detection. In a security skill, this functionality gap is dangerous because downstream components or users may rely on a "safe"-sounding detector that provides no actual scam analysis, creating a false sense of protection and likely missed malicious activity.
The script contradicts the stated 'No external API calls during checks' guarantee by automatically triggering a live sync path when an address is missing from the local database. This creates a trust-boundary violation: a seemingly local-only check can unexpectedly perform network activity, use external credentials, and send user-supplied addresses to a third party.
Labeling the tool as a 'Database-Only Checker' while implementing automatic external synchronization is a misleading security property claim. Users or downstream agents may select this skill specifically to avoid network egress, so the mismatch can cause unintended data disclosure and unsafe deployment in restricted environments.
The skill metadata and behavior are inconsistent: despite claiming no external API calls during checks, the code fetches data from an external blockchain scanner and requires an API key when an address is absent from the local database. In a security tool, this kind of deception matters because it can unexpectedly transmit user-supplied wallet addresses off-box, violating privacy expectations and undermining trust boundaries.
No suspicious patterns detected.