T08 · Insecure Dependencies
Warning
- Location
- README.md:17
- Finding
- Unpinned Third-Party Skill Installation Without Integrity Verification<![CDATA[ ## Vulnerability Details **File Location**: `README.md:17-34` **Vulnerability Type**: `T08: Insecure Dependencies` **Risk Level**: Medium ### Vulnerable Code ```bash ### Option A: Personal skill (available in all projects) git clone https://github.com/davidgeorgehope/elasticsearch-skill.git mkdir -p ~/.claude/skills/elasticsearch cp elasticsearch-skill/SKILL.md ~/.claude/skills/elasticsearch/ cp -r elasticsearch-skill/references ~/.claude/skills/elasticsearch/ ### Option B: Project skill (available in one repo only) git clone https://github.com/davidgeorgehope/elasticsearch-skill.git /tmp/elasticsearch-skill mkdir -p .claude/skills/elasticsearch cp /tmp/elasticsearch-skill/SKILL.md .claude/skills/elasticsearch/ cp -r /tmp/elasticsearch-skill/references .claude/skills/elasticsearch/ ``` ### Technical Analysis The installation instructions clone the mutable default branch of a third-party personal GitHub repository and copy its instruction-bearing Markdown files directly into a trusted Claude Skill directory. The instructions do not pin a reviewed commit, select a signed release, or verify a checksum or signature. A Skill's Markdown content controls how an agent uses its tools. Consequently, changes made upstream after this audit can alter the effective behavior installed by users. Installing the Skill under `~/.claude/skills` increases exposure because that location makes it available across projects. No malicious remote payload was present in the audited artifact. The vulnerability is the absence of controls ensuring that future cloned content is identical to the reviewed content. ### Attack Path 1. An attacker compromises the upstream repository, its maintainer account, or the repository's default branch. 2. The attacker modifies `SKILL.md` or a referenced Markdown file to include malicious instructions or unsafe commands. 3. A user follows the documented installation procedure and clones the mutable default branch. 4. The modified files ar ...[truncated 840 chars]
- Remediation
- <![CDATA[ ## Remediation Suggestions 1. Pin installation instructions to a specific reviewed commit hash rather than the mutable default branch: ```bash git clone https://github.com/davidgeorgehope/elasticsearch-skill.git cd elasticsearch-skill git checkout --detach <reviewed-commit-sha> ``` 2. Prefer signed, versioned releases and document how users can verify the maintainer's signature. 3. Publish SHA-256 checksums for `SKILL.md` and every reference file, then require verification before copying them. 4. Advise users to inspect diffs before installing updates. 5. Avoid automatic update procedures that overwrite the trusted Skill directory from an unreviewed branch. 6. For personal installation, explicitly warn that the Skill will affect every project and recommend project-scoped installation when global availability is unnecessary. ]]>
