T08 · Insecure Dependencies
Warning
- Location
- SKILL.md:24
- Finding
- Unpinned Remote Packages and Repository Content Executed Through npx## Vulnerability Details **File Location**: `SKILL.md:24`, `README.md:26`, and `README.md:32` **Vulnerability Type**: Supply-chain exposure through mutable, unverified remote dependencies **Risk Level**: Medium **Affected code snippets:** `SKILL.md:24`: ```bash npx clawhub@latest install persona-docs ``` `README.md:26`: ```bash npx add https://github.com/wpank/ai/tree/main/skills/writing/persona-docs ``` `README.md:32`: ```bash npx clawhub@latest install persona-docs ``` ### Technical Analysis The documented installation procedures use `npx`, which can download and execute third-party package code with the invoking user's permissions. The `clawhub@latest` reference is mutable and can resolve to a different package release after this skill has been reviewed. The GitHub installation command similarly references the mutable `main` branch rather than an immutable commit. In addition, `npx add` can resolve and execute the unpinned `add` package before processing the supplied repository URL. Consequently, the effective code executed during installation is neither contained in this audited project nor constrained to a cryptographically verified version. A malicious or compromised package release, registry account, GitHub repository, branch, maintainer account, or transitive dependency could alter the installation payload without requiring any modification to this repository. No evidence establishes that the currently referenced packages or repository are malicious. The vulnerability is the unsafe trust and execution model created by mutable, unverified external dependencies. ### Attack Path 1. An attacker compromises the relevant package registry account, package release process, GitHub maintainer account, repository branch, or a dependency used by the installer. 2. The attacker publishes malicious code under the mutable `latest` release or modifies content reachable through the `main` branch. 3. A user fo ...[truncated 1057 chars]
- Remediation
- ## Remediation Suggestions 1. Replace mutable package tags such as `@latest` with a reviewed, exact version. 2. Replace the GitHub `main` reference with a full immutable commit hash or a verified signed release. 3. Pin the command runner itself rather than invoking the ambiguous, unpinned `add` package. 4. Verify package provenance, checksums, signatures, and registry ownership before installation. 5. Use lockfiles and integrity metadata where package-manager workflows support them. 6. Prefer a non-executing manual installation procedure that downloads reviewed files and verifies their checksums before copying them into the destination. 7. Document that installation should occur without administrator privileges and in an isolated environment with no production credentials. 8. Periodically review pinned dependencies and update them only after auditing the new versions.
