安全决策报告
git-monitor
Git 项目监控工具,代码功能与文档声明基本一致,存在潜在命令注入风险但无主动恶意行为证据
为什么得出这个结论
0/4 个维度触发 通过
声明与实际能力
声明资源与推断能力基本一致。
复核
隐藏执行与外联
提取到 7 个一般风险产物,需要结合上下文判断。
通过
攻击链与高危发现
没有形成明确的恶意路径。
复核
依赖与供应链卫生
没有完整依赖信息,供应链判断需要保留弹性。
风险分是怎么被拉高的
潜在命令注入风险 +15
git函数拼接用户输入参数,建议使用数组形式
权限声明宽泛 +10
允许Bash/Read/Write但实际使用受限
最关键的证据
中危 代码执行
潜在命令注入风险
checkRepository函数中git命令使用字符串拼接方式构建参数,用户输入的仓库URL虽经parseRepoInput解析,但仍存在风险
helper.js:198 使用数组形式传参:execFileSync('git', args, {...}),避免shell解析
低危 供应链
无依赖版本锁定
package.json为空对象,无生产依赖但也无版本锁定策略
package.json:1 当前仅使用Node.js内置模块,风险可控
提示 敏感访问
读取飞书凭证
级联读取飞书凭证(环境变量/OpenClaw配置/本地config),凭证仅用于发送通知,未外传
helper.js:43 确认凭证用途符合预期
声明能力 vs 实际能力
文件系统 通过
声明 WRITE
→ 推断 WRITE
helper.js:19 读写config.json 命令执行 通过
声明 WRITE
→ 推断 WRITE
helper.js:198-201 execSync执行git命令 网络访问 通过
声明 READ
→ 推断 WRITE
helper.js:77-107 发送飞书通知 环境变量 通过
声明 READ
→ 推断 READ
helper.js:43-46 读取飞书凭证环境变量 技能调用 通过
声明 NONE
→ 推断 NONE
无子技能调用 可疑产物与外联
中危 外部 URL
https://gitee.com/mindspore/mindspore README.md:27
中危 外部 URL
https://open.feishu.cn/ README.md:64
中危 外部 URL
https://open.feishu.cn/open-apis/auth/v3/tenant_access_token/internal helper.js:105
中危 外部 URL
https://open.feishu.cn/open-apis/im/v1/messages helper.js:118
中危 外部 URL
https://gitlab.com helper.js:191
中危 外部 URL
https://gitee.com helper.js:192
中危 外部 URL
https://gitee.com/owner/repo helper.js:579
依赖与供应链
没有结构化依赖告警。
文件构成
8 个文件 · 1025 行
JavaScript 1 个文件 · 694 行Markdown 2 个文件 · 193 行Shell 1 个文件 · 87 行JSON 4 个文件 · 51 行
需关注文件 · 4
config.json helper.js 潜在命令注入风险 · 读取飞书凭证 · https://open.feishu.cn/open-apis/auth/v3/tenant_access_token/internal · https://open.feishu.cn/open-apis/im/v1/messages · https://gitlab.com · https://gitee.com · https://gitee.com/owner/repo
README.md https://gitee.com/mindspore/mindspore · https://open.feishu.cn/
package.json 无依赖版本锁定
其他文件 · SKILL.md · monitor.sh · config.local.json · _meta.json
安全亮点
功能与文档声明一致,无阴影功能
飞书通知使用官方API(open.feishu.cn),凭证用于通知而非外泄
Git仓库存储在专用目录~/.openclaw/workspace/repos/,与系统敏感目录隔离
配置文件存储在技能目录内,不在全局路径
无Base64编码、eval调用或混淆代码
无远程脚本下载或shell管道执行