Back to skill
Skillv1.0.0

ClawScan security

全网新闻聚合助手 · ClawHub's context-aware review of the artifact, metadata, and declared behavior.

Scanner verdict

SuspiciousApr 22, 2026, 6:14 AM
Verdict
suspicious
Confidence
medium
Model
gpt-5-mini
Summary
脚本总体上实现了“抓取→过滤→生成→推送”的新闻聚合功能,但存在若干不一致和遗漏(未声明的凭据、依赖与 Node 版本不匹配、文档与实现细节差异),建议在安装前确认这些点。
Guidance
这是实现完整的本地新闻聚合脚本集合,功能与描述大体一致,但在安装/使用前请注意: - 凭据:如果想让 Skill 自动把简报推送到飞书,需提供 FEISHU_BOT_TOKEN(脚本从 process.env.FEISHU_BOT_TOKEN 读取)。元数据未声明此环境变量,安装前请确认并审查 token(权限、作用域、存放方式)。若没有 token,脚本仅会输出简报到控制台/文件而不会成功自动推送。 - Node 版本:package-lock 中部分依赖列出了 node >= 20.18.1 要求,但 README/SKILL.md 写 Node.js 18+。在部署前请确保运行环境的 Node 版本与依赖兼容(若出现安装/运行错误,请升级 Node 到 20.x+ 或调整依赖)。 - 网络与隐私:脚本会连接并抓取第三方新闻站点和 open.feishu.cn(飞书),在受限环境或含敏感数据的网络中请慎用;遵守目标网站 robots.txt 与使用条款。 - 代码可读性与安全检查:代码未使用混淆或隐藏远程终端,主要网络目标为新闻源与飞书 API;仍建议在生产环境运行前审阅 config.json、确认要抓取的 sources 列表,并在隔离环境(或容器)内先做测试。 - 质量问题:scheduler 的下一次运行时间推算有 bug;文档中提到的“openclaw-lark SDK”并未在代码中使用—这属于文档/实现不一致,请向作者确认。 如果作者或发布方能(1)在 metadata 中声明所需环境变量(FEISHU_BOT_TOKEN 等),(2)修正文档中关于 SDK 的表述,且(3)确认或修正 Node 版本兼容性,我的怀疑点将大幅降低,评估可提升为 benign。

Review Dimensions

Purpose & Capability
noteSkill 名称/描述与代码实现基本一致:fetch、filter、digest、push 和 scheduler 都存在并实现预期功能。唯一的轻微不一致是文档提到“飞书 SDK: openclaw-lark(内置)”,但代码并未使用任何 SDK,而是直接调用 open.feishu.cn 的 HTTP 接口 —— 功能上可行,但文档与实现不完全一致。
Instruction Scope
concernSKILL.md 指示克隆并 npm install、创建 config.json 等,脚本也只访问该 config.json 与本地 data/ 文件夹并调用外部新闻源和 open.feishu.cn。问题在于文档没有明确说明需要设置 FEISHU_BOT_TOKEN 环境变量(push.js 使用 process.env.FEISHU_BOT_TOKEN 进行授权),但 registry metadata 声明“Required env vars: none”。此外,scheduler 中对 cron 表达式下一次运行时间的计算有实现错误(解析位置/顺序),但这属于质量问题而非安全隐患。
Install Mechanism
concern这是 instruction-only skill(Registry 无 install spec),但手动安装需要运行 npm install 来拉取依赖(axios、cheerio、rss-parser、node-cron)。从风险角度来看,使用 npm registry 是常见做法(中等风险)。需注意 package-lock 中 cheerio 的 package metadata 指定了 node >= 20.18.1,而 SKILL.md/ package.json 声称 Node.js 18+,这可能导致安装或运行时兼容性问题(应确认目标主机 Node 版本)。
Credentials
concernRegistry metadata 列出没有任何必需环境变量,但 push.js 实际上会读取 FEISHU_BOT_TOKEN(通过 process.env)以便向飞书 API 认证。脚本在没有 token 时会回退到打印简报的兼容路径,但自动推送需要 token。结论:要求的凭据没有在元数据或文档中明确列出,应在安装前知晓并审查该 token 的权限与保管方式。除此之外,脚本不访问其他凭据或系统配置路径。
Persistence & Privilege
ok没有设置 always:true,skill 不会被强制常驻。脚本仅在自身目录下创建/写入 data/ 下的文件(raw_news.json、filtered_news.json、daily_digest.md、history.json),没有修改其它 skills 或系统配置。允许自动调用(disable-model-invocation:false)为平台默认,单独不构成问题。