扫描报告
5 /100
x-reader
读取并总结 X/Twitter 链接的低 Token 路由工具
X Reader 技能为合法 X/Twitter 链接读取工具,代码行为与文档声明一致,无恶意行为,仅存在轻微瑕疵(xreach 无版本锁定、预扫描误报 IP)。
可以安装
无需阻止使用。建议在文档中明确声明 xreach 版本锁定要求。
安全发现 1 项
| 严重性 | 安全发现 | 位置 |
|---|---|---|
| 低危 | xreach 依赖无版本锁定 供应链 | package.json:1 |
| 资源类型 | 声明权限 | 推断权限 | 状态 | 证据 |
|---|---|---|---|---|
| 文件系统 | READ | READ | ✓ 一致 | scripts/xreader.mjs:28-33 — 仅读取 ~/.config/xreader/session.json |
| 网络访问 | READ | READ | ✓ 一致 | scripts/xreader.mjs:93 — fetch(url) 重定向解析; scripts/xreader.mjs:136 — Playwright … |
| 命令执行 | READ | READ | ✓ 一致 | scripts/xreader.mjs:91 — execFile('xreach', args) 仅调用 xreach 命令 |
| 环境变量 | NONE | NONE | — | 无 os.environ 遍历 |
| 技能调用 | READ | READ | ✓ 一致 | scripts/xreader.mjs:91 — 调用 xreach 子命令 |
| 剪贴板 | NONE | NONE | — | 无剪贴板操作 |
| 浏览器 | READ | READ | ✓ 一致 | scripts/xreader.mjs:136 — Playwright headless 浏览器访问 x.com 文章页 |
| 数据库 | NONE | NONE | — | 无数据库操作 |
1 高危 7 项发现
高危 IP 地址 硬编码 IP 地址
122.0.0.0 scripts/xreader.mjs:253 中危 外部 URL 外部 URL
https://x.com/... SKILL.md:32 中危 外部 URL 外部 URL
https://x.com/.../status/... SKILL.md:44 中危 外部 URL 外部 URL
https://x.com/i/article/... SKILL.md:50 中危 外部 URL 外部 URL
https://x.com/yangguangai/status/2033736815405121642?s=46 SKILL.md:117 中危 外部 URL 外部 URL
https://x.com/yangguangai/status/2033522959407878621?s=46 SKILL.md:118 中危 外部 URL 外部 URL
https://x.com/google/status/2031558824042058064 SKILL.md:119 目录结构
4 文件 · 24.4 KB · 761 行 JavaScript 1f · 560L
Markdown 1f · 136L
JSON 2f · 65L
├─
▾
scripts
│ └─
xreader.mjs
JavaScript
├─
package-lock.json
JSON
├─
package.json
JSON
└─
SKILL.md
Markdown
依赖分析 2 项
| 包名 | 版本 | 来源 | 已知漏洞 | 备注 |
|---|---|---|---|---|
playwright | ^1.53.0 | npm | 否 | 有版本锁定,来自可信包管理器 |
xreach | 未声明 | 系统 PATH | 否 | 作为外部 CLI 工具调用,非 npm 依赖,需用户预先安装 |
安全亮点
✓ 文档完整:包含完整的工作流、认证路径、输出契约和限制说明
✓ 认证文件安全:session.json 以 mode 0o600 保存,chmod 后再次确认
✓ 无敏感路径遍历:仅访问 ~/.config/xreader/session.json
✓ 无数据外传:凭证仅用于 x.com 认证,不外发
✓ 无混淆代码:无 base64/eval/动态代码生成
✓ execFile 安全:使用 promisified execFile 而非 shell exec,无命令注入风险
✓ Playwright 沙箱:headless 模式运行,cookie 限制在 .x.com 域名