LinkSKILL
LinkSKILL 存在文档-行为差异和依赖管理缺陷:subprocess 调用和 json-file 文件读取功能未在 SKILL.md 中声明,且缺少依赖版本锁定文件,但代码本身未发现恶意行为。
Why this conclusion was reached
1/4 dimensions flagged1 undeclared or violating capabilities were inferred.
2 lower-risk artifacts were extracted and still need context.
There is no explicit malicious chain in the report.
1 dependency or supply-chain issues need attention.
What drove the risk score up
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 映射
Most important evidence
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 Declared capability vs actual capability
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 Suspicious artifacts and egress
https://clawhub.ai/user/hgvgfgvh skill-card.md:7
https://clawhub.ai/hgvgfgvh/link-skill skill-card.md:29
Dependencies and supply chain
| Package | Version | Source | Known vuln | Notes |
|---|---|---|---|---|
| requests | unpinned | pip | No | SKILL.md metadata 声明依赖 requests 但无版本锁定文件 |
File composition
SKILL.md scripts/http_request_tool.py skill-card.md