T08 · Insecure Dependencies
- Location
README.md:27- Finding
Unpinned Package Execution Through npx Installation Instructions
- Content
View full analysis
Vulnerability Details
File Locations:
README.md:27README.md:87README_CN.md:27README_CN.md:87
Vulnerability Type: Unpinned third-party package execution
Risk Level: MediumVulnerable Code
bash npx skills add Foamtor/skill-auditorThe same command appears in both the Quick Start and installation sections of the English and Chinese documentation.
Technical Analysis
The installation instructions invoke the
skillsnpm package throughnpxwithout specifying a reviewed version or integrity constraint. If the package is not already available locally,npxcan retrieve the currently resolved release from the configured npm registry and immediately execute its CLI.Consequently, the code executed during installation is not limited to the contents of this audited repository. It can change after this repository has been reviewed because package resolution refers to a mutable package name rather than an immutable, verified artifact.
This creates a supply-chain trust boundary: compromise of the package publisher, npm account, registry resolution, or a newly published malicious version could cause users following the documented command to execute code that was not included in this audit.
Attack Path
- An attacker compromises the publisher account or release process for the npm package resolved as
skills, or otherwise causes a malicious version to be distributed through the configured registry. - The attacker publishes a version containing a malicious CLI implementation.
- A user follows the documented command:
bash npx skills add Foamtor/skill-auditor npxresolves and downloads the mutable package version.- The downloaded CLI runs with the privileges and environment of the invoking user.
- The malicious package can access resources available to that process, subject to operating-system permissions and any sandboxing in place.
Impact Assessment
Successful exploitation permits ...[truncated 672 chars]
- Remediation
View remediation
Remediation Suggestions
-
Pin the package to a specific version that has been reviewed:
bash npx --yes skills@REVIEWED_VERSION add Foamtor/skill-auditor -
Record the approved version in both README files and update it only after reviewing the corresponding package release.
-
Where practical, verify the downloaded package against a trusted integrity digest or lockfile before execution.
-
Prefer installation from an immutable repository commit or signed release artifact. For example, document a full commit hash rather than relying only on a mutable branch or package tag.
-
In CI environments, install dependencies using a committed lockfile and a clean, reproducible installation command rather than dynamically resolving the latest package.
-
Run installation commands in a sandbox or minimally privileged environment that does not expose unrelated credentials, sensitive directories, or privileged host resources.
-
Apply the same hardened command consistently at:
README.md:27README.md:87README_CN.md:27README_CN.md:87
-
