安全决策报告
kb_review
合法的知识库综述生成工具,存在文档覆盖不全和环境示例泄露基础设施IP的问题,但代码本身无恶意行为。
为什么得出这个结论
2/4 个维度触发 阻止
声明与实际能力
发现 3 项声明之外的能力或越权行为。
阻止
隐藏执行与外联
提取到 1 个高危 IOC 或外联信号。
通过
攻击链与高危发现
没有形成明确的恶意路径。
复核
依赖与供应链卫生
发现 2 项需要关注的依赖或供应链线索。
风险分是怎么被拉高的
阴影功能:admin 权限操作未声明 +10
token_is_site_admin、admin/users API、创建 system-config 仓库等操作在 SKILL.md 中未提及
供应链风险:无版本锁定 +5
requests、python-dotenv 使用 * 版本
信息泄露:硬编码 IP +5
env-example.txt 包含 43.134.182.170,可能暴露内网基础设施
最关键的证据
中危 文档欺骗
Admin 级别操作未在文档中声明
gitea_api.py 中的 token_is_site_admin()、/admin/users 和 /admin/users/{username}/repos API 调用,以及 system_config.py 创建 system-config 系统仓库管理用户/团队/权限数据,均未在 SKILL.md 中提及。
scripts/gitea_api.py:55 在 SKILL.md 的执行流程或权限说明中明确声明需要 Gitea admin token 以及会创建系统控制仓库。
低危 供应链
依赖包无版本锁定
requirements.txt 中的 requests 和 python-dotenv 未指定版本号,可能引入未知版本依赖。
requirements.txt:1 使用锁定版本:requests>=2.28.0, python-dotenv>=0.19.0
低危 敏感访问
环境示例文件包含硬编码 IP 地址
env-example.txt 中硬编码了 43.134.182.170 作为 GITEA_URL,可能泄露内网基础设施信息。
env-example.txt:1 将 IP 替换为占位符如 YOUR_GITEA_HOST,或使用 localhost/127.0.0.1
提示 权限提升
未声明的脚本执行能力
setup.sh 执行 pip install 和文件复制操作,但未在 SKILL.md 中声明。
setup.sh:1 如 skill 需要自动安装依赖,应在文档中说明。
声明能力 vs 实际能力
网络访问 阻止
声明 NONE
→ 推断 WRITE
gitea_api.py:51 使用 requests 库访问 Gitea API 环境变量 阻止
声明 NONE
→ 推断 READ
gitea_api.py:27 读取 GITEA_ADMIN_TOKEN 命令执行 阻止
声明 NONE
→ 推断 WRITE
setup.sh:2 pip install 和文件操作 可疑产物与外联
高危 IP 地址
43.134.182.170 env-example.txt:1
中危 外部 URL
http://43.134.182.170:3000 env-example.txt:1
依赖与供应链
| 包名 | 版本 | 来源 | 漏洞 | 备注 |
|---|---|---|---|---|
| requests | * | pip | 否 | 无版本锁定 |
| python-dotenv | * | pip | 否 | 无版本锁定 |
文件构成
14 个文件 · 714 行
Python 8 个文件 · 606 行Markdown 1 个文件 · 74 行JSON 1 个文件 · 18 行Text 2 个文件 · 7 行Shell 1 个文件 · 5 行JavaScript 1 个文件 · 4 行
需关注文件 · 3
scripts/gitea_api.py Admin 级别操作未在文档中声明
setup.sh 未声明的脚本执行能力
env-example.txt 环境示例文件包含硬编码 IP 地址 · 43.134.182.170 · http://43.134.182.170:3000
其他文件 · system_config.py · catalog.py · save_review.py · kb_schema.py · SKILL.md · generate_onboarding.py +3
安全亮点
代码结构清晰,无混淆、无 base64 编码执行
无凭证收割行为,admin token 仅用于 Gitea API 认证
无外部数据外泄,网络请求仅指向配置的 GITEA_URL
无文件系统的任意读写,仅操作指定的 KB 目录和 /tmp 草稿
所有文件操作均有错误处理和日志