可疑 — 风险评分 35/100
上次扫描:5 小时前 重新扫描
35 /100
task-progress-stream
Stream long-running task progress into the OpenClaw chat UI
技能功能表面合理,但存在多处文档未声明的副作用操作:状态文件写入本地目录、通过openclaw gateway本地通信、执行shell命令。缺少敏感路径隔离和命令白名单机制,存在被滥用执行任意命令的风险。
技能名称task-progress-stream
分析耗时41.9s
引擎pi
ClawHub task-progress-stream v0.1.0 by liyooyin
📥 194
ClawHub 判定 可疑 dangerous_execllm_suspiciousvt_suspicious
谨慎使用
1. SKILL.md应明确声明状态文件写入目录和gateway通信行为;2. 添加--allowed-commands参数限制可执行命令;3. 考虑限制cwd范围避免逃逸。

安全发现 4 项

严重性 安全发现 位置
中危
状态文件写入未声明 文档欺骗
代码会将进度状态写入 $cwd/runs/task-progress-stream/*.status.json 和 *.status.md,SKILL.md完全未提及
writeJson(files.json, state); writeText(files.md, renderStatusMarkdown(state));
→ SKILL.md应明确说明输出文件位置和内容
scripts/task_progress_stream.js:206
中危
OpenClaw Gateway通信未声明 文档欺骗
代码通过spawn openclaw gateway call chat.inject与本地聊天系统交互,SKILL.md未提及此行为
spawn('openclaw', ['gateway', 'call', 'chat.inject', payload])
→ SKILL.md应说明会调用OpenClaw API注入消息
scripts/task_progress_stream.js:244
中危
任意shell命令执行无限制 代码执行
--cmd参数直接传入/bin/bash -lc执行,可执行任意shell命令,缺少命令白名单或路径限制
spawn('/bin/bash', ['-lc', cmd], { cwd, ... })
→ 考虑添加--allowed-commands参数限制可执行范围
scripts/task_progress_stream.js:298
低危
进程组管理可能误杀系统进程 权限提升
process.kill(-child.pid)使用负PID杀死整个进程组,可能意外终止无关进程
process.kill(-child.pid, 'SIGTERM')
→ 考虑只杀死子进程而非整个进程组
scripts/task_progress_stream.js:330
资源类型声明权限推断权限状态证据
文件系统 NONE WRITE ✗ 越权 scripts/task_progress_stream.js:206-207 writeJson/writeText写入状态文件
命令执行 NONE WRITE ✗ 越权 scripts/task_progress_stream.js:298 spawn '/bin/bash' '-lc' cmd
环境变量 NONE READ ✗ 越权 scripts/task_progress_stream.js:292 cwd参数来自用户
网络访问 NONE READ ✗ 越权 scripts/task_progress_stream.js:244 spawn openclaw gateway本地通信

目录结构

2 文件 · 14.0 KB · 528 行
JavaScript 1f · 473L Markdown 1f · 55L
├─ 📁 scripts
│ └─ 📜 task_progress_stream.js JavaScript 473L · 12.9 KB
└─ 📝 SKILL.md Markdown 55L · 1.1 KB

安全亮点

✓ 无外部网络请求,仅本地openclaw通信
✓ 无凭证窃取或环境变量遍历行为
✓ 无Base64或混淆代码
✓ 无HTML注释隐藏指令
✓ 核心功能(进度解析)实现合理