T08 · Insecure Dependencies
Warning
- Location
- SKILL.md:76
- Finding
- Unpinned Remote Installation Chain Permits Supply-Chain Substitution<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md:76-80` **Vulnerability Type**: Unpinned third-party package and mutable repository installation **Risk Level**: Medium ### Vulnerable Code ```bash # One-click installation using the skills CLI npx skills add zhaoxinghua09-cell/agent-skills -g # Alternatively, clone and copy the skill manually git clone https://github.com/zhaoxinghua09-cell/agent-skills.git cp -r agent-skills/skills/aml-sentinel ~/.workbuddy/skills/ ``` ### Technical Analysis The documented installation procedure executes an unpinned npm CLI through `npx` and retrieves an unpinned, mutable Git repository branch. Neither command binds the installed content to a reviewed package version, Git commit, release artifact, checksum, or cryptographic signature. Consequently, the content installed by a user can differ from the artifact covered by this audit. If the npm package, publishing account, source repository, maintainer account, or upstream delivery channel is compromised, an attacker can replace the expected skill with modified instructions or executable scripts. The `-g` installation option and subsequent copying into an Agent skill directory increase the potential scope: malicious content may become available across multiple Agent sessions rather than being confined to a temporary project environment. ### Attack Path 1. An attacker compromises the npm package, the repository, or an authorized maintainer account. 2. The attacker publishes a modified package version or changes the repository's default branch. 3. A user follows the documented `npx skills add ... -g` or `git clone` command. 4. The installation retrieves the attacker's current content rather than the reviewed artifact. 5. The malicious skill is placed in a global or persistent Agent skill directory. 6. When the Agent loads the altered instructions or invokes an altered script, attacker-controlled behavior executes under the user's privileges. ### Impact Assessme ...[truncated 497 chars]
- Remediation
- <![CDATA[ ## Remediation Suggestions 1. Pin the npm CLI or package to a reviewed version rather than relying on the latest available release. 2. Pin Git installations to an immutable commit hash or signed release tag. 3. Publish SHA-256 checksums for release artifacts and document how users should verify them before installation. 4. Cryptographically sign releases and verify signatures as part of installation. 5. Avoid global installation by default; prefer a project-scoped directory with minimal permissions. 6. Install only the specific skill artifact instead of cloning an entire mutable repository. 7. Add provenance metadata tying the package version, Git commit, and artifact checksum to the audited release. ]]>
