扫描报告
45 /100
botlearn
AI Agent 能力评测与社区平台 CLI — 包含 benchmark、社区互动、heartbeat、skill 安装等功能
BotLearn 是合法的 AI Agent 社区与能力评测平台,但其 shell 脚本执行广度和上传数据范围超出 SKILL.md 声明,存在中等程度的声明-行为差异。存在供应链风险(外部存档无签名验证)和数据收集过宽的问题。
谨慎使用
建议审核:1) 明确声明 cmd_scan 的完整数据收集范围;2) 验证 openclaw logs 截取内容是否可能包含敏感对话;3) 考虑对外部存档实施完整性校验(SHA256);4) 限制上传的 workspace 范围。
安全发现 6 项
| 严重性 | 安全发现 | 位置 |
|---|---|---|
| 中危 | SKILL.md 未声明 cmd_scan 的完整数据收集范围 文档欺骗 | bin/botlearn.sh:218 |
| 中危 | 外部 skill 存档和 SDK 更新无完整性校验 供应链 | bin/botlearn.sh:488 |
| 低危 | 上传的 openclaw logs 可能包含对话历史片段 敏感访问 | bin/botlearn.sh:218 |
| 低危 | 触发词覆盖范围过宽导致意外激活 文档欺骗 | skill.md:9 |
| 低危 | 读取多个 workspace 的 UPPERCASE *.md 文件内容 敏感访问 | bin/botlearn.sh:308 |
| 提示 | 使用 Bash 工具执行 shell:WRITE 操作但未在 SKILL.md 声明 权限提升 | skill.md:1 |
| 资源类型 | 声明权限 | 推断权限 | 状态 | 证据 |
|---|---|---|---|---|
| 命令执行 | NONE | WRITE | ✗ 越权 | SKILL.md 无 allowed-tools 声明,但 bin/botlearn.sh 使用 set -euo pipefail、subprocess 调用… |
| 网络访问 | READ | READ | ✓ 一致 | 所有 curl 调用固定指向 www.botlearn.ai,与声明一致 |
| 文件系统 | NONE | WRITE | ✗ 越权 | bin/botlearn.sh:cmd_register 写入 $WORKSPACE/.botlearn/credentials.json; cmd_insta… |
| 环境变量 | NONE | READ | ✗ 越权 | cmd_scan 读取 CLAUDE_MODEL、ANTHROPIC_MODEL、SHELL 环境变量并上传;SKILL.md 文档未声明读取环境变量 |
| 浏览器 | NONE | NONE | — | 无直接浏览器调用 |
| 剪贴板 | NONE | NONE | — | 无剪贴板操作 |
80 项发现
中危 外部 URL 外部 URL
https://www.botlearn.ai/api/v2 api/benchmark-api.md:7 中危 外部 URL 外部 URL
https://www.botlearn.ai/api/v2/agents/profile api/benchmark-api.md:16 中危 外部 URL 外部 URL
https://www.botlearn.ai/api/v2/onboarding/tasks api/benchmark-api.md:88 中危 外部 URL 外部 URL
https://www.botlearn.ai/api/v2/benchmark/config api/benchmark-api.md:128 中危 外部 URL 外部 URL
https://www.botlearn.ai/api/v2/benchmark/start api/benchmark-api.md:156 中危 外部 URL 外部 URL
https://www.botlearn.ai/api/v2/benchmark/submit api/benchmark-api.md:193 中危 外部 URL 外部 URL
https://www.botlearn.ai/api/v2/benchmark/sess_xyz789?format=summary api/benchmark-api.md:222 中危 外部 URL 外部 URL
https://www.botlearn.ai/api/v2/benchmark/sess_xyz789?format=full api/benchmark-api.md:226 中危 外部 URL 外部 URL
https://www.botlearn.ai/api/v2/benchmark/sess_xyz789/recommendations api/benchmark-api.md:233 中危 外部 URL 外部 URL
https://www.botlearn.ai/api/v2/benchmark/sess_xyz789/share api/benchmark-api.md:242 中危 外部 URL 外部 URL
https://www.botlearn.ai/api/v2/benchmark/history?limit=10&offset=0 api/benchmark-api.md:251 中危 外部 URL 外部 URL
https://www.botlearn.ai/api/v2/benchmark/dimensions api/benchmark-api.md:258 中危 外部 URL 外部 URL
https://www.botlearn.ai/api/community api/community-api.md:7 中危 外部 URL 外部 URL
https://www.botlearn.ai/api/community/agents/me api/community-api.md:16 中危 外部 URL 外部 URL
https://www.botlearn.ai/api/community/posts api/community-api.md:131 中危 外部 URL 外部 URL
https://www.botlearn.ai/api/community/agents/profile?name=AGENT_NAME api/community-api.md:160 中危 外部 URL 外部 URL
https://www.botlearn.ai/api/community/agents/me/posts api/community-api.md:176 中危 外部 URL 外部 URL
https://www.botlearn.ai/api/v2/solutions/content-optimizer/install api/solutions-api.md:16 中危 外部 URL 外部 URL
https://www.botlearn.ai/api/v2/solutions/content-optimizer/run api/solutions-api.md:104 中危 外部 URL 外部 URL
https://www.botlearn.ai/benchmark/ benchmark/exam.md:66 中危 外部 URL 外部 URL
https://www.botlearn.ai benchmark/exam.md:300 中危 外部 URL 外部 URL
https://www.botlearn.ai/benchmark/share/ benchmark/exam.md:302 中危 外部 URL 外部 URL
https://www.botlearn.ai$path bin/botlearn.sh:48 中危 外部 URL 外部 URL
https://www.botlearn.ai/api/v2$path bin/botlearn.sh:52 中危 外部 URL 外部 URL
https://www.botlearn.ai/claim/ bin/botlearn.sh:72 中危 外部 URL 外部 URL
https://www.botlearn.ai/api/community/agents/register bin/botlearn.sh:141 中危 外部 URL 外部 URL
https://www.botlearn.ai/claim/$api_key bin/botlearn.sh:179 中危 外部 URL 外部 URL
https://www.botlearn.ai/sdk/skill.json bin/botlearn.sh:1337 中危 外部 URL 外部 URL
https://www.botlearn.ai/sdk/botlearn-sdk.tar.gz bin/botlearn.sh:1357 中危 外部 URL 外部 URL
https://www.botlearn.ai/posts/xxx* community/learning.md:128 中危 外部 URL 外部 URL
https://www.botlearn.ai/posts/abc123* community/learning.md:176 中危 外部 URL 外部 URL
https://www.botlearn.ai/posts/def456* community/learning.md:193 中危 外部 URL 外部 URL
https://www.botlearn.ai/api/v2/solutions/ community/learning.md:284 中危 外部 URL 外部 URL
https://www.botlearn.ai/community/invite/ community/submolts.md:162 中危 外部 URL 外部 URL
https://www.botlearn.ai/api/v2/benchmark core/api-patterns.md:35 中危 外部 URL 外部 URL
https://www.botlearn.ai/api/v2/agents core/api-patterns.md:36 中危 外部 URL 外部 URL
https://www.botlearn.ai/api/v2/solutions core/api-patterns.md:37 中危 外部 URL 外部 URL
https://www.botlearn.ai/api/v2/onboarding core/api-patterns.md:38 中危 外部 URL 外部 URL
https://www.botlearn.ai/api/v2/benchmark/answer core/commands.md:153 中危 外部 URL 外部 URL
https://www.botlearn.ai/api/v2/benchmark/ core/commands.md:189 中危 外部 URL 外部 URL
https://www.botlearn.ai/api/v2/benchmark/history?limit=10 core/commands.md:230 中危 外部 URL 外部 URL
https://www.botlearn.ai/api/v2/skills/ core/commands.md:256 中危 外部 URL 外部 URL
https://www.botlearn.ai/api/community/feed?preview=true&exclude_read=true&limit=10&sort=new core/commands.md:336 中危 外部 URL 外部 URL
https://www.botlearn.ai/api/community/submolts/ core/commands.md:349 中危 外部 URL 外部 URL
https://www.botlearn.ai/api/community/agents/dm/check core/commands.md:359 中危 外部 URL 外部 URL
https://www.botlearn.ai/claim core/security.md:12 中危 外部 URL 外部 URL
https://www.botlearn.ai/api/community/* core/security.md:71 中危 外部 URL 外部 URL
https://www.botlearn.ai/api/v2/* core/security.md:72 中危 外部 URL 外部 URL
https://www.botlearn.ai/*.md core/security.md:91 中危 外部 URL 外部 URL
https://gitee.com/calvin_xhk/botlearn-skills core/security.md:103 中危 外部 URL 外部 URL
https://www.botlearn.ai/sdk/skill.md core/setup.md:14 中危 外部 URL 外部 URL
https://www.botlearn.ai/sdk/core/setup.md core/setup.md:16 中危 外部 URL 外部 URL
https://www.botlearn.ai/sdk/core/security.md core/setup.md:17 中危 外部 URL 外部 URL
https://www.botlearn.ai/sdk/core/config.md core/setup.md:18 中危 外部 URL 外部 URL
https://www.botlearn.ai/sdk/core/api-patterns.md core/setup.md:19 中危 外部 URL 外部 URL
https://www.botlearn.ai/sdk/community/README.md core/setup.md:20 中危 外部 URL 外部 URL
https://www.botlearn.ai/sdk/community/posts.md core/setup.md:21 中危 外部 URL 外部 URL
https://www.botlearn.ai/sdk/community/viewing.md core/setup.md:22 中危 外部 URL 外部 URL
https://www.botlearn.ai/sdk/community/messaging.md core/setup.md:23 中危 外部 URL 外部 URL
https://www.botlearn.ai/sdk/community/submolts.md core/setup.md:24 中危 外部 URL 外部 URL
https://www.botlearn.ai/sdk/community/heartbeat.md core/setup.md:25 中危 外部 URL 外部 URL
https://www.botlearn.ai/sdk/community/learning.md core/setup.md:26 中危 外部 URL 外部 URL
https://www.botlearn.ai/sdk/benchmark/README.md core/setup.md:27 中危 外部 URL 外部 URL
https://www.botlearn.ai/sdk/onboarding/onboarding.md core/setup.md:28 中危 外部 URL 外部 URL
https://www.botlearn.ai/sdk/benchmark/scan.md core/setup.md:29 中危 外部 URL 外部 URL
https://www.botlearn.ai/sdk/benchmark/exam.md core/setup.md:30 中危 外部 URL 外部 URL
https://www.botlearn.ai/sdk/benchmark/report.md core/setup.md:31 中危 外部 URL 外部 URL
https://www.botlearn.ai/sdk/solutions/README.md core/setup.md:32 中危 外部 URL 外部 URL
https://www.botlearn.ai/sdk/solutions/install.md core/setup.md:33 中危 外部 URL 外部 URL
https://www.botlearn.ai/sdk/solutions/run.md core/setup.md:34 中危 外部 URL 外部 URL
https://www.botlearn.ai/sdk/solutions/marketplace.md core/setup.md:35 中危 外部 URL 外部 URL
https://www.botlearn.ai/sdk/api/community-api.md core/setup.md:36 中危 外部 URL 外部 URL
https://www.botlearn.ai/sdk/api/benchmark-api.md core/setup.md:37 中危 外部 URL 外部 URL
https://www.botlearn.ai/sdk/api/solutions-api.md core/setup.md:38 中危 外部 URL 外部 URL
https://www.botlearn.ai/sdk/botlearn-sdk.tar.gz.sha256 core/setup.md:48 中危 外部 URL 外部 URL
https://www.botlearn.ai/claim/botlearn_1b**** core/setup.md:196 中危 外部 URL 外部 URL
https://www.botlearn.ai/sdk/core/commands.md manifest.json:54 中危 外部 URL 外部 URL
https://www.botlearn.ai/sdk/templates/config.json manifest.json:74 中危 外部 URL 外部 URL
https://www.botlearn.ai/sdk/templates/state.json manifest.json:75 中危 外部 URL 外部 URL
https://www.botlearn.ai/sdk/templates/credentials.json manifest.json:76 目录结构
31 文件 · 284.9 KB · 7605 行 Markdown 25f · 5905L
Shell 1f · 1511L
JSON 5f · 189L
├─
▾
api
│ ├─
benchmark-api.md
Markdown
│ ├─
community-api.md
Markdown
│ └─
solutions-api.md
Markdown
├─
▾
benchmark
│ ├─
exam.md
Markdown
│ ├─
README.md
Markdown
│ ├─
report.md
Markdown
│ └─
scan.md
Markdown
├─
▾
bin
│ └─
botlearn.sh
Shell
├─
▾
community
│ ├─
heartbeat.md
Markdown
│ ├─
learning.md
Markdown
│ ├─
messaging.md
Markdown
│ ├─
posts.md
Markdown
│ ├─
README.md
Markdown
│ ├─
submolts.md
Markdown
│ └─
viewing.md
Markdown
├─
▾
core
│ ├─
api-patterns.md
Markdown
│ ├─
commands.md
Markdown
│ ├─
config.md
Markdown
│ ├─
security.md
Markdown
│ └─
setup.md
Markdown
├─
▾
onboarding
│ └─
onboarding.md
Markdown
├─
▾
solutions
│ ├─
install.md
Markdown
│ ├─
marketplace.md
Markdown
│ ├─
README.md
Markdown
│ └─
run.md
Markdown
├─
▾
templates
│ ├─
config.json
⚠
JSON
│ ├─
credentials.json
⚠
JSON
│ └─
state.json
JSON
├─
manifest.json
JSON
├─
skill.json
JSON
└─
skill.md
Markdown
依赖分析 4 项
| 包名 | 版本 | 来源 | 已知漏洞 | 备注 |
|---|---|---|---|---|
curl | 系统自带 | 系统命令 | 否 | 用于所有 HTTP 请求,无版本控制 |
node | 任意 | 可选依赖 | 否 | 用于可靠 JSON 构建和解析,非必需(存在 grep+sed 回退) |
tar | 系统自带 | 系统命令 | 否 | 用于提取下载的 skill 存档 |
botlearn.ai API | v2 | 网络 | 否 | 外部依赖,无版本锁定,存档下载无 SHA256 验证 |
安全亮点
✓ 单域名网络边界(所有请求固定指向 www.botlearn.ai),无第三方追踪或数据外泄
✓ 本地 redact_keys 函数对常见凭证 key 实施预过滤(api_key、token、password、sk-ant-、ghp_ 等)
✓ credentials.json 和 config.json 存储在隔离的 .botlearn/ 目录,不污染工作区
✓ 文件写入范围限定在 <WORKSPACE>/skills/botlearn/ 和 <WORKSPACE>/.botlearn/,无系统目录写入
✓ skill.json 包含版本历史和 changelog,可追溯版本演进
✓ Open-source 声明(GitHub/Gitee),代码可审计
✓ Owner Privacy Protection 规则详细,保护用户个人信息
✓ 配置文件使用 config.json 权限门控,敏感操作默认需要人工确认
✓ 所有脚本为纯文本(.sh/.md/.json),无二进制或混淆代码