T08 · Insecure Dependencies
- Location
README.md:30- Finding
Unpinned Third-Party Installer and Mutable Remote Source
- Content
View full analysis
Vulnerability Details
File Location:
README.md, lines 29-31
Vulnerability Type: Supply-chain risk from an unpinned installer and mutable remote dependency
Risk Level: MediumVulnerable Code:
bash npx add https://github.com/wpank/ai/tree/main/skills/api/rate-limitingTechnical Analysis
The installation command invokes
npx addwithout pinning theaddpackage to a specific, reviewed version. If the package is not already available locally,npxmay retrieve and execute it from the npm registry with the permissions of the user running the command.The content to install is also referenced through the mutable Git branch
main, rather than an immutable commit hash or signed release. Consequently, the effective package and Skill content executed or installed can change after this repository has been reviewed. No checksum, signature, lock file, or other integrity-verification mechanism is provided.This creates two supply-chain trust boundaries:
- The unpinned npm package resolved for
add. - The mutable third-party GitHub repository content referenced through
main.
Compromise of the relevant npm package, publisher account, GitHub repository, maintainer account, or branch could alter the content delivered to users.
Attack Path
- An attacker compromises the npm package, its publisher account, the referenced GitHub repository, or a maintainer account.
- The attacker publishes a malicious package version or modifies content on the
mainbranch. - A user follows the documented installation command.
npxresolves and executes the unpinned installer package, which processes content from the mutable remote source.- The malicious installer or remote content executes code or installs modified Skill instructions in the user's environment.
Impact Assessment
Successful exploitation could execute arbitrary code with the privileges of the user running the installation ...[truncated 539 chars]
- The unpinned npm package resolved for
- Remediation
View remediation
Remediation Suggestions
- Replace the ambiguous
npx addinvocation with a documented and trusted installer pinned to an exact package version. - Pin the GitHub source to a reviewed immutable commit hash instead of the mutable
mainbranch. - Publish and verify a cryptographic checksum or signature for the downloaded Skill content.
- Use npm lock files and integrity metadata where an npm-based installer is required.
- Prefer a transparent installation procedure that downloads reviewed files without executing an unrelated package.
- Document the expected file list and hashes so users can verify the installed content before loading the Skill.
- Advise users to perform installation with least privilege and never through an administrative or root account.
- Replace the ambiguous
