T08 · Insecure Dependencies
Warning
- Location
- README.md:31
- Finding
- Unpinned Remote Installation Commands Allow Supply-Chain Code Execution<![CDATA[ ## Vulnerability Details **File Locations**: - `README.md:31-38` - `SKILL.md:24-28` - `k8s-manifest-generator/README.md:31-32` **Vulnerability Type**: Unpinned third-party installers and mutable remote sources **Risk Level**: Medium ### Vulnerable Code `README.md:31-38`: ```bash npx add https://github.com/wpank/ai/tree/main/skills/devops/kubernetes ``` ```bash npx clawhub@latest install kubernetes ``` `SKILL.md:24-28`: ```bash npx clawhub@latest install kubernetes ``` `k8s-manifest-generator/README.md:31-32`: ```bash npx add https://github.com/wpank/ai/tree/main/skills/devops/kubernetes/k8s-manifest-generator ``` ### Technical Analysis The installation documentation instructs users to invoke packages through `npx`. This mechanism can download and execute npm package code under the privileges of the current user. The command using `clawhub@latest` explicitly selects a mutable package release instead of a reviewed and pinned version. The GitHub-based commands also refer to repository branch paths rather than immutable commit hashes. As a result, the content executed or installed by these commands may change after this version of the Skill has been audited. No evidence establishes that the current upstream packages or repository are malicious. The vulnerability is the absence of immutable dependency pinning and integrity verification, which creates a supply-chain trust boundary outside the audited project. ### Attack Path 1. An attacker compromises the npm publisher account, npm package, GitHub account, or upstream repository used by the documented installation command. 2. The attacker publishes a malicious `latest` package version or modifies content reachable through the mutable repository path. 3. A user follows the installation instructions and runs the documented `npx` command. 4. `npx` retrieves the altered package or installer from the external source. 5. Package lifecycle or installer code executes in the user's environment. 6. The ...[truncated 1091 chars]
- Remediation
- <![CDATA[ ## Remediation Suggestions 1. Replace `@latest` with a specifically reviewed package version: ```bash npx clawhub@<verified-version> install kubernetes ``` 2. Pin GitHub-hosted content to a full immutable commit hash rather than a mutable branch: ```text https://github.com/wpank/ai/tree/<full-commit-hash>/skills/devops/kubernetes ``` 3. Publish and document cryptographic checksums or signed release artifacts so users can verify integrity before installation. 4. Prefer a download-review-install workflow over directly executing remotely retrieved package code. 5. Document the expected package publisher, repository owner, release version, commit hash, and checksum. 6. Configure CI security checks to detect installation instructions containing mutable selectors such as `@latest`, unpinned Git branches, or unverified remote installers. 7. Advise users not to run installation commands with administrator or root privileges. ]]>
