扫描报告
22 /100
contentclaw
Turn papers, podcasts, and case studies into publish-ready social posts, infographics, and diagrams
A legitimate content generation skill with well-scoped permissions, no credential theft, and no hidden malicious behavior; the only notable concern is a documented curl|sh installation pattern for a known tool (uv).
可以安装
Approve for use. Consider pinning dependency versions in pyproject.toml to reduce supply chain risk. The curl|sh command is a documented installation step and involves a well-known tool (Astral's uv), but users should be aware of the pattern.
安全发现 4 项
| 严重性 | 安全发现 | 位置 |
|---|---|---|
| 中危 | Documented curl|sh installation pattern 代码执行 | SKILL.md:56 |
| 低危 | Unpinned dependency versions 供应链 | pyproject.toml:10 |
| 低危 | False-positive IP address flagged in pre-scan 敏感访问 | scripts/browser.py:17 |
| 提示 | SKILL.md declares allowed-tools but capability mapping is mostly aligned 文档欺骗 | SKILL.md:34 |
| 资源类型 | 声明权限 | 推断权限 | 状态 | 证据 |
|---|---|---|---|---|
| 文件系统 | READ | WRITE | ✓ 一致 | SKILL.md declares Read/Write/Edit tools but Write usage is scoped to BASE_DIR co… |
| 网络访问 | READ | READ | ✓ 一致 | Makes outbound API calls to fal.ai and exa.ai (documented), no inbound listeners |
| 命令执行 | WRITE | WRITE | ✓ 一致 | Uses uv run for subprocess execution; curl|sh documented in SKILL.md line 56 |
| 环境变量 | NONE | READ | ✓ 一致 | Scoped .env loading of FAL_KEY and EXA_API_KEY in env.py, discover_topics.py, ge… |
| 技能调用 | NONE | READ | ✓ 一致 | Skill invokes itself via recipe execution pattern; no privilege escalation |
| 剪贴板 | NONE | NONE | — | No clipboard access found |
| 浏览器 | NONE | READ | ✓ 一致 | Playwright headless browser used for extraction; declared in install prerequisit… |
| 数据库 | NONE | NONE | — | No database access |
1 严重 1 高危 20 项发现
严重 危险命令 危险 Shell 命令
curl -LsSf https://astral.sh/uv/install.sh | sh SKILL.md:56 高危 IP 地址 硬编码 IP 地址
131.0.0.0 scripts/browser.py:17 中危 外部 URL 外部 URL
https://docs.astral.sh/uv/ SKILL.md:53 中危 外部 URL 外部 URL
https://astral.sh/uv/install.sh SKILL.md:56 中危 外部 URL 外部 URL
https://www.reddit.com/r/HowToAIAgent/comments/1rfo5i7/i_opensourced_my_kindle_publishing_pipeline_with/ recipes/demo-diagram-breakdown.yaml:50 中危 外部 URL 外部 URL
https://www.linkedin.com/posts/romejgeorgio_the-start-of-machine-to-machine-marketing-activity-7430322995220459520-gU7Q recipes/paper-breakdown-insight.yaml:49 中危 外部 URL 外部 URL
https://x.com/omarsar0/status/2030403147588604376 recipes/paper-breakdown-insight.yaml:63 中危 外部 URL 外部 URL
https://x.com/omarsar0/status/2029926242640912429 recipes/paper-breakdown-insight.yaml:64 中危 外部 URL 外部 URL
https://www.linkedin.com/posts/romejgeorgio_llms-are-curating-reality-x-open-sourcing-activity-7419815247869333504-l-KW recipes/podcast-insight.yaml:51 中危 外部 URL 外部 URL
https://www.reddit.com/r/gtmengineering/comments/1q805wm/how_were_personalising_cold_emails_at_scale_in/ recipes/reddit-short-case-study.yaml:49 中危 外部 URL 外部 URL
https://www.reddit.com/r/aiagents/comments/1rctr3d/agents_are_getting_more_powerful_every_day_here/ recipes/what-you-might-have-missed.yaml:52 中危 外部 URL 外部 URL
https://www.reddit.com/r/aiagents/comments/1r6jo63/its_been_a_big_week_for_agentic_ai_here_are_10/ recipes/what-you-might-have-missed.yaml:53 中危 外部 URL 外部 URL
https://arxiv.org/abs/2401.04088 tests/test_extract.py:33 中危 外部 URL 外部 URL
https://arxiv.org/pdf/2401.04088 tests/test_extract.py:34 中危 外部 URL 外部 URL
https://reddit.com/r/test/comments/abc tests/test_extract.py:35 中危 外部 URL 外部 URL
https://x.com/user/status/123 tests/test_extract.py:37 中危 外部 URL 外部 URL
https://twitter.com/user/status/123 tests/test_extract.py:38 中危 外部 URL 外部 URL
https://youtube.com/watch?v=abc tests/test_extract.py:41 中危 外部 URL 外部 URL
https://lilianweng.github.io/posts/2024-02-05-human-data-quality/ tests/test_extract.py:55 中危 外部 URL 外部 URL
https://thisdoesnotexist.example.com tests/test_extract.py:74 目录结构
46 文件 · 101.9 KB · 2923 行 Markdown 15f · 1241L
Python 8f · 1172L
YAML 22f · 487L
TOML 1f · 23L
├─
▾
agents
│ ├─
breakdown.md
Markdown
│ ├─
caption.md
Markdown
│ ├─
case-study.md
Markdown
│ ├─
diagram.md
Markdown
│ ├─
infographic.md
Markdown
│ ├─
insight-post.md
Markdown
│ ├─
poster.md
Markdown
│ ├─
reddit-human.md
Markdown
│ └─
roundup.md
Markdown
├─
▾
brand-graphs
│ └─
▾
templates
│ ├─
▾
ai-ml
│ │ ├─
audience.yaml
YAML
│ │ ├─
feedback.yaml
YAML
│ │ ├─
identity.yaml
YAML
│ │ ├─
strategy.yaml
YAML
│ │ └─
visual.yaml
YAML
│ ├─
▾
dev-tools
│ │ ├─
audience.yaml
YAML
│ │ ├─
feedback.yaml
YAML
│ │ ├─
identity.yaml
YAML
│ │ ├─
strategy.yaml
YAML
│ │ └─
visual.yaml
YAML
│ └─
▾
saas-b2b
│ ├─
audience.yaml
YAML
│ ├─
feedback.yaml
YAML
│ ├─
identity.yaml
YAML
│ ├─
strategy.yaml
YAML
│ └─
visual.yaml
YAML
├─
▾
recipes
│ ├─
_schema.yaml
YAML
│ ├─
demo-diagram-breakdown.yaml
YAML
│ ├─
news-event-poster.yaml
YAML
│ ├─
paper-breakdown-insight.yaml
YAML
│ ├─
podcast-insight.yaml
YAML
│ ├─
reddit-short-case-study.yaml
YAML
│ └─
what-you-might-have-missed.yaml
YAML
├─
▾
references
│ ├─
brand.md
Markdown
│ ├─
create-recipe.md
Markdown
│ ├─
run-recipe.md
Markdown
│ └─
topics.md
Markdown
├─
▾
scripts
│ ├─
▾
extractors
│ │ └─
extract.py
Python
│ ├─
browser.py
Python
│ ├─
discover_topics.py
Python
│ ├─
env.py
Python
│ └─
generate_image.py
Python
├─
▾
tests
│ ├─
test_extract.py
Python
│ ├─
test_image_gen.py
Python
│ └─
test_recipes.py
Python
├─
pyproject.toml
TOML
├─
SKILL.md
Markdown
└─
TODOS.md
Markdown
依赖分析 6 项
| 包名 | 版本 | 来源 | 已知漏洞 | 备注 |
|---|---|---|---|---|
httpx | >=0.27 | pip | 否 | Version not pinned |
pymupdf | >=1.24 | pip | 否 | Version not pinned |
readabilipy | >=0.2 | pip | 否 | Version not pinned; less widely-used package |
playwright | >=1.49 | pip | 否 | Version not pinned |
fal-client | >=0.5 | pip | 否 | Version not pinned |
exa-py | >=1.0 | pip | 否 | Version not pinned |
安全亮点
✓ Scoped .env loading — only FAL_KEY and EXA_API_KEY are loaded, preventing credential over-exposure
✓ Strong file scoping — SKILL.md explicitly restricts reads/writes to BASE_DIR only
✓ No credential theft — no iteration over os.environ, no access to ~/.ssh, ~/.aws, or other sensitive paths
✓ No exfiltration — extracted content is processed locally; external API calls only send condensed specs and search queries
✓ No obfuscation — no base64-encoded strings, eval(), or dynamic code generation
✓ No persistence mechanisms — no cron jobs, startup hooks, or backdoor installation
✓ No C2 communication — no hardcoded IPs for command-and-control
✓ Legitimate toolchain — uses well-known, reputable services (fal.ai, exa.ai, Playwright, Astral uv)
✓ Transparent data flow — SKILL.md documents all external API calls and browser automation clearly