Low Risk — Risk Score 15/100
Last scan:2 days ago Rescan
15 /100
daily-movie
每日影视推荐
合法的影视推荐技能,代码无恶意行为,存在轻微的未声明文件系统访问(用于存储用户推送配置)
Skill Namedaily-movie
Duration28.2s
Enginepi
Safe to install
建议在 SKILL.md 中补充声明 data/users/ 目录的文件系统访问权限,以符合规范

Findings 1 items

Severity Finding Location
Low
未声明的文件系统访问
push-toggle.js 需要读写 data/users/ 目录以存储用户推送配置(开启/关闭状态、时间、渠道),但 SKILL.md 未声明此 filesystem 权限。功能上合理但规范上违规。
fs.writeFileSync(safeUserPath(userId),JSON.stringify(d,null,2),'utf8')
→ 在 SKILL.md 的 allowed-tools 中声明 filesystem:READ/WRITE,或将用户配置迁移至 skill metadata 机制
scripts/push-toggle.js:27
ResourceDeclaredInferredStatusEvidence
Filesystem NONE WRITE ✗ Violation scripts/push-toggle.js:27 fs.writeFileSync写入用户配置到data/users/
Shell NONE NONE 无subprocess/exec调用
Network NONE NONE 无HTTP请求代码
1 findings
🔗
Medium External URL 外部 URL
https://openclaw.ai
README.md:5

File Tree

7 files · 10.1 KB · 225 lines
Markdown 2f · 125L JavaScript 3f · 85L JSON 2f · 15L
├─ 📁 scripts
│ ├─ 📜 evening-push.js JavaScript 18L · 1.4 KB
│ ├─ 📜 morning-push.js JavaScript 18L · 1.5 KB
│ └─ 📜 push-toggle.js JavaScript 49L · 3.5 KB
├─ 📋 _meta.json JSON 7L · 137 B
├─ 📋 package.json JSON 8L · 165 B
├─ 📝 README.md Markdown 52L · 1.5 KB
└─ 📝 SKILL.md Markdown 73L · 1.8 KB

Security Positives

✓ 用户 ID 输入有严格的正则验证 /^\[a-zA-Z0-9_-\]{1,128}$/
✓ 实现了目录遍历防护 safeUserPath() 确保文件操作在 data/users/ 内
✓ 时间参数有格式校验(HH:MM,小时 0-23,分钟 0-59)
✓ 渠道白名单控制(telegram/feishu/slack/discord)
✓ 无 shell 执行、无网络请求、无敏感路径访问
✓ 无凭证收割、无数据外传、无恶意编码模式