Scan Report
68 /100
self-evolution-engine
自我进化引擎 - 让AI Skill具备自我分析、自我改进、自我学习的能力
Hardcoded billing API key with no declared credential handling, plus undocumented external data transmission to skillpay.me that is only minimally mentioned in SKILL.md — a significant doc-to-code mismatch.
Do not install this skill
Immediately rotate the hardcoded API key and migrate it to an environment variable (SKILLPAY_API_KEY). Enhance SKILL.md to fully document all data sent to external services, including the user ID and API key transmission. Consider whether the billing integration warrants the credential exposure risk.
Attack Chain 3 steps
◎
Entry Skill deployed with hardcoded billing API key embedded in payment.py
payment.py:12⬡
Escalation Attacker extracts the hardcoded API key from source code
payment.py:12◉
Impact Attacker uses extracted key to make unauthorized billing API calls against skillpay.me on behalf of the skill operator
payment.py:38Findings 5 items
| Severity | Finding | Location |
|---|---|---|
| Critical | Hardcoded Billing API Key in Source Code Credential Theft | payment.py:12 |
| High | Undeclared External Data Transmission Data Exfil | payment.py:76 |
| High | SKILL.md Does Not Match Implementation Doc Mismatch | SKILL.md:1 |
| Medium | Hardcoded Privileged Workspace Path Sensitive Access | scripts/evolution_generator.py:22 |
| Low | Unpinned Dependencies with Lower Bounds Only Supply Chain | requirements.txt:1 |
| Resource | Declared | Inferred | Status | Evidence |
|---|---|---|---|---|
| Network | NONE | READ | ✓ Aligned | payment.py:20-30 makes requests.post() to https://skillpay.me with API key and u… |
| Environment | NONE | READ | ✓ Aligned | payment.py:76 reads os.environ.get('SKILLPAY_USER_ID') |
| Filesystem | NONE | WRITE | ✓ Aligned | evolution_generator.py:22, version_manager.py:18 hardcode /root/.openclaw/worksp… |
1 High 2 findings
High API Key 疑似硬编码凭证
API_KEY = "sk_f03aa8f8bbcf79f7aa11c112d904780f22e62add1464e3c41a79600a451eb1d2" payment.py:12 Medium External URL 外部 URL
https://skillpay.me payment.py:11 File Tree
9 files · 56.0 KB · 1662 lines Python 5f · 1300L
Markdown 2f · 329L
JSON 1f · 19L
Text 1f · 14L
├─
▾
references
│ └─
architecture.md
Markdown
├─
▾
scripts
│ ├─
error_analyzer.py
Python
│ ├─
evolution_generator.py
Python
│ ├─
performance_monitor.py
Python
│ └─
version_manager.py
Python
├─
_meta.json
JSON
├─
payment.py
Python
├─
requirements.txt
Text
└─
SKILL.md
Markdown
Dependencies 6 items
| Package | Version | Source | Known Vulns | Notes |
|---|---|---|---|---|
pandas | >=2.0.0 | pip | No | Version not pinned, lower-bound only |
numpy | >=1.24.0 | pip | No | Version not pinned |
psutil | >=5.9.0 | pip | No | Version not pinned |
matplotlib | >=3.7.0 | pip | No | Version not pinned |
python-dateutil | >=2.8.0 | pip | No | Version not pinned |
requests | not declared | pip | No | Used in payment.py but not listed in requirements.txt |
Security Positives
✓ No shell execution, subprocess, or command injection vectors found
✓ No credential harvesting beyond the billing API key (which is used for its intended purpose, not exfiltrated elsewhere)
✓ No base64-encoded payloads, obfuscated code, or anti-analysis techniques
✓ Evolution apply and rollback operations require explicit --confirm flags, providing a human-in-the-loop safeguard
✓ Backup creation before rollback operations prevents accidental data loss
✓ No access to ~/.ssh, ~/.aws, .env, or other sensitive user paths
✓ No reverse shell, C2, or data-theft-only beacons detected