T08 · Insecure Dependencies
Warning
- Location
- SKILL.md:17
- Finding
- Unpinned third-party installation commands permit mutable supply-chain execution## Vulnerability Details **File Location**: `SKILL.md:17`; `README.md:26`; `README.md:32` **Vulnerability Type**: Unpinned and mutable third-party installation sources **Risk Level**: Medium ### Vulnerable Code `SKILL.md:17`: ```bash npx clawhub@latest install decision-frameworks ``` `README.md:26`: ```bash npx add https://github.com/wpank/ai/tree/main/skills/meta/decision-frameworks ``` `README.md:32`: ```bash npx clawhub@latest install decision-frameworks ``` ### Technical Analysis The documented installation procedures instruct users to retrieve and execute third-party npm packages without pinning them to immutable, reviewed versions. The `clawhub@latest` specification explicitly resolves to whichever release is currently tagged as `latest`. Its executable contents can therefore change after this audit without any modification to this repository. The `npx add` command similarly retrieves and executes the npm package named `add`, while passing a mutable GitHub branch URL under `tree/main`. Neither the npm package nor the referenced repository content is pinned to a reviewed version or commit, and no checksum or integrity verification is provided. Because `npx` executes downloaded package code, a compromised package publisher, npm account, package release, or upstream repository could convert these installation instructions into an arbitrary-code execution channel. This is a supply-chain weakness rather than evidence that the currently referenced packages are malicious. ### Attack Path 1. An attacker compromises the publisher account, npm package, release process, or mutable upstream repository used by one of the documented commands. 2. The attacker publishes malicious CLI or lifecycle code under the version resolved by `@latest`, the package invoked as `add`, or content referenced by the mutable GitHub branch. 3. A user follows the installation instructions from `SKILL.md` or `README.md`. 4. `npx` ...[truncated 900 chars]
- Remediation
- ## Remediation Suggestions 1. Replace `@latest` with an exact, reviewed npm package version, for example `clawhub@X.Y.Z`. 2. Pin GitHub-hosted content to a reviewed commit SHA rather than the mutable `main` branch. 3. Replace the ambiguous `npx add ...` invocation with a clearly identified and version-pinned installer. 4. Publish and verify cryptographic checksums or package integrity metadata before installation. 5. Prefer lockfiles, package-manager integrity controls, and trusted registries with provenance verification. 6. Review the selected package version and its lifecycle scripts before recommending it. 7. Where practical, download and inspect the installer separately rather than combining retrieval and execution in one command. 8. Document that installation must run as an unprivileged user and must not be invoked with `sudo` or equivalent elevation.
