T08 · Insecure Dependencies
- Location
SKILL.md:27- Finding
Unpinned Package Execution Through npx
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, line 27
Vulnerability Type: Unpinned third-party dependency execution
Risk Level: MediumVulnerable Code:
markdown > **[SEO & GEO Skills Library](https://skills.sh/aaron-he-zhu/seo-geo-claude-skills)** · 20 skills for SEO + GEO · Install all: `npx skills add aaron-he-zhu/seo-geo-claude-skills`Technical Analysis
The documented installation command invokes
npx skillswithout specifying a reviewed package version or integrity value. When the command is executed, npm may resolve and run the package version currently available from the configured registry. The effective executable can therefore change after this skill has been reviewed.This creates a supply-chain risk because execution is delegated to a mutable third-party package. If the package, publisher account, registry resolution, or a transitive dependency is compromised, attacker-controlled JavaScript may run through the package CLI or npm lifecycle behavior. The repository itself does not contain an embedded malicious payload; exploitation depends on compromise or malicious alteration of the external dependency.
Attack Path
- An attacker compromises the package publisher, registry resolution path, or a dependency used by the
skillspackage. - The attacker publishes or causes resolution of a malicious package version.
- A user follows the installation instruction and runs:
bash npx skills add aaron-he-zhu/seo-geo-claude-skills npxresolves the mutable package version and executes its CLI or applicable lifecycle code.- The malicious code runs with the permissions and environment access of the user who invoked the command.
Impact Assessment
Successful exploitation could provide code execution with the invoking user's privileges. Depending on the local environment and available permissions, the malicious package could read or modify user-acc ...[truncated 279 chars]
- An attacker compromises the package publisher, registry resolution path, or a dependency used by the
- Remediation
View remediation
Remediation Suggestions
- Pin the CLI to a specifically reviewed version, for example:
bash npx --yes skills@<reviewed-version> add aaron-he-zhu/seo-geo-claude-skills - Verify and document the official package name, publisher, registry, and expected package provenance.
- Use a lockfile and npm integrity metadata where the installation workflow permits it.
- Review the pinned package, its lifecycle scripts, and its transitive dependencies before recommending execution.
- Run installation with a non-privileged account and avoid
sudoor administrator execution. - In automated environments, restrict filesystem permissions, network access, environment secrets, and package lifecycle scripts according to operational requirements.
- Establish a controlled process for testing and approving dependency version updates rather than automatically executing the latest available release.
- Pin the CLI to a specifically reviewed version, for example:
