Scan Report
25 /100
opencron
Visual cron job dashboard for OpenClaw — live countdown timers, run history, calendar view
功能正常的 cron job 可视化仪表板,存在供应链风险(从外部 GitHub 加载 HTML)和 CORS 配置问题,但无直接恶意行为证据。
Safe to install
建议审查从 GitHub 加载 HTML 的必要性,考虑将 dashboard HTML 内嵌本地化;评估 CORS 宽松配置的必要性;确保后台同步进程的清理机制。
Findings 4 items
| Severity | Finding | Location |
|---|---|---|
| Medium | 从外部 GitHub 动态加载 HTML Supply Chain | update_canvas.py:27 |
| Low | 凭证通过 URL query parameter 暴露 Sensitive Access | SKILL.md:52 |
| Low | 后台持久化进程未声明清理机制 Supply Chain | watch_sync.sh:7 |
| Info | CORS 配置过于宽松 Priv Escalation | serve.py:37 |
| Resource | Declared | Inferred | Status | Evidence |
|---|---|---|---|---|
| Filesystem | WRITE | WRITE | ✓ Aligned | update_canvas.py:26 写入 canvas 目录 |
| Network | READ | READ | ✓ Aligned | update_canvas.py:27 urllib.request.urlopen(DASHBOARD_URL) |
| Shell | WRITE | WRITE | ✓ Aligned | bin/install.js:23 execFileSync('git', ['clone', ...]) |
| Environment | READ | READ | ✓ Aligned | SKILL.md 使用 ${OPENCLAW_GATEWAY_TOKEN} 和 ${CANVAS_PORT} |
3 findings
Medium External URL 外部 URL
http://www.w3.org/2000/svg demo.html:276 Medium External URL 外部 URL
http://0.0.0.0: serve.py:60 Info Email 邮箱地址
[email protected] demo.html:345 File Tree
9 files · 60.9 KB · 1250 lines 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
Dependencies 1 items
| Package | Version | Source | Known Vulns | Notes |
|---|---|---|---|---|
无外部 Python 依赖 | N/A | stdlib | No | 仅使用 Python 标准库(json, pathlib, urllib.request, http.server) |
Security Positives
✓ 代码结构清晰,无明显混淆或隐藏执行逻辑
✓ 无凭证收割、环境变量遍历或 API 密钥窃取行为
✓ 无远程代码执行、反向 shell 或 C2 通信
✓ 访问的路径(~/.openclaw/cron/)与声明功能直接相关
✓ demo.html 提供离线演示功能,无需网络即可验证
✓ 无恶意依赖或已知漏洞的第三方包