cms-meeting-monitor
Cross-skill subprocess invocation via undeclared `subprocess.run` calls is the primary concern—neither the SKILL.md nor the tool declarations (monitor:read, notifier:write) accurately reflect the exec/shell:WRITE nature of the code.
monitor.py:trigger_pull() uses subprocess.run to invoke cms-meeting-materials/scripts/huiji/trigger-pull.py. This is a shell:WRITE capability that is not declared in SKILL.md. The tool 'monitor' declares permission:read but the code actually executes an external script.
scripts/monitor.py:170 为什么得出这个结论
2/4 个维度触发发现 4 项声明之外的能力或越权行为。
当前没有明显的高危外联或执行信号。
报告包含 0 步攻击链,另有 2 项高危或严重发现。
发现 1 项需要关注的依赖或供应链线索。
风险分是怎么被拉高的
monitor.py:trigger_pull() and notifier.py both call subprocess.run on external scripts without documentation in SKILL.md. tool permission:read ≠ exec/category
monitor tool declares permission:read but code executes external scripts (shell:WRITE). notifier declares permission:write but also invokes subprocess.
Both scripts hard-code a path to cms-meeting-materials/scripts/huiji/trigger-pull.py. If that skill is malicious or compromised, this skill inherits the risk.
最关键的证据
Undeclared cross-skill subprocess execution
monitor.py:trigger_pull() uses subprocess.run to invoke cms-meeting-materials/scripts/huiji/trigger-pull.py. This is a shell:WRITE capability that is not declared in SKILL.md. The tool 'monitor' declares permission:read but the code actually executes an external script.
scripts/monitor.py:170 Notifier also performs undeclared subprocess execution
notifier.py:get_latest_fragments() imports subprocess and calls scripts from cms-meeting-materials. SKILL.md declares notifier permission:write, but the code performs read + exec operations.
scripts/notifier.py:48 Tool permission declarations do not match code capabilities
monitor tool: category=exec, risk_level=medium, permission=read — but the code executes subprocess, which is exec-level. notifier tool: permission=write — but also executes subprocess.
SKILL.md:21 Undeclared hard-coded dependency on cms-meeting-materials skill
Both monitor.py and notifier.py hard-code paths to cms-meeting-materials/scripts/huiji/. If that dependency is absent or compromised, the skill fails or is exploited. No version pinning or integrity check.
scripts/monitor.py:165 Accesses environment variables for credentials
The skill reads XG_BIZ_API_KEY from os.environ. This is declared in SKILL.md metadata and is necessary for the feature, but the code does not validate or sanitize this variable.
scripts/monitor.py:40 声明能力 vs 实际能力
scripts/monitor.py:170 — subprocess.run to trigger-pull.py scripts/notifier.py:48 — subprocess to huiji scripts scripts/monitor.py:115 — state write to ~/.openclaw/ monitor.py:170 & notifier.py:48 — cross-skill subprocess to cms-meeting-materials 可疑产物与外联
没有提取到明显 IOC。
依赖与供应链
| 包名 | 版本 | 来源 | 漏洞 | 备注 |
|---|---|---|---|---|
| cms-meeting-materials | unpinned | cross-skill dependency | 否 | External skill dependency; scripts/huiji/trigger-pull.py is invoked via subprocess. No version pinning, no integrity check. The security posture of this skill is inherited. |
文件构成
scripts/monitor.py scripts/notifier.py SKILL.md