T08 · Insecure Dependencies
- Location
README.md:13- Finding
Unpinned Package Execution and Mutable Skill Source During Installation
- Content
View full analysis
Vulnerability Details
File Location:
README.md:13-15
Vulnerability Type: Unpinned third-party package execution and mutable source installation
Risk Level: MediumVulnerable Code
bash npx skills add https://github.com/ollang/skills --skill ollangTechnical Analysis
The installation command invokes the
skillsnpm package throughnpxwithout specifying an exact package version. Depending on the local environment and cache state,npxcan retrieve and execute the package currently published under that name. The executed installation package is therefore not cryptographically tied to the version reviewed during this audit.The Git repository is also referenced without an immutable commit hash or signed release identifier. Its contents can change after review, meaning a later installation may receive Skill instructions that differ from the audited files.
This behavior creates a supply-chain trust gap. The command does not itself prove that either upstream source is malicious, but compromise of the npm package, publisher account, repository, or associated release process could turn the documented installation path into a remote code or malicious-Skill delivery mechanism.
Attack Path
- An attacker compromises the unpinned
skillsnpm package, its publisher account, or another component involved in resolving the package. - Alternatively, the attacker gains control of the referenced Git repository or modifies its default branch through a compromised maintainer account.
- The attacker publishes malicious package logic or replaces the repository's Skill content.
- A user runs the documented
npx skills add ...command. npxresolves and executes the package version available at installation time, which then consumes the mutable repository source.- The altered installer executes with the user's local privileges, or the altered Skill is installed and later influences an agent whe ...[truncated 764 chars]
- An attacker compromises the unpinned
- Remediation
View remediation
Remediation Suggestions
- Pin the npm installer to an exact reviewed version, for example:
bash npx --yes skills@X.Y.Z add https://github.com/ollang/skills.git#REVIEWED_COMMIT --skill ollang - Replace
REVIEWED_COMMITwith a full immutable Git commit hash rather than a branch or mutable tag. - Publish signed releases and document how users can verify the release signature and commit identity.
- Supply integrity hashes for downloadable release archives and require verification before installation.
- Prefer a reviewed local or vendored installer where practical, rather than executing a package fetched at installation time.
- Recommend installation from a dedicated low-privilege account or isolated environment. Explicitly warn users not to run the command with
sudoor administrative privileges. - Add dependency provenance monitoring and release controls, including multi-factor authentication, protected branches, mandatory review, and restricted npm publishing rights.
- Retain the manual installation option, but direct users to a versioned, signed release archive instead of the repository's mutable default branch.
- Pin the npm installer to an exact reviewed version, for example:
