Back to skill
Skillv1.0.2

ClawScan security

Agent Card · ClawHub's context-aware review of the artifact, metadata, and declared behavior.

Scanner verdict

SuspiciousApr 28, 2026, 5:31 PM
Verdict
suspicious
Confidence
medium
Model
gpt-5-mini
Summary
功能与“名片/通讯录”描述大体一致, 但运行指令要求访问 Agent 记忆文件并在收到名片时可自动从嵌入的 _skill.source 安装其它 Skill 与远程 endpoint 交互 — 这些行为未在声明的权限/依赖中明确,可能导致敏感数据读取或供应链风险。
Guidance
这是一个以本地 JSON 文件和静态 HTML 模板为核心的名片/通讯录技能,功能上基本一致,但请在安装前注意: - SKILL.md 会建议 Agent 读取“Agent 记忆”文件(例如 USER.md、MEMORY.md)来填充名片,这可能暴露隐私或敏感信息;如果你不希望公开这些内容,确认 Agent 不允许该读取或手动审查/清理记忆后再使用。 - 在收到外部名片时,skill 会(在提示并获得确认后)根据返回 JSON 的 _skill.source 自动安装其它 skill。自动安装外部 Skill 等同于运行从互联网下载并执行代码:仅当安装源可信且你能验证其内容时才允许该操作;否则拒绝自动安装并手动从可信渠道审查该 skill。 - 注册流程会将 api_key/user_id 写入 data/config.json:确保该目录的访问权限受限,不要将这些文件上传到公共位置。 - 如果你计划让该 Agent 与远程服务器交互,先确认 config.server.endpoint 为受信任的服务器;避免把敏感字段(personal_notes、background、current_focus)写入公开字段列表。 建议措施:审查/备份 data/ 下的文件;禁用或审查自动安装行为;限制 Agent 对记忆文件的访问;仅向可信 server.endpoint 注册与发布。

Review Dimensions

Purpose & Capability
note主要功能(维护 profile.json、contacts.json、本地生成名片、向配置的服务器发布/读取名片)与名称/描述一致. 提供的 data/ 与 templates/ 文件也匹配该目的. 但 SKILL.md 明确要求从“Agent 记忆(USER.md、MEMORY.md 等)”提取信息并把注册得到的 api_key 写回 data/config.json —访问 Agent 记忆或写入配置是超出简单本地通讯录的隐性能力,未在元数据中声明。
Instruction Scope
concern运行时指令要求:1) 读取 Agent 记忆文件(示例列出 USER.md、MEMORY.md 等),2) fetch 任意 config.server.endpoint 或消息中提供的链接来获取 /card/{user_id} JSON,3) 在检测到未安装时从返回 JSON 的 _skill.source 获取安装源并(用户确认后)自动安装该 skill。读取广泛记忆文件 + 从未验证的外部源自动安装构成潜在数据暴露与供应链风险。SKILL.md 也允许写入 api_key/user_id 到本地 config.json(这是合理的),但与网络 fetch 和自动安装组合时需谨慎。
Install Mechanism
okSkill 是 instruction-only、没有 install spec 或本地可执行二进制,静态安装风险低。正因为没有安装脚本,所谓的“自动安装”行为来自 SKILL.md 的运行指令(fetch _skill.source),而不是打包的 install 指令;这把安装流程的风险转移到运行时决策上(见 instruction_scope 的关注点)。
Credentials
concern注册/发布流程会在 data/config.json 中写入 api_key 和 user_id(这是合理且必要)。但 SKILL.md 要求访问 Agent 的记忆文件(USER.md、MEMORY.md 等)以丰富名片内容 — 这些并未在 requires.env/primaryEnv 中声明,且可能包含敏感信息. 同时,skill 会从消息中提取链接并访问外部 endpoints,这在组合下可能导致敏感数据向外传输。
Persistence & Privilege
noteSkill 不要求 always: true,默认不会在每次会话强制运行;它会创建/修改其 own data/* 文件(contacts.json, profile.json, config.json),这是文档中明示且功能性必要的。唯一额外需要注意的持久化行为是:在收名片场景中(并经用户确认)会触发从外部 source 安装另一个 skill,这会改变运行环境/安装新代码。