agent-guardian
Agent Guardian 是合法的 AI 助手体验守护工具,但 apply-qqbot-patch.sh 通过 sed 注入 execSync 调用修改第三方插件存在代码执行风险,install.sh 以 root 部署 systemd 守护进程存在持久化风险。文档已知晓部分风险但 mitigation 不充分。
为什么得出这个结论
1/4 个维度触发声明资源与推断能力基本一致。
提取到 2 个一般风险产物,需要结合上下文判断。
报告包含 4 步攻击链,另有 1 项高危或严重发现。
发现 2 项需要关注的依赖或供应链线索。
攻击链
初始入口 · SKILL.md:1
权限提升 · scripts/install.sh:60
权限提升 · scripts/apply-qqbot-patch.sh:28
最终危害 · references/patches/qqbot.md:25
风险分是怎么被拉高的
通过 sed 向 gateway.ts/outbound.ts 注入 execSync 调用,执行 Python 脚本,存在通过 patch 链注入恶意代码的理论风险
systemd 服务以 User=root 运行,Restart=always,存在持久化风险
apply-qqbot-patch.sh 无 hash 校验,直接覆盖插件源文件
install.sh 中 pip3 install langdetect 未指定版本
/tmp 目录多进程共享,存在竞态条件信息泄露风险
最关键的证据
apply-qqbot-patch.sh 通过 sed 注入 execSync 修改第三方插件
patch 脚本使用 sed 将包含 execSync 的 TypeScript 代码注入到 gateway.ts/outbound.ts,虽然当前注入代码使用了 JSON.stringify 防护,但修改插件源码的行为本身存在通过 patch 链注入恶意代码的理论风险,且 patch 脚本无完整性校验
scripts/apply-qqbot-patch.sh:28 systemd 服务以 root 身份持久化运行
install.sh 创建的 systemd 服务以 User=root、Restart=always 运行,安装后持续存在于系统层面,不随 AI 会话结束而终止
scripts/install.sh:60 langdetect 依赖无版本锁定
install.sh 中 pip3 install langdetect 未指定版本,依赖 latest,可能引入供应链风险
scripts/install.sh:44 状态文件存于 /tmp 共享目录
/tmp 是多进程共享目录,/tmp/agent-work-state.json 等可能被其他进程读写或泄露信息
scripts/supervisor.sh:10 install.sh 需要 root 权限
install.sh 需要 root 权限来执行 systemctl、crontab、apt-get 等操作,文档中未明确说明
scripts/install.sh:1 声明能力 vs 实际能力
install.sh:写入配置到/tmp; apply-qqbot-patch.sh:覆盖插件ts文件 apply-qqbot-patch.sh:通过sed注入execSync到TypeScript; scripts/*.sh:使用subprocess调用 install.sh:配置systemd服务和crontab smart-status-report.sh:仅使用openclaw内部命令 无动态skill调用 无浏览器操作 无数据库操作 可疑产物与外联
https://clawhub.ai/user/fanxinyun1991 skill-card.md:9
https://clawhub.ai/fanxinyun1991/skills/agent-guardian skill-card.md:39
依赖与供应链
| 包名 | 版本 | 来源 | 漏洞 | 备注 |
|---|---|---|---|---|
| langdetect | * | pip | 否 | 无版本锁定,建议锁定为 1.0.9 |
| inotify-tools | * | apt | 否 | apt-get 安装,系统包风险低 |
文件构成
scripts/install.sh scripts/apply-qqbot-patch.sh scripts/supervisor.sh skill-card.md