扫描报告
45 /100
castreader
Read any web page aloud with natural AI voices. Extract article text from any URL and convert it to audio (MP3).
CastReader skill has undocumented network behavior, undeclared browser automation with anti-detection flags, and uses base64 audio processing that appears legitimate but warrants scrutiny.
谨慎使用
Add explicit network:READ and browser declarations to SKILL.md. Remove --disable-blink-features=AutomationControlled flag. Verify external API endpoint is trustworthy before granting network access.
安全发现 5 项
| 严重性 | 安全发现 | 位置 |
|---|---|---|
| 中危 | Undeclared network requests to external API 文档欺骗 | scripts/read-url.js:51 |
| 中危 | Undeclared Puppeteer browser automation 文档欺骗 | scripts/extract.js:42 |
| 中危 | Automation detection suppression flag 敏感访问 | scripts/read-aloud.js:51 |
| 低危 | Base64 audio decoding in multiple scripts 代码混淆 | scripts/generate-paragraph.js:94 |
| 低危 | Shell execution via subprocess not declared 文档欺骗 | scripts/read-url.js:79 |
| 资源类型 | 声明权限 | 推断权限 | 状态 | 证据 |
|---|---|---|---|---|
| 网络访问 | NONE | READ | ✗ 越权 | scripts/read-url.js:51 - POST to api.castreader.ai:8123 |
| 文件系统 | NONE | WRITE | ✗ 越权 | scripts/read-url.js:82 - fs.writeFileSync |
| 命令执行 | NONE | WRITE | ✗ 越权 | scripts/read-url.js:79 - execFileSync('node', ...) |
| 浏览器 | NONE | WRITE | ✗ 越权 | scripts/read-aloud.js:43 - puppeteer.launch() |
1 严重 1 高危 16 项发现
严重 编码执行 Base64 编码执行(代码混淆)
Buffer.from(audioBase64, 'base64' scripts/generate-paragraph.js:94 高危 IP 地址 硬编码 IP 地址
131.0.0.0 scripts/extract.js:42 中危 外部 URL 外部 URL
https://img.shields.io/badge/OpenClaw-Skill-blue README.md:3 中危 外部 URL 外部 URL
https://clawhub.com/castreader README.md:3 中危 外部 URL 外部 URL
https://img.shields.io/badge/License-MIT-green.svg README.md:4 中危 外部 URL 外部 URL
https://img.shields.io/badge/platform-macOS%20%7C%20Linux%20%7C%20Windows-lightgrey README.md:5 中危 外部 URL 外部 URL
https://en.wikipedia.org/wiki/Text-to-speech README.md:46 中危 外部 URL 外部 URL
https://notion.so/my-page README.md:99 中危 外部 URL 外部 URL
https://chromewebstore.google.com/detail/castreader-tts-reader/foammmkhpbeladledijkdljlechlclpb README.md:102 中危 外部 URL 外部 URL
http://api.castreader.ai:8123 README.md:134 中危 外部 URL 外部 URL
https://castreader.ai README.md:161 中危 外部 URL 外部 URL
https://castreader.ai/openclaw README.md:162 中危 外部 URL 外部 URL
https://microsoftedge.microsoft.com/addons/detail/niidajfbelfcgnkmnpcmdlioclhljaaj README.md:164 中危 外部 URL 外部 URL
https://www.patreon.com/feross package-lock.json:248 中危 外部 URL 外部 URL
https://feross.org/support package-lock.json:252 中危 外部 URL 外部 URL
https://alistapart.com/blog/post/successful-or-unsuccessful-the-post-good-design-vocabulary/ scripts/demo.js:58 目录结构
11 文件 · 84.4 KB · 2592 行 JSON 2f · 1222L
JavaScript 6f · 1028L
Markdown 3f · 342L
├─
▾
references
│ └─
castreader-api.md
Markdown
├─
▾
scripts
│ ├─
demo.js
JavaScript
│ ├─
extract.js
JavaScript
│ ├─
generate-paragraph.js
JavaScript
│ ├─
generate-text.js
JavaScript
│ ├─
read-aloud.js
JavaScript
│ └─
read-url.js
JavaScript
├─
package-lock.json
JSON
├─
package.json
JSON
├─
README.md
Markdown
└─
SKILL.md
Markdown
依赖分析 2 项
| 包名 | 版本 | 来源 | 已知漏洞 | 备注 |
|---|---|---|---|---|
puppeteer | ^23.0.0 | npm | 否 | Version not pinned; auto-updates to latest |
crypto | builtin | Node.js | 否 | Standard library module |
安全亮点
✓ No credential harvesting or environment variable theft detected
✓ No reverse shell, C2 communication, or data exfiltration patterns found
✓ Base64 usage is for legitimate TTS audio processing, not code obfuscation
✓ Hardcoded IP 131.0.0.0 is part of Chrome's internal UA string, not actual network contact
✓ All file operations confined to /tmp and skill directory
✓ No suspicious file downloads or supply chain indicators beyond unpinned versions