self-evolution-engine
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.
payment.py contains a plaintext billing API key 'sk_f03aa8f8bbcf79f7aa11c112d904780f22e62add1464e3c41a79600a451eb1d2' hardcoded at line 12. The _meta.json specifies the key should come from SKILLPAY_API_KEY environment variable, but the code bypasses this entirely. Anyone with read access to the skill source can extract and misuse this key.
payment.py:12 为什么得出这个结论
2/4 个维度触发声明资源与推断能力基本一致。
提取到 1 个高危 IOC 或外联信号。
报告包含 3 步攻击链,另有 3 项高危或严重发现。
发现 5 项需要关注的依赖或供应链线索。
攻击链
初始入口 · payment.py:12
权限提升 · payment.py:12
最终危害 · payment.py:38
风险分是怎么被拉高的
payment.py line 12 contains a plaintext API key 'sk_f03aa...1d2' used in all X-API-Key headers. No env var fallback. Should be SKILLPAY_API_KEY from environment.
SKILL.md mentions SkillPay only as a pricing note but does not disclose that SKILLPAY_USER_ID (from environment) is sent to an external endpoint. Data exfiltration to external host skillpay.me is not documented.
evolution_generator.py and version_manager.py hardcode '/root/.openclaw/workspace/skills' — undeclared privileged path access that is platform-specific.
requirements.txt contains pandas>=2.0.0, numpy>=1.24.0, psutil>=5.9.0, matplotlib>=3.7.0 without upper bounds or exact versions.
最关键的证据
Hardcoded Billing API Key in Source Code
payment.py contains a plaintext billing API key 'sk_f03aa8f8bbcf79f7aa11c112d904780f22e62add1464e3c41a79600a451eb1d2' hardcoded at line 12. The _meta.json specifies the key should come from SKILLPAY_API_KEY environment variable, but the code bypasses this entirely. Anyone with read access to the skill source can extract and misuse this key.
payment.py:12 Undeclared External Data Transmission
The skill transmits SKILLPAY_USER_ID (read from environment) and the billing API key to https://skillpay.me for payment verification. SKILL.md only mentions '本 Skill 已接入 SkillPay 付费系统' and a price tag. It does not disclose what data is sent, to which endpoint, or that user identifiers are transmitted to a third-party service.
payment.py:76 SKILL.md Does Not Match Implementation
SKILL.md describes a pure self-evolution engine (performance monitoring, error analysis, version management). The actual implementation includes a mandatory billing/payment system that charges users before execution, reads environment variables, and makes outbound HTTP requests — none of which appear in the capability declaration or tool list.
SKILL.md:1 Hardcoded Privileged Workspace Path
Both evolution_generator.py and version_manager.py hardcode /root/.openclaw/workspace/skills as the target directory for skill file operations (snapshots, backups, patches). This path implies running with elevated (root) privileges and targets a specific platform directory not declared in SKILL.md.
scripts/evolution_generator.py:22 Unpinned Dependencies with Lower Bounds Only
requirements.txt uses lower-bound version specifiers (pandas>=2.0.0, numpy>=1.24.0, etc.) without upper bounds or exact pins. This allows dependency confusion attacks and pulls latest patch versions without review.
requirements.txt:1 声明能力 vs 实际能力
payment.py:20-30 makes requests.post() to https://skillpay.me with API key and user ID payment.py:76 reads os.environ.get('SKILLPAY_USER_ID') evolution_generator.py:22, version_manager.py:18 hardcode /root/.openclaw/workspace/skills path for writes 可疑产物与外联
API_KEY = "sk_f03aa8f8bbcf79f7aa11c112d904780f22e62add1464e3c41a79600a451eb1d2" payment.py:12
https://skillpay.me payment.py:11
依赖与供应链
| 包名 | 版本 | 来源 | 漏洞 | 备注 |
|---|---|---|---|---|
| pandas | >=2.0.0 | pip | 否 | Version not pinned, lower-bound only |
| numpy | >=1.24.0 | pip | 否 | Version not pinned |
| psutil | >=5.9.0 | pip | 否 | Version not pinned |
| matplotlib | >=3.7.0 | pip | 否 | Version not pinned |
| python-dateutil | >=2.8.0 | pip | 否 | Version not pinned |
| requests | not declared | pip | 否 | Used in payment.py but not listed in requirements.txt |
文件构成
scripts/evolution_generator.py payment.py SKILL.md requirements.txt