T08 · Insecure Dependencies
- Location
README.md:23- Finding
Unpinned Third-Party CLI and Mutable Repository Installation
- Content
View full analysis
Vulnerability Details
File Location:
README.md:23-57
Vulnerability Type: Unpinned third-party dependency execution and mutable remote installation source
Risk Level: MediumVulnerable Code
bash npx skills add ./analytics-sdk-setup -a claude-codebash npx skills add Peter-WF/analytics-sdk-setup -a claude-codebash npx skills list -a claude-codebash npx skills add ./analytics-sdk-setup -g -a claude-codeTechnical Analysis
The documented commands invoke the
skillsnpm package throughnpxwithout specifying a reviewed version or enforcing an integrity constraint. If the package is absent locally,npxmay retrieve and execute the currently resolved package version from the configured npm registry. The effective executable can therefore change after this project has been reviewed.The GitHub-source installation command also identifies the Skill through a repository name without pinning it to an immutable commit. Changes to the repository's default branch can consequently alter the installed content. This is especially significant for an agent Skill because installed instructions may later influence coding-agent behavior and access to project files.
These commands are documentation examples and are not executed automatically by the project. Exploitation therefore requires a user or automation process to follow the installation instructions. The risk arises from trusting mutable third-party supply-chain components at execution and installation time.
Attack Path
- An attacker compromises the npm package, its publisher account, the configured registry, or the referenced GitHub repository.
- The attacker publishes a malicious package version or changes the repository's default-branch content.
- A user follows the README and runs an unpinned
npx skillscommand. npxresolves and executes the attacker-controlled package version with the user's ...[truncated 999 chars]
- Remediation
View remediation
Remediation Suggestions
-
Pin the CLI to a reviewed, exact version:
bash npx --yes skills@X.Y.Z list -a claude-codeReplace
X.Y.Zwith a verified release and establish a controlled process for updating it. -
Prefer installing the CLI through a lockfile-controlled development dependency and invoking the locally installed binary:
bash npm install --save-dev --save-exact skills@X.Y.Z npx --no-install skills list -a claude-code -
Commit and review the package-manager lockfile. In automated environments, use reproducible installation commands such as
npm ci. -
Pin repository-based Skill sources to an immutable commit SHA rather than a mutable default branch, if supported by the CLI. Otherwise, download and review a fixed archive before installing it from a local path.
-
Verify package provenance, publisher identity, checksums, signatures, and registry configuration before execution. Document the expected package name and source to reduce dependency-confusion and registry-substitution risk.
-
Prefer project-scoped installation. Clearly warn that global installation broadens the impact to other projects and should only be performed after reviewing the exact installed content.
-
Run installation in a least-privileged environment without unnecessary credentials, sensitive environment variables, or write access beyond the intended project.
-
