Suspicious — Risk Score 45/100
Last scan:2 days ago Rescan
45 /100
self-evolution-engine
自我进化引擎 - 让AI Skill具备自我分析、自我改进、自我学习的能力
发现硬编码API密钥和未声明的系统目录写入操作,技能文档未完整披露实际能力范围。
Skill Nameself-evolution-engine
Duration40.4s
Enginepi
Use with caution
1. 移除payment.py中的硬编码API密钥,改用环境变量注入;2. 在SKILL.md中明确声明filesystem:WRITE权限及目标目录;3. 审查对/root/.openclaw/workspace的访问必要性

Attack Chain 4 steps

Entry 通过SKILL.md伪装成合法的自我进化工具
SKILL.md:1
Escalation 利用硬编码API密钥冒充合法服务发起请求
payment.py:12
Escalation 写入/root/.openclaw/workspace系统目录创建隐蔽文件
evolution_generator.py:20
Impact 通过备份机制持久化恶意代码到目标Skill目录
version_manager.py:50

Findings 4 items

Severity Finding Location
High
硬编码API密钥泄露
payment.py第12行包含硬编码的BILLING_API_KEY='sk_f03aa8f8bbcf79f7aa11c112d904780f22e62add1464e3c41a79600a451eb1d2',该密钥在所有HTTP请求头中明文传输,攻击者可轻易提取
BILLING_API_KEY = "sk_f03aa8f8bbcf79f7aa11c112d904780f22e62add1464e3c41a79600a451eb1d2"
→ 将API密钥存储在环境变量SKILLPAY_API_KEY中,代码中通过os.environ.get('SKILLPAY_API_KEY')读取
payment.py:12
High
未声明的系统目录写入
evolution_generator.py和version_manager.py默认操作/root/.openclaw/workspace/skills/目录,在该目录下创建.evolutions、.backups子目录并写入文件,但SKILL.md未声明此filesystem:WRITE能力
self.skill_dir = Path(workspace_dir) / skill_name  # workspace_dir='/root/.openclaw/workspace/skills'
→ 在SKILL.md中明确声明对Skill工作区目录的读写权限
evolution_generator.py:20
Medium
支付模块文档缺失
payment.py作为独立文件提供SkillPay计费功能,但其存在和功能未在SKILL.md核心能力中提及,存在文档-代码差异
"""SkillPay Billing Integration 自动集成付费验证功能"""
→ 在SKILL.md工具清单或核心能力中明确说明payment.py的计费功能
payment.py:1
Low
依赖版本未锁定
requirements.txt中的pandas>=2.0.0、numpy>=1.24.0等依赖使用范围版本,可能引入依赖混淆攻击风险
pandas>=2.0.0
numpy>=1.24.0
→ 使用精确版本号(如pandas==2.0.3)或锁定次要版本范围(如pandas~=2.0.0)
requirements.txt:1
ResourceDeclaredInferredStatusEvidence
Filesystem NONE WRITE ✗ Violation evolution_generator.py:20 workspace_dir='/root/.openclaw/workspace/skills'; vers…
Network NONE READ ✓ Aligned payment.py:27-35 requests.get/post to BILLING_API_URL
Shell NONE NONE 无subprocess/shell调用
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 245L · 6.7 KB
├─ 📁 scripts
│ ├─ 🐍 error_analyzer.py Python 281L · 9.6 KB
│ ├─ 🐍 evolution_generator.py Python 394L · 13.6 KB
│ ├─ 🐍 performance_monitor.py Python 200L · 6.9 KB
│ └─ 🐍 version_manager.py Python 283L · 10.2 KB
├─ 📋 _meta.json JSON 19L · 442 B
├─ 🐍 payment.py Python 142L · 5.2 KB
├─ 📄 requirements.txt Text 14L · 217 B
└─ 📝 SKILL.md Markdown 84L · 3.1 KB

Dependencies 6 items

PackageVersionSourceKnown VulnsNotes
requests * pip No 无版本锁定
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 范围版本

Security Positives

✓ 代码结构清晰,使用类封装功能逻辑
✓ 无shell命令注入风险,未发现subprocess/shell调用
✓ 网络请求仅限于官方BILLING_API_URL(https://skillpay.me),无恶意IP连接
✓ 进化方案需人类审核确认后应用,体现安全设计