T08 · Insecure Dependencies
- Location
README.md:17- Finding
Unpinned npx Installer Executes Mutable Third-Party Code
- Content
View full analysis
Vulnerability Details
File Location:
README.md:17-19andREADME.zh-CN.md:17-19
Vulnerability Type: Unpinned executable dependency
Risk Level: MediumVulnerable code:
markdown ## Install ```bash npx skills add 241x/network-request-twistertext ### Technical Analysis The documented installation command invokes the `skills` npm package through `npx` without specifying an exact package version or integrity value. If the package is not already available locally, `npx` may retrieve and execute the version currently resolved by the npm registry. Consequently, the code executed during installation can change after this Skill has been audited. This creates a supply-chain trust boundary involving the package publisher, registry, transitive dependencies, and dependency resolution configuration. The Python dependencies in `scripts/pyproject.toml:8-14` similarly use open-ended minimum versions without an accompanying lockfile or hashes. Although these are legitimate mainstream packages, the dependency set is not reproducible. ### Attack Path 1. An attacker compromises the npm package publisher, registry entry, dependency chain, or a configured package mirror. 2. The attacker publishes a malicious version that satisfies the unpinned package request. 3. A user follows the installation instructions. 4. `npx` downloads the currently resolved package version. 5. The downloaded CLI or its installation lifecycle code executes with the installing user's privileges. ### Impact Assessment Successful exploitation could execute arbitrary code under the installing user's account. Depending on that account's permissions, malicious installer code could read user-accessible files and credentials, modify projects, establish network connections, or alter local development tools. The reviewed project does not itself contain evidence that the current dependency is malicious. The risk arises because the command ...[truncated 58 chars]- Remediation
View remediation
Remediation Suggestions
- Pin the installer to an audited exact version:
bash npx skills@<audited-exact-version> add 241x/network-request-twister - Document the expected official registry and package publisher.
- Use integrity verification or a checked-in lockfile where the installation mechanism supports it.
- Review lifecycle scripts and transitive dependencies for every pinned release.
- Pin Python dependencies to tested versions and distribute a lockfile containing cryptographic hashes.
- Perform dependency updates through an explicit review process rather than resolving unrestricted current releases during installation.
- Pin the installer to an audited exact version:
