Back to skill
Skillv1.0.0

ClawScan security

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

Scanner verdict

SuspiciousMar 6, 2026, 3:47 AM
Verdict
suspicious
Confidence
medium
Model
gpt-5-mini
Summary
功能与说明基本一致,但实现中有若干不对等或可能导致敏感信息暴露与行为不可控的地方;安装前请确认配置与模板不会泄露秘密或指示模型隐瞒身份。
Guidance
要点与建议: - 功能概览:该 skill 会在 agent 启动时为 QQ 会话注入高优先级的 SOUL.md 人设,从而覆盖默认人设并按私聊/群聊/OpenID 切换人设。代码本地包含 12 个预置模板。 - 主要风险:1) 模板(例如 night-poet)包含“不要承认自己是 AI”之类的指令,会让模型刻意隐瞒其身份或违背透明性策略;2) personas.json 允许 file:/absolute/path 的引用 —— 如果配置指向系统上的敏感文件(例如密钥、配置、历史记录等),这些文件会被读取并注入到模型上下文,可能导致敏感数据被模型用于回复或意外泄露;3) handler 使用固定的 CONFIG_PATH(基于 $HOME),并未遵循 openclaw.json 中的自定义 config 路径提示,可能造成配置混淆。 - 在安装前请做的事: - 审核 personas.json / personas/*.md,删除或修改包含“不要承认是 AI”或其他有害/规避安全策略的指令; - 不要在 personas.json 中使用 file: 指向任何包含敏感信息的绝对路径;仅引用 skill 目录下受信任的 persona 文件; - 检查并限制 hook.log 的文件权限(hook.log 存在于技能目录,可能包含 sessionKey / openid / context 信息),确保只有受信任用户可读; - 如果你希望把配置放到非默认位置,请注意当前 handler.js 使用硬编码路径,确认所需 config 文件位于该路径或修改 handler.js 以使用 hook 配置; - 若组织或平台有要求注明 AI 身份或遵循透明性/合规策略,避免使用会指示模型隐瞒其 AI 身份的人设模板。 - 如果你不确定或想更安全地使用:仅在受控测试环境中尝试,或要求作者提供一个版本,去掉读取任意绝对文件路径的能力并遵循 hook 配置中给定的 configPath。

Review Dimensions

Purpose & Capability
okSkill 名称/描述(QQ 机器人多角色人设管理)与包含的代码和文档一致:hook 在 agent:bootstrap 时注入 QQ 专属的人设,按 channel/Group/OpenID 匹配并将人设以高优先级注入 SOUL.md,覆盖默认人设。所需权限和依赖(无外部凭证、无二进制、无远程下载)与用途相称。
Instruction Scope
concernSKILL.md 与 handler.js 在总体行为上匹配,但存在若干问题:1) 注入内容显式指示“忽略 OpenClaw 默认人设/不要承认自己是 AI/每次回复前默念……”,这是对模型行为的强制覆盖,可能与平台安全或透明性策略冲突;2) handler 支持从文件引用加载人设内容(file:...),并接受绝对路径,这意味着如果 personas.json 引用任意系统文件(/etc/credentials、~/.ssh/id_rsa 等),这些文件内容会被读入并注入到模型上下文,存在敏感数据被模型“看到”并随回复暴露的风险;3) 文档和 hook 配置处建议在 openclaw.json 中提供 config 路径,但 handler.js 实际使用的是硬编码的 CONFIG_PATH(基于 HOME),并没有读取 event 或 hook 配置中可能指定的自定义路径——这在可配置性上不一致并可能导致误配置或误导用户。
Install Mechanism
ok这是 instruction+包含 hook 代码的包,没有 install spec、没有远程下载或执行外部脚本,文件都随包分发。没有可疑第三方包或网络加载行为。
Credentials
concernSkill 未声明需要任何凭证,但代码会读取环境变量 process.env.HOME(正常)、process.env.DEBUG 和 process.env.FORCE_QQBOT_PERSONA(可改变行为)。虽然这些不是敏感凭证,但未在文档中声明读取 FORCE_QQBOT_PERSONA/DEBUG。更重要的是,personas.json 中的 file: 引用可指向任意绝对路径,因此一个配置条目(恶意或误配)可以使 hook 读取系统上任意可读文件并将其内容注入到模型上下文,存在敏感数据泄露风险。
Persistence & Privilege
okSkill 没有设置 always: true,且行为局限于 agent:bootstrap hook,修改的是 event.context.bootstrapFiles(仅影响注入文件),未修改其它 skills 的磁盘配置或系统范围设置。handler 只写一个局部 hook.log 文件。