扫描报告
25 /100
opencron
Visual cron job dashboard for OpenClaw — live countdown timers, run history, calendar view
功能正常的 cron job 可视化仪表板,存在供应链风险(从外部 GitHub 加载 HTML)和 CORS 配置问题,但无直接恶意行为证据。
可以安装
建议审查从 GitHub 加载 HTML 的必要性,考虑将 dashboard HTML 内嵌本地化;评估 CORS 宽松配置的必要性;确保后台同步进程的清理机制。
安全发现 4 项
| 严重性 | 安全发现 | 位置 |
|---|---|---|
| 中危 | 从外部 GitHub 动态加载 HTML 供应链 | update_canvas.py:27 |
| 低危 | 凭证通过 URL query parameter 暴露 敏感访问 | SKILL.md:52 |
| 低危 | 后台持久化进程未声明清理机制 供应链 | watch_sync.sh:7 |
| 提示 | CORS 配置过于宽松 权限提升 | serve.py:37 |
| 资源类型 | 声明权限 | 推断权限 | 状态 | 证据 |
|---|---|---|---|---|
| 文件系统 | WRITE | WRITE | ✓ 一致 | update_canvas.py:26 写入 canvas 目录 |
| 网络访问 | READ | READ | ✓ 一致 | update_canvas.py:27 urllib.request.urlopen(DASHBOARD_URL) |
| 命令执行 | WRITE | WRITE | ✓ 一致 | bin/install.js:23 execFileSync('git', ['clone', ...]) |
| 环境变量 | READ | READ | ✓ 一致 | SKILL.md 使用 ${OPENCLAW_GATEWAY_TOKEN} 和 ${CANVAS_PORT} |
3 项发现
中危 外部 URL 外部 URL
http://www.w3.org/2000/svg demo.html:276 中危 外部 URL 外部 URL
http://0.0.0.0: serve.py:60 提示 邮箱 邮箱地址
[email protected] demo.html:345 目录结构
9 文件 · 60.9 KB · 1250 行 HTML 1f · 799L
Markdown 2f · 222L
Python 3f · 149L
JavaScript 1f · 60L
JSON 1f · 11L
Shell 1f · 9L
├─
▾
bin
│ └─
install.js
JavaScript
├─
demo.html
HTML
├─
generate.py
Python
├─
package.json
JSON
├─
README.md
Markdown
├─
serve.py
Python
├─
SKILL.md
Markdown
├─
update_canvas.py
Python
└─
watch_sync.sh
Shell
依赖分析 1 项
| 包名 | 版本 | 来源 | 已知漏洞 | 备注 |
|---|---|---|---|---|
无外部 Python 依赖 | N/A | stdlib | 否 | 仅使用 Python 标准库(json, pathlib, urllib.request, http.server) |
安全亮点
✓ 代码结构清晰,无明显混淆或隐藏执行逻辑
✓ 无凭证收割、环境变量遍历或 API 密钥窃取行为
✓ 无远程代码执行、反向 shell 或 C2 通信
✓ 访问的路径(~/.openclaw/cron/)与声明功能直接相关
✓ demo.html 提供离线演示功能,无需网络即可验证
✓ 无恶意依赖或已知漏洞的第三方包