LinkSKILL
LinkSKILL 存在文档-行为差异和依赖管理缺陷:subprocess 调用和 json-file 文件读取功能未在 SKILL.md 中声明,且缺少依赖版本锁定文件,但代码本身未发现恶意行为。
为什么得出这个结论
1/4 个维度触发发现 1 项声明之外的能力或越权行为。
提取到 2 个一般风险产物,需要结合上下文判断。
没有形成明确的恶意路径。
发现 1 项需要关注的依赖或供应链线索。
风险分是怎么被拉高的
http_request_tool.py L75-80 通过 subprocess 调用 auth_manager.py --force-login,但 SKILL.md 完全未提及 shell 执行能力
http_request_tool.py L88-91 支持 --json-file 读取本地 JSON 文件,SKILL.md 仅声明 --json-body
无 requirements.txt 文件,requests 库无版本锁定,存在供应链风险
metadata 仅有 bins 和 pip 依赖声明,缺少标准化的 allowed-tools 映射
最关键的证据
SKILL.md 未声明 subprocess shell 执行
http_request_tool.py 在 401 响应时通过 subprocess.run 调用 auth_manager.py --force-login 进行自动重新认证,但 SKILL.md 的 Tool Responsibilities 表和 Core Workflow 章节均未提及此行为。subprocess 调用属于隐式 shell 执行能力。
scripts/http_request_tool.py:75-80 SKILL.md 未声明 --json-file 本地文件读取
http_request_tool.py 支持 --json-file 参数读取本地 JSON 文件作为请求体,但 SKILL.md Request Execution 章节仅声明 --json-body 和 --json-file(未说明后者会读取文件),且 SKILL.md 声明的 allowed-tools 中无 filesystem:READ。
scripts/http_request_tool.py:88-91 缺少 requirements.txt 依赖版本锁定
SKILL.md metadata 声明 pip=['requests'],但无 requirements.txt 文件,requests 库版本未锁定。
SKILL.md:3 声明能力 vs 实际能力
scripts/swagger_loader.py:L56 (swagger cache), scripts/auth_manager.py:L37 (token cache) 所有脚本使用 requests 库进行 HTTP 请求 scripts/http_request_tool.py:L75-80 subprocess 调用 auth_manager.py 可疑产物与外联
https://clawhub.ai/user/hgvgfgvh skill-card.md:7
https://clawhub.ai/hgvgfgvh/link-skill skill-card.md:29
依赖与供应链
| 包名 | 版本 | 来源 | 漏洞 | 备注 |
|---|---|---|---|---|
| requests | unpinned | pip | 否 | SKILL.md metadata 声明依赖 requests 但无版本锁定文件 |
文件构成
SKILL.md scripts/http_request_tool.py skill-card.md