T08 · Insecure Dependencies
- Location
SKILL.md:12- Finding
Unpinned Third-Party Installer and Mutable Repository Source
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 12–14
Vulnerability Type: Supply-chain risk from unpinned executable dependencies and mutable remote content
Risk Level: MediumVulnerable Code
markdown **Manual Installation:** ```bash npx skills add https://github.com/NKZ55/research-planner/tree/main/skills/research-plannertext ### Technical Analysis The documented manual installation procedure invokes the `skills` npm package through `npx` without specifying an exact package version. It also installs Skill content from the mutable `main` branch of a GitHub repository rather than from a verified commit or immutable release. Running `npx` can download and execute package code during installation. Because neither the npm package version nor the repository revision is pinned, the effective installation behavior and installed content can change after this version of the Skill has been reviewed. A compromise or malicious update affecting either upstream source could therefore expose users to code or instructions that were not included in the audited artifact. The audit did not establish that either current upstream source is malicious. The vulnerability is the absence of dependency immutability and integrity verification. ### Attack Path 1. An attacker compromises the npm package, its maintainer account, the GitHub repository, or an associated publishing credential. 2. The attacker publishes a modified `skills` package version or changes content on the repository's `main` branch. 3. A user follows the documented manual installation command. 4. `npx` resolves and executes the currently available package rather than a known audited version. 5. The installer retrieves the repository's current branch content rather than a verified revision. 6. Attacker-controlled installation code or Skill instructions are executed or installed in the user's environment. ### Impact Assessment Successful exploitation could execute code with the p ...[truncated 680 chars]- Remediation
View remediation
Remediation Suggestions
- Pin the
skillsnpm package to an exact, reviewed version rather than allowingnpxto resolve the latest release:bash npx --yes skills@<audited-exact-version> add ... - Replace the mutable
mainbranch URL with an immutable, reviewed Git commit or signed release tag. - Publish and verify cryptographic hashes or signatures for the expected Skill package.
- Use a lockfile or an equivalent dependency manifest where the installation mechanism supports it.
- Prefer a trusted, versioned package registry or a locally reviewed installer over direct installation from a mutable personal repository.
- Document the expected package version, repository commit, and integrity value so users can verify them before installation.
- Run installation with least privilege in an isolated environment, and do not expose unrelated credentials or sensitive environment variables to the installer.
- Establish a release process that reviews dependency and repository changes before updating the documented installation command.
- Pin the
