T08 · Insecure Dependencies
- Location
SKILL.md:15- Finding
Unpinned npm CLI Executed During Skill Installation
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md:15
Vulnerability Type: Unpinned executable third-party dependency
Risk Level: MediumVulnerable Code Snippet:
bash npx skills add nexscope-ai/eCommerce-Skills --skill profit-margin-calculator-tiktok -gTechnical Analysis
The documented installation command invokes the
skillsnpm package throughnpxwithout specifying an exact package version or verifying package integrity. If the package is not already available locally,npxcan retrieve and execute the version currently resolved by the configured npm registry.Consequently, the code executed during installation is not immutable and may differ from the code reviewed at the time this skill was published. A compromised package, compromised maintainer account, registry substitution, dependency-chain compromise, or unexpected future package release could cause arbitrary code to execute during installation.
The
-gargument also requests global installation of the skill through the invoked CLI. Although this does not inherently grant administrator privileges, it broadens the persistence and availability of any installed content within the user's skill environment.Attack Path
- An attacker compromises the npm package resolved as
skills, one of its transitive dependencies, or its publishing account. - The attacker publishes a malicious version containing installation-time or runtime code.
- A user follows the documented command without pinning a known-good version.
npxresolves, downloads, and executes the attacker-controlled package.- The malicious package executes with the permissions of the user running the command.
- It may read or modify any files accessible to that user, access inherited environment variables, alter the user's development environment, or install malicious skill content in the global skill scope.
Impact Assessment
Successful exploitation can p ...[truncated 560 chars]
- An attacker compromises the npm package resolved as
- Remediation
View remediation
Remediation Suggestions
-
Pin the executable package to a specific, reviewed version, for example:
bash npx --yes skills@<audited-version> add nexscope-ai/eCommerce-Skills --skill profit-margin-calculator-tiktok -g -
Publish and document the expected package publisher, registry, version, and integrity digest.
-
Prefer a lockfile-backed local installation over dynamically executing the latest registry version.
-
Review the pinned package and its complete transitive dependency tree before recommending it.
-
Avoid global installation unless global availability is required. Prefer a project-local or otherwise isolated skill installation.
-
Run installation with a non-privileged account and in a constrained environment that does not expose unrelated credentials or sensitive environment variables.
-
Add automated dependency monitoring and require explicit security review before updating the pinned version.
-
