calendar_memo
Skill executes undeclared shell commands via child_process.exec and runs persistent background timers without proper documentation disclosure.
为什么得出这个结论
2/4 个维度触发发现 2 项声明之外的能力或越权行为。
当前没有明显的高危外联或执行信号。
报告包含 4 步攻击链,另有 1 项高危或严重发现。
没有完整依赖信息,供应链判断需要保留弹性。
攻击链
初始入口 · SKILL.md:1
权限提升 · SOUL.md:44
代码执行 · reminder.js:35
最终危害 · reminder.js:18
风险分是怎么被拉高的
reminder.js uses child_process.exec() to run 'openclaw message send' but SKILL.md only mentions '飞书等通道' without explaining shell command execution mechanism
setInterval runs every 60 seconds indefinitely, creating a background daemon. SKILL.md does not mention periodic background activity.
User-controlled title field is interpolated into shell command string with only quote escaping. Other shell metacharacters not sanitized.
SKILL.md declares filesystem:READ but code uses filesystem:WRITE for MEMORY.md. Shell:WRITE usage not declared.
最关键的证据
Undeclared shell command execution
The skill uses child_process.exec() to execute 'openclaw message send' but SKILL.md only mentions '飞书等通道' (Feishu channels) without explaining the shell execution mechanism. Users cannot make informed decisions about allowing this skill.
reminder.js:18 Shell command injection risk in notification function
The sendPushNotification function builds a shell command by interpolating user-controlled event title into a command string. While only double quotes are escaped, other shell metacharacters could potentially be dangerous if the message format changes.
reminder.js:14 Hidden background daemon without disclosure
The skill starts a setInterval timer that runs checkReminders() every 60 seconds. This creates a persistent background process that continues running until skill is explicitly stopped. SKILL.md does not mention this behavior.
reminder.js:55 Minor doc-to-code mismatch on filesystem permissions
SKILL.md capability section mentions '读取和编辑MEMORY.md' (read and edit) but only declares filesystem:READ. The code writes to MEMORY.md using writeFileSync.
SOUL.md:13 声明能力 vs 实际能力
reminder.js:3 - fs module available; SOUL.md:13 - fs.writeFileSync writes MEMORY.md reminder.js:4 - const { exec } = require('child_process'); reminder.js:18 - exec(cmd, callback) reminder.js:18 - exec runs 'openclaw message send --channel feishu' which sends network requests No direct environment variable access found 可疑产物与外联
没有提取到明显 IOC。
依赖与供应链
没有结构化依赖告警。
文件构成
SOUL.md reminder.js