安全决策报告

git-monitor

Git 项目监控工具,代码功能与文档声明基本一致,存在潜在命令注入风险但无主动恶意行为证据

安装决策优先 来源: ClawHub 扫描时间: 2026/4/6
文件 8
IOC 7
越权项 0
发现 3

为什么得出这个结论

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 JSON · 31 行
helper.js JavaScript · 694 行
潜在命令注入风险 · 读取飞书凭证 · 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 Markdown · 64 行
https://gitee.com/mindspore/mindspore · https://open.feishu.cn/
package.json JSON · 6 行
无依赖版本锁定
其他文件 · SKILL.md · monitor.sh · config.local.json · _meta.json

安全亮点

功能与文档声明一致,无阴影功能
飞书通知使用官方API(open.feishu.cn),凭证用于通知而非外泄
Git仓库存储在专用目录~/.openclaw/workspace/repos/,与系统敏感目录隔离
配置文件存储在技能目录内,不在全局路径
无Base64编码、eval调用或混淆代码
无远程脚本下载或shell管道执行