T08 · Insecure Dependencies
- Location
SKILL.md:28- Finding
Unpinned Package Execution and Unverified Global Skill Installation
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 28–31 and 84–88
Vulnerability Type: Supply-chain exposure through unpinned dependencies and unverified external skills
Risk Level: MediumVulnerable Code
bash npx skills find [query] npx skills add <package> npx skills check npx skills updatebash npx skills add <owner/repo@skill> -g -yTechnical Analysis
The skill directs the agent to execute the unversioned
skillsnpm package throughnpx. When the package is unavailable locally,npxmay download and execute the package version currently resolved from the configured npm registry. Because the command does not pin an audited version or verify package integrity, the executable behavior can change after this skill has been reviewed.The installation workflow also allows skills from GitHub or other external sources. It does not require repository allowlisting, immutable commit pinning, signature or checksum validation, or inspection of downloaded files before installation. The documented
-g -yflags expand the installation to user-level global scope and suppress confirmation prompts.This creates a supply-chain trust boundary in which a compromised package, compromised repository, unsafe external source, or deceptive package identity could introduce attacker-controlled code or agent instructions.
Attack Path
- An attacker compromises the resolved
skillsnpm package, an upstream skill repository, or another accepted installation source. - A user asks the agent to discover or install a relevant skill.
- The agent executes the documented unpinned
npx skillscommand, causing the currently resolved package to run with the invoking user's privileges. - The attacker-controlled package or external skill executes during installation or places malicious content in the skill installation directory.
- Use of
-yprevents an interactive confirmation ...[truncated 945 chars]
- An attacker compromises the resolved
- Remediation
View remediation
Remediation Suggestions
-
Pin the CLI to an exact, audited version, for example:
bash npx --yes skills@<exact-version> find <query> -
Prefer a lockfile-backed local dependency installed through a controlled build process instead of downloading executable packages at runtime.
-
Restrict skill installation to approved repositories and verified publishers.
-
Pin external skills to immutable commit hashes or cryptographically verified releases.
-
Verify checksums or signatures where supported.
-
Inspect each skill's instructions, scripts, dependencies, lifecycle hooks, and external URLs before installation.
-
Remove
-yfrom the default workflow so users can review the resolved source, version, and requested changes. -
Avoid
-gby default. Use project-local or otherwise isolated installation unless global scope is explicitly necessary and approved. -
Run third-party installation tooling in a sandbox with restricted filesystem, network, environment-variable, and credential access.
-
Display the exact package identity, repository URL, immutable revision, publisher, and installation scope before execution.
-
