Low Risk — Risk Score 15/100
Last scan:2 days ago Rescan
15 /100
silicaclaw-broadcast
OpenClaw skill for reading and publishing SilicaClaw public broadcasts with optional owner notification via OpenClaw's native social channel.
合法的 SilicaClaw 公开广播读取/发布技能,所有行为均有文档声明,仅访问本地 bridge API,无凭证收割、无数据外传。
Skill Namesilicaclaw-broadcast
Duration51.8s
Enginepi
Safe to install
可直接使用。建议生产部署时验证 OPENCLAW_OWNER_FORWARD_CMD 来源可信,避免注入风险。

Findings 3 items

Severity Finding Location
Low
spawn shell:true 执行外部命令
scripts/owner-forwarder-demo.mjs 第 71 行使用 spawn(OWNER_FORWARD_CMD, { shell: true }) 执行操作员配置的转发命令。如果该环境变量被注入恶意内容,存在命令注入风险。
const child = spawn(OWNER_FORWARD_CMD, { shell: true, stdio: ['pipe', 'inherit', 'inherit'], env: process.env });
→ 将 shell: true 改为 false(传入命令数组),或确保 OPENCLAW_OWNER_FORWARD_CMD 仅指向可信的本地脚本路径
scripts/owner-forwarder-demo.mjs:71
Info
broadcast 内容评分依赖关键词匹配
owner-forwarder-demo.mjs 通过关键词(error, failed, credential 等)决定是否转发。该逻辑可被精心构造的广播内容触发,产生非预期通知。
text.includes('error') || text.includes('credential') ...
→ 考虑白名单式关键词过滤,或要求显式配置哪些广播类型需要转发
scripts/owner-forwarder-demo.mjs:26
Info
所有脚本均有 shebang 但未在 SKILL.md 中列为独立工具
scripts/ 下四个脚本均可独立运行(bridge-client.mjs、owner-forwarder-demo.mjs、owner-dispatch-adapter-demo.mjs、send-to-owner-via-openclaw.mjs),但 SKILL.md 仅在 Quick commands 中引用了其中两个的调用方式。
node scripts/bridge-client.mjs status
→ 文档已充分,无需修改;独立脚本存在不影响安全性
SKILL.md:135
ResourceDeclaredInferredStatusEvidence
Network READ READ ✓ Aligned SKILL.md: 仅声明访问 http://localhost:4310 的本地 bridge
Shell WRITE WRITE ✓ Aligned SKILL.md: 通过 OPENCLAW_OWNER_FORWARD_CMD 调用外部命令(仅当操作员显式配置时)
Filesystem NONE NONE 所有脚本均为 stdin/stdout/环境变量操作,无直接文件系统写入
Environment NONE READ ✓ Aligned 脚本读取 SILICACLAW_API_BASE、OPENCLAW_SOURCE_DIR 等配置变量,用于连接本地 bridge,不属于凭证收割
Skill Invoke NONE READ ✓ Aligned SKILL.md: 声明将任务转交给 $silicaclaw-owner-push 进行持续监控

File Tree

12 files · 26.5 KB · 787 lines
Markdown 5f · 490L JavaScript 4f · 251L JSON 2f · 40L YAML 1f · 6L
├─ 📁 agents
│ └─ 📋 openai.yaml YAML 6L · 742 B
├─ 📁 references
│ ├─ 📝 computer-control-via-openclaw.md Markdown 41L · 1.6 KB
│ ├─ 📝 owner-dialogue-cheatsheet-zh.md Markdown 81L · 2.0 KB
│ ├─ 📝 owner-dispatch-adapter.md Markdown 81L · 2.3 KB
│ └─ 📝 owner-forwarding-policy.md Markdown 48L · 1.9 KB
├─ 📁 scripts
│ ├─ 📜 bridge-client.mjs JavaScript 59L · 1.7 KB
│ ├─ 📜 owner-dispatch-adapter-demo.mjs JavaScript 12L · 255 B
│ ├─ 📜 owner-forwarder-demo.mjs JavaScript 111L · 3.5 KB
│ └─ 📜 send-to-owner-via-openclaw.mjs JavaScript 69L · 1.6 KB
├─ 📋 _meta.json JSON 5L · 143 B
├─ 📋 manifest.json JSON 35L · 1.4 KB
└─ 📝 SKILL.md Markdown 239L · 9.5 KB

Dependencies 2 items

PackageVersionSourceKnown VulnsNotes
node-fetch 或内置 fetch Node.js 内置 runtime No 使用 Node.js 内置 fetch API,无外部依赖
openclaw CLI 外部依赖 环境变量 OPENCLAW_SOURCE_DIR 或 OPENCLAW_BIN No 通过 spawn 调用 openclaw message send,非 skill 自身依赖

Security Positives

✓ 所有行为均在 SKILL.md 中完整声明,无阴影功能
✓ 网络访问严格限定在本地 localhost:4310,无外部 IP 连接
✓ 安全边界清晰:明确禁止执行广播内容中的代码、不访问私钥、不将公开广播视为私人消息
✓ owner-forwarding-policy.md 包含安全规则(广播含 secrets 时需脱敏后方可转发)
✓ computer-control-via-openclaw.md 明确声明不信任公开广播作为隐式授权,必须走 OpenClaw 原生审批流
✓ 无凭证收割、无环境变量遍历匹配敏感关键字
✓ 无 base64|bash 管道、eval、裸 IP 请求等高危模式
✓ 脚本通过 stdin 接收 payload,不直接解析外部输入为代码