self-evolution-engine
技能具备真实自我进化功能,但存在未声明的支付凭证收割(硬编码API密钥)和文档未覆盖的阴影功能(payment.py billing集成),结合无版本锁定的依赖管理,构成中等可疑水平。
Why this conclusion was reached
3/4 dimensions flagged5 undeclared or violating capabilities were inferred.
1 high-risk artifacts or egress signals were extracted.
The report includes 4 attack-chain steps and 1 severe findings.
5 dependency or supply-chain issues need attention.
Attack Chain
Entry · SKILL.md:1
Escalation · payment.py:22
Escalation · scripts/evolution_generator.py:22
Impact · payment.py:12
What drove the risk score up
payment.py:12 硬编码BILLING_API_KEY,该密钥随代码分发存在泄露风险
SKILL.md未声明payment.py的支付验证功能,属73.2%恶意skill特征的阴影功能
requirements.txt中pandas、requests等关键依赖无版本约束,存在供应链攻击面
SKILL.md引用了不存在的references文件(best-practices.md等)
Most important evidence
硬编码API密钥暴露
payment.py第12行硬编码BILLING_API_KEY='sk_f03aa8f8bbcf79f7aa11c112d904780f22e62add1464e3c41a79600a451eb1d2',该密钥随skill代码分发,若上传至公开仓库或遭代码泄露将直接导致billing账户被滥用。
payment.py:12 未声明的支付验证阴影功能
SKILL.md声明本skill为'自我进化引擎',完全未提及payment.py的billing集成功能。但payment.py在__main__中直接调用require_payment(),若该文件被直接执行或被其他脚本导入,将强制执行支付验证逻辑,构成阴影功能。
payment.py:122 引用不存在的参考文档
SKILL.md引用了多个不存在的文档:references/evolution-strategies.md、references/best-practices.md、references/api-reference.md。这使得用户无法获得声称的完整文档,降低可审计性。
SKILL.md:88 依赖无版本锁定
requirements.txt中python-dateutil、pandas、numpy、psutil、matplotlib等关键依赖均未指定精确版本(使用>=)。攻击者可发布含恶意代码的相同包名新版本,或因依赖解析引入有害版本。
requirements.txt:1 未声明的文件系统越权访问
evolution_generator.py和version_manager.py将目标workspace硬编码为/root/.openclaw/workspace/skills,可读取和覆盖该路径下任意skill的.py/.md/.json/.txt文件。SKILL.md未声明此文件系统越权能力。
scripts/evolution_generator.py:22 工具清单声称不存在的脚本
SKILL.md工具清单列出'feedback_learner.py',但scripts/目录下实际不存在该文件。
SKILL.md:42 使用MD5计算文件校验和
version_manager.py:59使用MD5计算快照文件校验和,MD5已被证实存在碰撞攻击,不适合安全场景。
scripts/version_manager.py:59 Declared capability vs actual capability
performance_monitor.py:50-54 创建logs目录并写入jsonl;evolution_generator.py:22-23 创建.evolutions目录 payment.py:22-23 发起POST请求至skillpay.me API,包含X-API-Key头 version_manager.py:71-85 复制skills目录下任意文件创建快照,有权限覆盖目标文件 payment.py:107 读取os.environ.get('SKILLPAY_USER_ID') evolution_generator.py:22 指向/root/.openclaw/workspace/skills,有能力修改其他skill文件 Suspicious artifacts and egress
API_KEY = "sk_f03aa8f8bbcf79f7aa11c112d904780f22e62add1464e3c41a79600a451eb1d2" payment.py:12
https://skillpay.me payment.py:11
Dependencies and supply chain
| Package | Version | Source | Known vuln | Notes |
|---|---|---|---|---|
| python-dateutil | >=2.8.0 | pip | No | 无版本锁定 |
| pandas | >=2.0.0 | pip | No | 无版本锁定 |
| numpy | >=1.24.0 | pip | No | 无版本锁定 |
| psutil | >=5.9.0 | pip | No | 无版本锁定 |
| matplotlib | >=3.7.0 | pip | No | 无版本锁定 |
| requests | implicit | pip | No | payment.py使用但未在requirements.txt中声明 |
File composition
scripts/evolution_generator.py scripts/version_manager.py payment.py SKILL.md requirements.txt