Back to skill
Skillv1.0.0
ClawScan security
Xyz · ClawHub's context-aware review of the artifact, metadata, and declared behavior.
Scanner verdict
SuspiciousMar 8, 2026, 7:11 AM
- Verdict
- suspicious
- Confidence
- medium
- Model
- gpt-5-mini
- Summary
- Skill 的总体目的(网络搜索)与代码和文档大体一致,但元数据、运行说明与实际代码之间存在多处不一致和权限/环境变量声明缺失,建议在安装前核实并修正这些差异。
- Guidance
- 要点与建议: 1) 在安装或运行前核实不一致项:注册表声明“无需环境变量”但文档/脚本需要若干 API Key;文档示例的脚本名 (scripts/xyz.py) 与仓内实际脚本 (scripts/web_search.py) 不一致——确认真正的入口和调用方式。 2) 最小化凭据暴露:如果只需 DuckDuckGo(默认),无需提供任何第三方 API Key;只有在明确需要并信任相应服务时才配置 BING/GOOGLE/TAVILY 的密钥。 3) 审查网络目标:脚本会向公共 API(api.tavily.com、api.bing.microsoft.com、www.googleapis.com)和任意 SEARXNG_URL 发起请求,确认这些端点是你期望的目标,不要在不受信任环境下将 SEARXNG_URL 指向外部服务。 4) 运行环境隔离:在安全沙箱或受控环境(无敏感凭据)中运行初次测试,检查实际行为与文档一致,确认没有未声明的数据外传。 5) 请求补充信息或修正:建议要求发布者修正注册表元数据以列出必要的环境变量、修复 SKILL.md 中的入口文件名/“无执行脚本”声明,并提供完整脚本的未截断源以供审查。 额外信息可以提高置信度:完整未截断的 scripts/web_search.py 源代码(以确认没有隐藏的外连或数据泄漏逻辑);发布者将元数据同步修正后的清单;以及明确的运行示例和日志,证明仅在需要时才使用外部 API。
Review Dimensions
- Purpose & Capability
- note名称和描述表示这是一个多后端的网络搜索工具;脚本(scripts/web_search.py)确实实现了对 DuckDuckGo、Tavily、Bing、Google、SearXNG 的查询,功能上与声明一致。但注册表元数据声明“无需环境变量/凭证”,与脚本和 SKILL.md 中为非 DuckDuckGo 提供商明确要求 API Key 的做法不符。文档中还宣称“仅为工作流描述且无执行脚本”,但包中包含可执行脚本——这些不一致降低了信任度。
- Instruction Scope
- concernSKILL.md 给出了如何通过命令行运行脚本的说明,但示例使用 python scripts/xyz.py,而仓内实际脚本是 scripts/web_search.py(入口名不一致)。SKILL.md 同时包含声明“无执行脚本”“依赖外部 web-search 技能”和“集成 LLM(GPT-4o)”等高层工作流描述,和实际附带脚本之间有混合:文档既像是一个仅描述工作流的说明,又像一个可执行技能的手册。脚本会对外发起 HTTP 请求(到 DuckDuckGo、Tavily API、Bing、Google、SearxNG);这些网络调用符合搜索目的,但因为文档中并未清晰声明何时/如何使用哪些后端且元数据未列出任何必需环境变量,存在在不知情情况下尝试访问外部服务或使用未经授权的凭据的风险。
- Install Mechanism
- note没有 install spec(instruction-only),因此不会在安装阶段从外部 URL 下载或执行额外代码,这降低了供应链风险。但包中包含可执行脚本文件:scripts/web_search.py。脚本主要使用标准库,并可可选调用第三方库 duckduckgo_search(若已安装)。总体上没有高风险的安装机制,但“说明称无可执行脚本”与实际包含脚本之间的矛盾需要澄清。
- Credentials
- concern注册表元数据列出“Required env vars: none”,但 SKILL.md 与脚本明确定义并依赖多个环境变量(TAVILY_API_KEY、BING_API_KEY、GOOGLE_API_KEY、GOOGLE_CSE_ID、SEARXNG_URL、SEARCH_PROVIDER 等)。此不一致意味着安装者可能没有意识到需要提供或限制这些凭据。请求的环境变量(多个外部搜索 API key)在该功能下是合理的(用于非免费后端),但它们应在元数据中明确列出并仅在需要时请求。
- Persistence & Privilege
- okflags 中没有 always:true,也没有声明会修改其他技能或系统配置。脚本本身不会要求长期驻留或修改平台配置。自主调用(disable-model-invocation=false)是默认行为;组合当前其他不一致不会直接提升特权,但应谨慎在允许自动调用之前确认凭据使用和网络目标。
