T08 · Insecure Dependencies
- Location
README.md:24- Finding
Unpinned npm CLI and Git Repository in Installation Command
- Content
View full analysis
Vulnerability Details
File Location:
README.md, line 24
Vulnerability Type: Supply-chain risk from mutable, unpinned dependencies
Risk Level: Mediumbash npx skills add https://github.com/finskills/risk-manager --skill risk-managerTechnical Analysis
The documented installation command uses
npxto retrieve and execute theskillsnpm package without specifying a reviewed version. It also installs the Skill from a GitHub repository URL without pinning it to a verified commit or immutable release artifact.Both components are therefore mutable after this project has been audited. If the npm package, its maintainer account, the GitHub repository, or an associated publishing credential is compromised, the command may retrieve code different from the version originally reviewed. Since
npxexecutes the downloaded CLI, malicious behavior could occur during installation rather than only when the installed Skill is later invoked.Attack Path
- An attacker compromises the npm package, a package maintainer account, the upstream GitHub repository, or relevant publishing credentials.
- The attacker publishes a malicious version of the unpinned
skillsCLI or modifies the repository revision resolved by the installation command. - A user follows the installation instructions and runs the documented command.
npxdownloads and executes the currently resolved CLI package, which may contain attacker-controlled code.- The CLI retrieves the current mutable repository content and installs it.
- Malicious code can execute during installation or be placed in the installed Skill for later execution.
Impact Assessment
Successful exploitation could permit arbitrary code execution with the privileges of the user running the installation command. Depending on that user's permissions and environment, the attacker could access readable files and credentials, modify user-owned data, tamper with in ...[truncated 267 chars]
- Remediation
View remediation
Remediation Suggestions
- Pin the npm CLI to an explicitly reviewed version, for example by using an exact package version rather than allowing
npxto resolve the latest release. - Pin the GitHub source to a verified full commit hash or use an immutable, signed release artifact instead of the repository's mutable default branch.
- Enable integrity verification for downloaded packages and artifacts where supported.
- Publish release checksums and signatures through an independent trusted channel and document how users should verify them before installation.
- Use npm lockfiles and exact dependency versions for any packaged installer workflow.
- Run installation with least privilege and avoid executing it as
rootor another administrative account. - Add automated dependency provenance, signature, and vulnerability checks to the release process.
- Pin the npm CLI to an explicitly reviewed version, for example by using an exact package version rather than allowing
