Low Risk — Risk Score 15/100
Last scan:11 hr ago Rescan
15 /100
self-backup
备份和恢复 OpenClaw agent 配置、技能、记忆和工作区文件
备份工具功能正常,代码简洁无恶意行为,restore.py的tar.extractall是预期操作(有预备份保护),存在轻微声明遗漏(投资文档)。
Skill Nameself-backup
Duration45.6s
Enginepi
Safe to install
可安全使用。建议在SKILL.md中补充投资文档路径声明。

Findings 3 items

Severity Finding Location
Low
未声明的投资文档备份 Doc Mismatch
SKILL.md列出的备份路径中未包含workspace下的投资文档(investment_plan_FINAL_v6.md等),但backup.py实际备份了这些文件
".openclaw/workspace/investment_plan_FINAL_v6.md",
→ 在SKILL.md的备份路径表中添加投资文档路径
scripts/backup.py:39
Info
备份敏感凭证路径 Sensitive Access
backup.py会备份.env、credentials/、identity/等敏感路径,这是备份工具的预期行为,代码仅本地存储未外传
".openclaw/credentials",
    ".openclaw/identity",
→ 确认备份文件存储位置安全,定期清理旧备份
scripts/backup.py:36
Info
restore.py使用tar.extractall RCE
restore.py使用tar.extractall(HOME)覆盖HOME目录,存在路径遍历风险。但实现中有预备份机制缓解风险,且这是备份恢复工具的预期操作
tar.extractall(HOME)
→ 建议增加tar成员名路径验证,防止路径遍历攻击
scripts/restore.py:48
ResourceDeclaredInferredStatusEvidence
Filesystem READ READ ✓ Aligned backup.py:39-43 tar.add()

File Tree

3 files · 10.1 KB · 331 lines
Python 2f · 232L Markdown 1f · 99L
├─ 📁 scripts
│ ├─ 🐍 backup.py Python 158L · 4.9 KB
│ └─ 🐍 restore.py Python 74L · 2.5 KB
└─ 📝 SKILL.md Markdown 99L · 2.8 KB

Security Positives

✓ 代码简洁,仅使用Python标准库,无第三方依赖引入风险
✓ 无网络请求,无数据外泄行为
✓ 无base64、eval等混淆或代码执行手段
✓ 备份前会创建预备份保护现有状态
✓ 有清理机制,保留最近6个备份
✓ 使用symlink维护latest版本便于管理
✓ 代码可读性高,注释清晰