安全决策报告

task-progress-stream

技能功能表面合理,但存在多处文档未声明的副作用操作:状态文件写入本地目录、通过openclaw gateway本地通信、执行shell命令。缺少敏感路径隔离和命令白名单机制,存在被滥用执行任意命令的风险。

安装决策优先 来源: ClawHub 扫描时间: 2026/4/6
文件 2
IOC 0
越权项 4
发现 4
最直接的威胁证据

为什么得出这个结论

1/4 个维度触发
阻止
声明与实际能力

发现 4 项声明之外的能力或越权行为。

通过
隐藏执行与外联

当前没有明显的高危外联或执行信号。

通过
攻击链与高危发现

没有形成明确的恶意路径。

复核
依赖与供应链卫生

没有完整依赖信息,供应链判断需要保留弹性。

风险分是怎么被拉高的

未声明的文件系统写入 +10

SKILL.md未说明会写入 $cwd/runs/task-progress-stream/ 目录

通过openclaw gateway通信 +5

未声明与本地openclaw gateway交互行为

shell执行权限宽泛 +15

使用/bin/bash -lc执行任意用户命令,无命令白名单

进程组管理可能误杀 +5

process.kill(-child.pid)可能影响非相关进程

最关键的证据

中危 文档欺骗

状态文件写入未声明

代码会将进度状态写入 $cwd/runs/task-progress-stream/*.status.json 和 *.status.md,SKILL.md完全未提及

scripts/task_progress_stream.js:206
SKILL.md应明确说明输出文件位置和内容
中危 文档欺骗

OpenClaw Gateway通信未声明

代码通过spawn openclaw gateway call chat.inject与本地聊天系统交互,SKILL.md未提及此行为

scripts/task_progress_stream.js:244
SKILL.md应说明会调用OpenClaw API注入消息
中危 代码执行

任意shell命令执行无限制

--cmd参数直接传入/bin/bash -lc执行,可执行任意shell命令,缺少命令白名单或路径限制

scripts/task_progress_stream.js:298
考虑添加--allowed-commands参数限制可执行范围
低危 权限提升

进程组管理可能误杀系统进程

process.kill(-child.pid)使用负PID杀死整个进程组,可能意外终止无关进程

scripts/task_progress_stream.js:330
考虑只杀死子进程而非整个进程组

声明能力 vs 实际能力

文件系统 阻止
声明 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本地通信

可疑产物与外联

没有提取到明显 IOC。

依赖与供应链

没有结构化依赖告警。

文件构成

2 个文件 · 528 行
JavaScript 1 个文件 · 473 行Markdown 1 个文件 · 55 行
需关注文件 · 1
scripts/task_progress_stream.js JavaScript · 473 行
状态文件写入未声明 · OpenClaw Gateway通信未声明 · 任意shell命令执行无限制 · 进程组管理可能误杀系统进程
其他文件 · SKILL.md

安全亮点

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