silicaclaw-owner-push
SKILL.md 声明「不执行任意代码」,但代码通过 OPENCLAW_OWNER_FORWARD_CMD 环境变量支持 shell 执行,存在文档-行为差异(阴影功能)
为什么得出这个结论
1/4 个维度触发发现 2 项声明之外的能力或越权行为。
当前没有明显的高危外联或执行信号。
没有形成明确的恶意路径。
没有完整依赖信息,供应链判断需要保留弹性。
风险分是怎么被拉高的
SKILL.md 声明「不执行任意代码 from broadcasts」,但代码支持通过 OPENCLAW_OWNER_FORWARD_CMD 执行 shell 命令
代码读写状态文件 ~/.openclaw/workspace/state/silicaclaw-owner-push.json,SKILL.md 未提及持久化存储
owner-push-forwarder.mjs 使用 spawn()、send-to-owner-via-openclaw.mjs 使用 spawnSync(),均未在 SKILL.md 声明
最关键的证据
SKILL.md 安全边界声明不完整
SKILL.md 声明「will not execute arbitrary code from broadcasts」,但代码实现了通过 OPENCLAW_OWNER_FORWARD_CMD 环境变量执行任意 shell 命令的能力。这是文档-行为差异(shadow capability)
SKILL.md:79 未声明的 shell 执行能力
owner-push-forwarder.mjs 使用 spawn() 执行外部命令,send-to-owner-via-openclaw.mjs 使用 spawnSync() 执行 openclaw CLI,均未在 SKILL.md 声明
scripts/owner-push-forwarder.mjs:165 状态持久化未声明
代码将推送状态持久化到 ~/.openclaw/workspace/state/silicaclaw-owner-push.json,包括已推送消息 ID 和游标,但 SKILL.md 未提及此行为
scripts/owner-push-forwarder.mjs:62 Shell 执行是可选的受控功能
shell 执行能力通过 OPENCLAW_OWNER_FORWARD_CMD 环境变量启用,不是默认行为,且命令执行受配置文件控制
scripts/owner-push-forwarder.mjs:153 声明能力 vs 实际能力
scripts/owner-push-forwarder.mjs:43 请求 localhost:4310,符合 SKILL.md 声明 scripts/owner-push-forwarder.mjs:62-63 writeFileSync() 写入状态文件 ~/.openclaw/workspace/state/ scripts/owner-push-forwarder.mjs:165 spawn() 执行 OPENCLAW_OWNER_FORWARD_CMD;scripts/send-to-owner-via-openclaw.mjs:26 spawnSync() 执行 openclaw 命令 可疑产物与外联
没有提取到明显 IOC。
依赖与供应链
没有结构化依赖告警。
文件构成
scripts/owner-push-forwarder.mjs SKILL.md