T08 · Insecure Dependencies
- Location
README.md:46- Finding
Unpinned Third-Party Package Execution Through npx
- Content
View full analysis
Vulnerability Details
File Locations:
README.md:46-56PUBLISH.md:33-40
Vulnerability Type: Supply-chain exposure caused by executing an unpinned third-party package
Risk Level: MediumVulnerable Code Snippet — README.md:46-56:
bash npx skills add <owner/repo>bash npx skills add your-username/deep-learningVulnerable Code Snippet — PUBLISH.md:33-40:
bash npx skills add <your-username>/deep-learningbash npx skills add mikonos/deep-learningTechnical Analysis
The documented installation process uses
npxwithout pinning theskillspackage to a specific version or verifying its integrity. Depending on local npm andnpxbehavior, the command may download and execute the version currently resolved from the configured npm registry.The Skill source is also identified using a mutable GitHub owner/repository reference rather than an immutable commit hash or a cryptographically verified release artifact. Consequently, the effective installation components can change after this project has been reviewed.
This creates a supply-chain trust gap. Compromise of the npm publisher, npm package, registry configuration, GitHub account, or referenced repository could cause users to retrieve content different from the audited content.
Attack Path
- An attacker compromises the npm package or publisher account associated with the
skillscommand, poisons a registry used by the victim, or compromises the referenced GitHub repository. - The attacker publishes or introduces a modified installer, dependency, or Skill version.
- A user follows the project documentation and runs the unpinned
npx skills add ...command. npxresolves and executes the mutable package version, which then retrieves the mutable repository content.- The compromised component performs actions using the permissions available to the user's shell or inst ...[truncated 870 chars]
- Remediation
View remediation
Remediation Suggestions
- Pin the npm command-line package to a reviewed version, for example by using an explicit package version rather than allowing
npxto resolve the latest release. - Pin the installed Skill to an immutable Git commit hash or signed release tag instead of relying exclusively on a mutable owner/repository name.
- Publish expected checksums for release artifacts and verify them before installation.
- Document the expected npm publisher, repository owner, package name, and release provenance so users can detect typosquatting or ownership changes.
- Use npm lockfiles and integrity metadata wherever installation is performed through a maintained local project.
- Prefer an installation process that downloads the Skill for review before activation, rather than immediately executing a remotely resolved installer.
- Advise users to run installation with least privilege and never through an administrator or root shell.
- Add release signing or provenance attestations and document how users can verify them.
- Pin the npm command-line package to a reviewed version, for example by using an explicit package version rather than allowing
