扫描报告
20 /100
baton
Baton — AI orchestrator for OpenClaw. Routes every request to subagents. Never does work itself.
A legitimate OpenClaw AI orchestrator with no malicious behavior; the primary finding is that filesystem WRITE permissions are not declared in SKILL.md metadata despite the install script and task-manager performing file writes to ~/.openclaw.
可以安装
Add filesystem:WRITE to the declared permissions in SKILL.md metadata to align with the install script and task-manager file write operations.
安全发现 2 项
| 严重性 | 安全发现 | 位置 |
|---|---|---|
| 低危 | Filesystem WRITE not declared in permissions | SKILL.md:1 |
| 提示 | execSync runs openclaw CLI commands | scripts/probe-limits.js:87 |
| 资源类型 | 声明权限 | 推断权限 | 状态 | 证据 |
|---|---|---|---|---|
| 文件系统 | NONE | READ | ✓ 一致 | probe-limits.js reads openclaw.json, agents/<id>/agent/models.json; task-manager… |
| 文件系统 | NONE | WRITE | ✗ 越权 | install.sh writes BOOT.md and AGENTS.md; task-manager.js writes task/archive/tem… |
| 命令执行 | NONE | WRITE | ✓ 一致 | probe-limits.js line 87: execSync('openclaw models list --json'); install.sh lin… |
| 网络访问 | NONE | READ | ✓ 一致 | probe-limits.js probeProvider() makes HTTP GET to provider rate-limit APIs using… |
| 环境变量 | READ | READ | ✓ 一致 | resolveApiKey() reads env vars for API keys, used only for provider limit querie… |
目录结构
13 文件 · 79.2 KB · 1963 行 JavaScript 2f · 1103L
Markdown 8f · 701L
Shell 1f · 118L
JSON 2f · 41L
├─
▾
references
│ ├─
model-profiles.md
Markdown
│ ├─
onboarding-guide.md
Markdown
│ ├─
orchestration.md
Markdown
│ ├─
resilience.md
Markdown
│ ├─
task-schema.md
Markdown
│ └─
task-types.md
Markdown
├─
▾
scripts
│ ├─
install.sh
Shell
│ ├─
probe-limits.js
JavaScript
│ ├─
provider-probes.json
JSON
│ └─
task-manager.js
JavaScript
├─
BOOT.md
Markdown
├─
package.json
JSON
└─
SKILL.md
Markdown
安全亮点
✓ API keys are resolved from environment or config and used only for provider rate-limit API queries — never exfiltrated
✓ Comprehensive output sanitisation (sanitiseOutput) redacts apiKey, token, secret, password fields before any stdout output
✓ Consent flow in BOOT.md step 2 requires user approval before any config scanning or script execution
✓ No base64 decoding, no eval(), no reverse shells, no direct IP exfiltration
✓ All filesystem writes are scoped to ~/.openclaw/ which is the intended state directory for this orchestrator
✓ No access to ~/.ssh, ~/.aws, .env, or other sensitive credential paths
✓ No hidden functionality — all scripts are documented, readable, and their purposes are clear
✓ Data-driven probe configuration via provider-probes.json — no hardcoded API endpoints or values