T08 · Insecure Dependencies
- Location
README.md:14- Finding
Unpinned Dependencies and Mutable Remote Installation Source
- Content
View full analysis
Vulnerability Details
File Location:
README.md, lines 14 and 20
Vulnerability Type: Supply-chain exposure through unpinned executable dependencies and a mutable remote source
Risk Level: MediumComplete Code Snippet
bash npx skills add https://github.com/Hey-Salad/communication-playbook-skill --skill communication-playbook --yes --globalbash uvx snyk-agent-scan@latest --skills SKILL.mdTechnical Analysis
The documented commands retrieve and execute tooling without immutable version constraints:
npx skillsdoes not specify an exact package version.snyk-agent-scan@latestexplicitly resolves to a mutable release.- The GitHub installation URL is not pinned to a reviewed commit hash or immutable release artifact.
- The installation uses
--global, increasing the persistence and scope of any compromised content.
Package-manager execution commands can run package lifecycle logic or downloaded application code with the invoking user's privileges. Because the resolved content can change after this repository has been reviewed, auditing the two Markdown files does not establish the integrity of code subsequently fetched by these commands.
This is a supply-chain weakness rather than evidence that the current project contains malicious code. Exploitation requires compromise or malicious modification of an upstream package, account, repository, release, or dependency-resolution path.
Attack Path
- An attacker compromises an upstream package, maintainer account, release process, or referenced GitHub repository.
- The attacker publishes a malicious version under the package name resolved by
npx skills, replaces the release selected by@latest, or alters the unpinned repository content. - A user follows the installation or scanning instructions in
README.md. npxoruvxretrieves the mutable attacker-controlled content.- The downloaded tooling executes with the user's local privileges.
- In the ...[truncated 777 chars]
- Remediation
View remediation
Remediation Suggestions
- Pin every executable package to an exact, reviewed version instead of relying on implicit resolution or
@latest. - Pin the Skill source to a reviewed immutable commit hash or signed release artifact rather than a mutable repository URL.
- Verify package signatures, provenance attestations, lockfiles, or published checksums before execution.
- Remove
--globalunless global installation is strictly required. Prefer a project-local, isolated installation. - Run installation and scanning commands in a sandbox, container, or least-privileged environment without unnecessary credentials.
- Configure package managers to disable lifecycle scripts where compatible with the tooling.
- Establish an update process that reviews new versions before changing pins.
- Document the trusted publisher, expected package identity, exact version, and integrity verification procedure in
README.md.
- Pin every executable package to an exact, reviewed version instead of relying on implicit resolution or
