T08 · Insecure Dependencies
Warning
- Location
- SKILL.md:20
- Finding
- Mandatory installation guidance uses unpinned third-party Skill and MCP repositories<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md:20-32`; `scripts/check_dependencies.py:10-12, 38-48` **Vulnerability Type**: Supply-chain exposure through mutable third-party repositories **Risk Level**: Medium ### Complete Code Snippet From `SKILL.md:20-32`: ```markdown 若任一缺失,必须输出安装引导并暂停当前重写任务。安装引导顺序: 1. 优先使用 `$skill-installer` 安装缺失 skill。 2. 若无可用安装器,则给出手动安装地址: - grok-search skill: `https://github.com/Frankieli123/grok-skill` - grok-search MCP: `https://github.com/GuDaStudio/GrokSearch` - github-helper: 当前用户 GitHub 仓库中的 `github-helper` skill 仓库 3. 明确标记“依赖未满足,重写任务暂停”。 ``` From `scripts/check_dependencies.py:10-12`: ```python GROK_SKILL_REPO = "https://github.com/Frankieli123/grok-skill" GROK_MCP_REPO = "https://github.com/GuDaStudio/GrokSearch" GITHUB_HELPER_REPO = "https://github.com/dandandujie/github-helper" ``` From `scripts/check_dependencies.py:38-48`: ```python if not (report["has_grok_search_skill"] or report["has_grok_search_mcp"]): report["install_guide"].append( "缺少 grok-search(skill 或 mcp)。skill 仓库: " f"{GROK_SKILL_REPO};mcp 仓库: {GROK_MCP_REPO}" ) if not has_helper_skill: report["install_guide"].append( "缺少 github-helper skill,请先安装后再执行重写。仓库地址: " f"{GITHUB_HELPER_REPO}" ) ``` ### Technical Analysis The dependency preflight makes external Skills or an MCP server mandatory and directs the user or agent to install them from GitHub repository URLs. These references are not pinned to reviewed commit hashes, immutable release artifacts, signed tags, or verified checksums. Consequently, the code or instructions ultimately installed can change after this Skill has been reviewed. The Skill documentation is also inconsistent about the source of `github-helper`: `SKILL.md` describes a repository belonging to the current user, while the Python script supplies a fixed third-party repository. This inconsistency increases the chance that an u ...[truncated 2028 chars]
- Remediation
- <![CDATA[ ## Remediation Suggestions 1. Pin every external dependency to an immutable, reviewed commit hash or versioned release artifact. 2. Publish and verify SHA-256 or stronger cryptographic hashes for downloaded artifacts. 3. Prefer signed releases or signed Git tags and document the trusted signer identities. 4. Maintain an explicit allowlist of approved Skill and MCP sources. 5. Require informed user confirmation before any external Skill or executable MCP component is installed. 6. Make the `github-helper` source consistent between `SKILL.md` and `check_dependencies.py`. 7. Extend the preflight report to include the expected repository, pinned revision, checksum, and verification status. 8. Review dependency updates before changing pins; do not automatically follow mutable default branches. 9. Run MCP components with least privilege, restricting filesystem, environment, credential, tool, and network access to what the rewrite task requires. 10. Treat installed Skill text as executable policy content and review it for instruction hijacking before activation. ]]>
