Scan Report
5 /100
openclaw-manager
OpenClaw-native local control plane skill with shadow-first thread observation, durable state, and loopback-only sidecar
OpenClaw Manager 是一个设计良好的本地控制平面技能,具有多层安全防护机制(loopback-only sidecar、consent-gated autostart、受限进程启动),文档与代码行为一致,未发现恶意行为或可疑阴影功能。
Safe to install
该技能可安全使用。建议在生产环境中遵循 SECURITY.md 的配置指导,特别是 loopback-only sidecar 绑定和显式 consent 配置。
Findings 2 items
| Severity | Finding | Location |
|---|---|---|
| Info | 依赖版本范围锁定 Supply Chain | package.json:29 |
| Info | 文档与代码一致性良好 Doc Mismatch | SKILL.md:1 |
| Resource | Declared | Inferred | Status | Evidence |
|---|---|---|---|---|
| Filesystem | WRITE | WRITE | ✓ Aligned | src/storage/fs-store.ts:22-80 - 本地状态管理,路径默认 ~/.openclaw/skills/manager/,符合 SKILL… |
| Network | READ | READ | ✓ Aligned | src/skill/sidecar-health.ts:4-8 - 仅访问 loopback 健康检查端点;src/skill/local-config.ts:… |
| Shell | NONE | WRITE | ✓ Aligned | src/skill/sidecar-launcher.ts:18-25 - 使用 spawn() 且 shell:false,仅执行已知本地入口点,SECURI… |
| Environment | READ | READ | ✓ Aligned | src/skill/local-config.ts - 仅读取 OPENCLAW_MANAGER_* 前缀的环境变量,无敏感凭证遍历 |
| Skill Invoke | WRITE | WRITE | ✓ Aligned | src/skill/bootstrap.ts - bootstrapManagerRuntime() 和 ensureSidecarRunning() 协调本地… |
| Clipboard | NONE | NONE | — | 未发现剪贴板访问代码 |
| Browser | NONE | NONE | — | 未发现浏览器自动化代码 |
| Database | NONE | NONE | — | 使用文件系统 JSON 存储而非数据库 |
6 findings
Medium External URL 外部 URL
http://127.0.0.1:4318 README.md:113 Medium External URL 外部 URL
http://127.0.0.1:4318/health README.md:378 Medium External URL 外部 URL
http://127.0.0.1: SECURITY.md:36 Medium External URL 外部 URL
https://opencollective.com/express package-lock.json:598 Medium External URL 外部 URL
https://json-schema.org/draft/2020-12/schema schemas/capability-fact.schema.json:2 Medium External URL 外部 URL
http://127.0.0.1:45218 scripts/security-smoke.cjs:39 File Tree
63 files · 232.2 KB · 7061 lines TypeScript 37f · 4057L
JSON 8f · 1652L
Markdown 13f · 894L
JavaScript 2f · 323L
Shell 1f · 103L
YAML 2f · 32L
├─
▾
agents
│ └─
openai.yaml
YAML
├─
▾
docs
│ ├─
architecture.md
Markdown
│ ├─
capability-facts.md
Markdown
│ ├─
connector-protocol.md
Markdown
│ ├─
event-schema.md
Markdown
│ ├─
security-audit-response.md
Markdown
│ └─
session-model.md
Markdown
├─
▾
schemas
│ ├─
capability-fact.schema.json
JSON
│ ├─
event.schema.json
JSON
│ ├─
run.schema.json
JSON
│ ├─
session.schema.json
JSON
│ └─
skill-trace.schema.json
JSON
├─
▾
scripts
│ ├─
install.sh
Shell
│ ├─
security-smoke.cjs
JavaScript
│ └─
smoke-test.cjs
JavaScript
├─
▾
src
│ ├─
▾
api
│ │ ├─
health.ts
TypeScript
│ │ ├─
inbound.ts
TypeScript
│ │ └─
server.ts
TypeScript
│ ├─
▾
connectors
│ │ ├─
base.ts
TypeScript
│ │ ├─
email.ts
TypeScript
│ │ ├─
github.ts
TypeScript
│ │ ├─
registry.ts
TypeScript
│ │ ├─
telegram.ts
TypeScript
│ │ └─
wecom.ts
TypeScript
│ ├─
▾
control-plane
│ │ ├─
attention-service.ts
TypeScript
│ │ ├─
binding-service.ts
TypeScript
│ │ ├─
checkpoint-service.ts
TypeScript
│ │ ├─
event-service.ts
TypeScript
│ │ ├─
run-service.ts
TypeScript
│ │ ├─
session-service.ts
TypeScript
│ │ ├─
shadow-classifier.ts
TypeScript
│ │ ├─
shadow-service.ts
TypeScript
│ │ ├─
share-service.ts
TypeScript
│ │ └─
spool-service.ts
TypeScript
│ ├─
▾
exporters
│ │ ├─
markdown-report.ts
TypeScript
│ │ └─
snapshot-html.ts
TypeScript
│ ├─
▾
skill
│ │ ├─
autostart-consent.ts
TypeScript
│ │ ├─
bootstrap.ts
TypeScript
│ │ ├─
commands.ts
TypeScript
│ │ ├─
hooks.ts
TypeScript
│ │ ├─
local-config.ts
TypeScript
│ │ ├─
sidecar-health.ts
TypeScript
│ │ └─
sidecar-launcher.ts
TypeScript
│ ├─
▾
storage
│ │ ├─
fs-store.ts
TypeScript
│ │ ├─
indexes.ts
TypeScript
│ │ └─
locks.ts
TypeScript
│ ├─
▾
telemetry
│ │ ├─
capability-facts.ts
TypeScript
│ │ ├─
capability-graph.ts
TypeScript
│ │ ├─
closure-metrics.ts
TypeScript
│ │ ├─
scenario-tagging.ts
TypeScript
│ │ └─
skill-trace.ts
TypeScript
│ └─
types.ts
TypeScript
├─
▾
templates
│ ├─
capability-report.md
Markdown
│ ├─
focus-digest.md
Markdown
│ └─
session-summary.md
Markdown
├─
AGENTS.md
Markdown
├─
package-lock.json
JSON
├─
package.json
JSON
├─
README.md
Markdown
├─
SECURITY.md
Markdown
├─
SKILL.md
Markdown
├─
skill.yaml
YAML
└─
tsconfig.json
JSON
Dependencies 3 items
| Package | Version | Source | Known Vulns | Notes |
|---|---|---|---|---|
express | ^5.1.0 | npm | No | 成熟项目,版本范围风险低 |
tsx | ^4.20.5 | npm devDependencies | No | 仅开发时使用 |
typescript | ^5.9.2 | npm devDependencies | No | 仅开发时使用 |
Security Positives
✓ consent-gated autostart - 必须用户显式授权才能自动启动 sidecar
✓ loopback-only 默认绑定 - sidecar 绑定到 127.0.0.1,默认拒绝非 loopback URL
✓ shell: false 受限进程启动 - sidecar-launcher.ts 使用 spawn() 且 shell:false,仅执行已知入口点
✓ 环境变量白名单 - 仅读取 OPENCLAW_MANAGER_* 前缀的配置变量,不遍历 os.environ 收割凭证
✓ SECURITY.md 完整 - 详细说明网络行为、本地状态处理、autostart consent 机制
✓ security-smoke.cjs 测试 - 验证 loopback-only 约束、consent 默认值、远程 URL 拒绝等安全策略
✓ install.sh 脚本安全检查 - 检查 npm registry 配置是否指向官方源,防止供应链投毒
✓ Connector 代码无主动外联 - connector 仅规范化消息,不发起外部 HTTP 请求(除非用户配置)
✓ 数据本地化 - session/event/skill-trace 等数据存储在 ~/.openclaw/skills/manager/,不上传
✓ 红acted 导出 - snapshot 和 capability exports 默认脱敏