T08 · Insecure Dependencies
Error
- Location
- SKILL.md:15
- Finding
- Unpinned Third-Party Installers Create a Supply-Chain Execution Risk<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md:15-24` **Vulnerability Type**: Unpinned and mutable third-party dependencies **Risk Level**: High ### Vulnerable Code ```bash # Install all skills from repo npx skills add https://github.com/barneyjm/camino-skills # Or install specific skills npx skills add https://github.com/barneyjm/camino-skills --skill camino-route ``` ```bash npx clawhub@latest install camino-route # or: pnpm dlx clawhub@latest install camino-route # or: bunx clawhub@latest install camino-route ``` ### Technical Analysis The installation instructions execute packages and retrieve Skill content from mutable external sources without pinning an immutable npm version, Git commit, or verified integrity digest. The `@latest` npm tag can resolve to a different package version over time. Likewise, installing directly from a GitHub repository without specifying a commit allows the downloaded content to change after this artifact has been audited. The instruction to install all companion Skills also expands the trusted codebase beyond the single audited Skill. Package runners such as `npx`, `pnpm dlx`, and `bunx` download and execute package code in the local user context. If the npm package, publisher account, GitHub account, repository, or distribution channel is compromised, altered installer code could execute without being represented in this audited project. No evidence was found that the currently reviewed `route.sh` script retrieves or executes remote code. The risk arises specifically from the documented installation process. ### Attack Path 1. An attacker compromises the referenced npm publisher, package, GitHub repository, maintainer account, or release process. 2. The attacker publishes a modified version under the mutable `latest` tag or changes the repository's default branch. 3. A user follows one of the documented installation commands. 4. The selected package runner downloads and executes the attacker-contro ...[truncated 720 chars]
- Remediation
- <![CDATA[ ## Remediation Suggestions 1. Replace `@latest` with a reviewed, exact package version, such as `clawhub@X.Y.Z`. 2. Pin Git-based installation to an immutable reviewed commit hash rather than the repository's default branch. 3. Publish and verify cryptographic checksums or package signatures before execution. 4. Use npm lockfiles and integrity metadata where supported. 5. Avoid recommending installation of the entire companion suite when only `camino-route` is required. 6. Review package lifecycle scripts before running package managers, and disable scripts where installation permits it. 7. Perform installation in a restricted container or sandbox with minimal filesystem access, no unnecessary credentials, and no elevated privileges. 8. Establish a controlled update process so newer versions are audited before changing the pinned reference. ]]>
