扫描报告
65 /100
task-progress-stream
Stream long-running task progress into the OpenClaw chat UI
The skill executes arbitrary shell commands through user-controlled input without declaring shell:WRITE capability in SKILL.md, representing a significant undeclared privilege escalation vector.
不要安装此技能
Do not approve this skill without declaring shell:WRITE capability. The --cmd parameter allows arbitrary command execution which could be exploited for privilege escalation.
攻击链 3 步
⬡
提权 User invokes skill with --cmd parameter
scripts/task_progress_stream.js:265⬡
提权 Arbitrary command passed to /bin/bash -lc without validation
scripts/task_progress_stream.js:285◉
影响 Attacker can run: curl|bash from external source, pip install malicious packages, or access system resources
scripts/task_progress_stream.js:285安全发现 3 项
| 严重性 | 安全发现 | 位置 |
|---|---|---|
| 高危 | Undeclared shell command execution 权限提升 | scripts/task_progress_stream.js:285 |
| 高危 | No command validation or sanitization 权限提升 | scripts/task_progress_stream.js:285 |
| 中危 | Filesystem write operations not declared 文档欺骗 | scripts/task_progress_stream.js:234 |
| 资源类型 | 声明权限 | 推断权限 | 状态 | 证据 |
|---|---|---|---|---|
| 命令执行 | NONE | WRITE | ✗ 越权 | scripts/task_progress_stream.js:285 - spawn('/bin/bash', ['-lc', cmd]) |
| 文件系统 | NONE | WRITE | ✗ 越权 | scripts/task_progress_stream.js:279-281 - creates outDir and status files |
| 网络访问 | NONE | NONE | — | openclaw gateway call is local IPC only |
目录结构
2 文件 · 14.0 KB · 528 行 JavaScript 1f · 473L
Markdown 1f · 55L
├─
▾
scripts
│ └─
task_progress_stream.js
JavaScript
└─
SKILL.md
Markdown
安全亮点
✓ No credential harvesting - script does not read API keys, tokens, or passwords
✓ No data exfiltration - only local IPC with openclaw gateway, no external network requests
✓ No obfuscation - code is readable JavaScript without base64 or eval() tricks
✓ No malicious dependencies - no package.json with untrusted packages
✓ Progress parsing is legitimate functionality as documented