T08 · Insecure Dependencies
- Location
README.md:16- Finding
Unpinned Package and Mutable Repository Used for Global Skill Installation
- Content
View full analysis
Vulnerability Details
File Location:
README.md, lines 16–17
Vulnerability Type: Unpinned third-party dependency and mutable remote source
Risk Level: Mediumbash npx skills add https://github.com/Hey-Salad/sustainability-playbook-skill --skill sustainability-playbook --yes --globalTechnical Analysis
The installation instructions invoke the
skillspackage throughnpxwithout specifying a package version. This allows the package manager to retrieve and execute whichever release is current when the command is run. The skill itself is also retrieved from a GitHub URL that is not pinned to a reviewed commit SHA or signed release.The
--yesoption suppresses interactive confirmation, while--globalexpands the installation scope beyond the current project. The effective code and content executed or installed by this command can therefore change after the audited revision has been reviewed.This is a supply-chain risk rather than evidence that the current repository is malicious. Exploitation requires compromise or malicious modification of the package, package publisher, upstream repository, or referenced default branch.
Attack Path
- An attacker compromises the package publishing account, the
skillspackage, the GitHub account, or the upstream repository. - The attacker publishes a malicious package release or modifies content reachable through the mutable repository URL.
- A user follows the documented installation command.
npxdownloads and executes the current unpinned package, which then retrieves the mutable repository content.- Malicious package entry-point or lifecycle logic executes with the invoking user's permissions.
- The global, non-interactive installation may place attacker-controlled content outside the current project and make it available to future agent sessions.
Impact Assessment
A compromised dependency could execute arbitrary commands with th ...[truncated 484 chars]
- An attacker compromises the package publishing account, the
- Remediation
View remediation
Remediation Suggestions
- Pin the
skillspackage to a specific reviewed version rather than allowingnpxto resolve the current release. - Pin the GitHub source to an immutable, reviewed commit SHA or a cryptographically signed release.
- Verify release signatures or published checksums before installation.
- Remove
--globalunless global installation is operationally necessary; prefer a project-local installation with minimal permissions. - Avoid
--yesfor security-sensitive installation workflows so users can inspect the resolved package and destination. - Use a lockfile or an internally mirrored and approved package artifact where possible.
- Document the exact package version, repository revision, expected files, and verification procedure.
- Run installation from an unprivileged account and, where practical, inside an isolated environment.
- Pin the
