扫描报告
20 /100
calibre-catalog-read
Read-only Calibre catalog lookup and one-book analysis workflow over a running Content server
Legitimate Calibre catalog read skill with minor documentation inconsistencies; no malicious behavior detected.
可以安装
Consider clarifying in SKILL.md that the analysis pipeline writes to Calibre comments. Passwords on command-line is acceptable given the tooling context.
安全发现 2 项
| 严重性 | 安全发现 | 位置 |
|---|---|---|
| 低危 | Metadata write not clearly declared as exception to read-only claim 文档欺骗 | scripts/run_analysis_pipeline.py:178 |
| 低危 | Password passed on command line 凭证窃取 | scripts/calibredb_read.mjs:195 |
| 资源类型 | 声明权限 | 推断权限 | 状态 | 证据 |
|---|---|---|---|---|
| 命令执行 | WRITE | WRITE | ✓ 一致 | SKILL.md metadata declares bin dependencies; scripts use subprocess for calibred… |
| 文件系统 | WRITE | WRITE | ✓ 一致 | SKILL.md declares localWrites to state/*; scripts write runs.json, sqlite DB, an… |
| 网络访问 | READ | READ | ✓ 一致 | HTTP requests to Calibre Content Server for catalog operations; no arbitrary net… |
| 环境变量 | READ | READ | ✓ 一致 | Reads CALIBRE_PASSWORD, CALIBRE_USERNAME, CALIBRE_WITH_LIBRARY; no exfiltration … |
2 项发现
中危 外部 URL 外部 URL
http://192.168.11.20:8080/#Calibreライブラリ README.md:52 中危 外部 URL 外部 URL
https://json-schema.org/draft/2020-12/schema references/subagent-analysis.schema.json:2 目录结构
11 文件 · 68.1 KB · 1890 行 JavaScript 4f · 948L
Markdown 3f · 477L
Python 2f · 404L
JSON 2f · 61L
├─
▾
references
│ ├─
subagent-analysis.prompt.md
Markdown
│ ├─
subagent-analysis.schema.json
JSON
│ └─
subagent-input.schema.json
JSON
├─
▾
scripts
│ ├─
analysis_db.py
Python
│ ├─
calibredb_read.mjs
JavaScript
│ ├─
handle_completion.mjs
JavaScript
│ ├─
prepare_subagent_input.mjs
JavaScript
│ ├─
run_analysis_pipeline.py
Python
│ └─
run_state.mjs
JavaScript
├─
README.md
Markdown
└─
SKILL.md
Markdown
安全亮点
✓ Subagent architecture cleanly separates heavy analysis from main agent - reduces risk of prompt injection
✓ State management with runs.json prevents duplicate processing and race conditions
✓ Input validation on book_id and analysis JSON paths before processing
✓ No external network connections except to configured Calibre server
✓ No base64/encoded execution, no reverse shell patterns, no credential exfiltration
✓ Clean separation between read-only catalog operations (calibredb_read.mjs) and analysis workflow (run_analysis_pipeline.py)
✓ Uses hash-based deduplication to avoid re-analysis of unchanged files
✓ Subagent prompt template includes strict read contract preventing unauthorized tool usage