T08 · Insecure Dependencies
Warning
- Location
- SKILL.md:12
- Finding
- Unpinned Third-Party Installation Commands Enable Supply-Chain Compromise<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md`, lines 12-22 **Vulnerability Type**: Unpinned executable dependencies and mutable installation sources **Risk Level**: Medium ### 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 route ``` ```bash npx clawhub@latest install route # or: pnpm dlx clawhub@latest install route # or: bunx clawhub@latest install route ``` ### Technical Analysis The documented installation procedure executes npm-distributed command-line tools and installs content from a mutable GitHub repository reference. The npm package is selected through the `latest` tag, while the GitHub repository is not pinned to a commit hash or cryptographically verified release. Consequently, the code executed by these commands can change after this version of the Skill has been reviewed. A compromised npm package release, package-maintainer account, GitHub account, or upstream default branch could replace legitimate installation behavior with arbitrary code. This issue is limited to users who follow the documented installation commands. The audited runtime script itself does not dynamically retrieve or execute a remote payload. ### Attack Path 1. An attacker compromises the npm package, package-publishing credentials, GitHub repository, or upstream maintainer account. 2. The attacker publishes a malicious version under the `latest` tag or modifies the repository's mutable default branch. 3. A user follows one of the documented installation commands. 4. `npx`, `pnpm dlx`, or `bunx` downloads and executes the attacker-controlled package version. 5. The malicious installer runs with the privileges of the user performing the installation. ### Impact Assessment Successful exploitation could provide arbitrary code execution under the installing user's account. Depending on that accoun ...[truncated 398 chars]
- Remediation
- <![CDATA[ ## Remediation Suggestions - Pin each package runner dependency to an exact, audited version instead of using `@latest`. - Pin the GitHub source to a reviewed commit hash or immutable signed release tag. - Publish expected checksums or signatures and require verification before installation. - Prefer installing from a locked manifest with integrity metadata. - Document the exact versions and commit hashes that correspond to the audited Skill release. - Use a restricted, nonprivileged account or sandbox when running third-party installation tooling. ]]>
