Back to skill
Skillv1.0.0

ClawScan security

calender-memo · ClawHub's context-aware review of the artifact, metadata, and declared behavior.

Scanner verdict

ReviewMar 15, 2026, 11:24 AM
Verdict
Review
Confidence
high
Model
gpt-5-mini
Summary
功能与描述大致一致 (本地存储并定时提醒),但实现会在后台每分钟执行并通过本地 openclaw 命令把提醒推送到飞书,且这外发行为与声明的权限/依赖不一致,存在数据外泄与命令执行风险。
Guidance
这个技能总体上是做本地日程管理,但实现会在后台每分钟检查并通过本地 openclaw 命令把提醒发送到飞书(external)。在安装/启用前请考虑: - 如果你不希望日程被发送到外部服务,别启用自动提醒(或移除/替换 reminder.js 中的 sendPushNotification)。 - 确认宿主环境是否存在 openclaw CLI 且已配置飞书通道——如果存在,技能会使用该通道发送你的日程内容。技能没有在元数据中声明这一点。 - child_process.exec 被用于构造并执行 shell 命令,存在命令注入风险;建议审查或替换为更安全的调用方式(例如使用 SDK 或明确参数化的系统调用)。 - 如果你信任此技能且需要推送,请确保 agent/平台级别的通道凭据安全;否则只使用本地查看/编辑功能并禁用推送逻辑。 如果你想继续安装且需要更低风险的选项,要求作者或维护者: 1) 在文档中明确声明需要 openclaw 和已配置的飞书通道; 2) 提供配置项以关闭自动推送; 3) 将 exec 调用替换为安全的 API/SDK 调用或严格参数化的子进程调用。

Review Dimensions

Purpose & Capability
note技能名和描述是本地日程记事本,代码实现也确实管理 MEM O RY.md 并支持添加/查看/完成/删除。额外能力是主动推送提醒,这与技能描述的“提醒功能”相符;但实现依赖本地 openclaw CLI 与 feishu 通道(在代码中通过 shell exec 调用),这些依赖没有在声明的要求或说明中明确列出,造成能力与声明的不完全对齐。
Instruction Scope
concernSKILL.md 声明数据保存在本地并可自动推送提醒,但并没有以细节方式说明会执行系统命令。实际代码使用 child_process.exec 构造并执行 `openclaw message send --channel feishu --recipient current --text "..."`,这会把日程文本发送到外部服务(飞书)。exec 的使用带来命令执行/注入风险(虽然代码对双引号做了简单转义),并且代码在 onStart 时启动每分钟一次的定时器,自动发起外部通信,超出普通“只读本地文件”的范围。
Install Mechanism
ok没有 install spec(instruction-only + 带代码文件),因此不存在可疑下载或外部依赖安装步骤。代码为本地文件,不会在安装阶段从不明 URL 拉取可执行包。
Credentials
concern技能未声明任何环境变量或凭据,但会依赖宿主环境存在并已配置的 openclaw CLI 与飞书通道(使用 `--recipient current`)。这意味着日程条目会被发送到外部服务,利用平台/agent 层已有的通道认证;技能没有声明需要或获得这些凭据,用户可能不会意识到日程数据会被外发。
Persistence & Privilege
concern技能 onStart 会启动一个每分钟执行的定时器来检查并推送提醒(持续运行的后台任务)。虽然技能没有设置 always:true, 但一旦被启用就会保持活跃并周期性进行外部通信,扩大了潜在的暴露面(持续将本地日程主动发送到外部通道)。