T08 · Insecure Dependencies
- Location
SKILL.md:49- Finding
Unpinned Third-Party Package Execution Through npx
- Content
View full analysis
**[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 installation instruction invokes `npx skills` without pinning the `skills` package to a specific audited version. Depending on the local npm configuration and cache state, `npx` may retrieve and execute the current package version from the configured registry. The requested Skill collection is also identified by a mutable repository-style name rather than an immutable commit or verified artifact. Consequently, the code and Skill instructions executed or installed when a user follows this command can differ from those present when this project was audited. This creates a supply-chain trust boundary involving: 1. The npm registry selected by the user's environment. 2. The publisher account and package currently resolving as `skills`. 3. The account and repository serving `aaron-he-zhu/seo-geo-claude-skills`. 4. Any dependencies or installation hooks used by those external components. No evidence establishes that the currently referenced package or collection is malicious. The vulnerability is the use of mutable, unverified external components in an execution-oriented installation command. ### Attack Path 1. An attacker compromises the npm package, its publisher account, the configured package registry, or the upstream Skill collection. 2. The attacker publishes malicious installer logic or modifies the collection to include malicious Skill instructions or scripts. 3. A user follows the command shown in `SKILL.md`. 4. `npx` resolves and downloads the mutable package version available at execution time. 5. The downloaded package runs with the invoking user's pri ...[truncated 912 chars]- Remediation
View remediation
add ``` 2. Pin the Skill collection to an immutable commit, release tag backed by a verified commit, or versioned registry artifact rather than a mutable repository reference. 3. Publish and verify cryptographic checksums or signatures for downloaded artifacts before installation. 4. Document the expected npm registry and package publisher identity. Avoid silently trusting registry overrides from user or project configuration. 5. Disable or inspect dependency lifecycle scripts during installation when supported. 6. Recommend installation in an isolated, least-privilege environment without unrelated credentials or sensitive environment variables. 7. Replace the generic installation banner with reproducible installation instructions that specify the audited package version, collection revision, expected digest, and verification procedure. 8. Re-audit the pinned installer and Skill collection whenever either pinned version is updated. ]]>
