T08 · Insecure Dependencies
- Location
SKILL.md:15- Finding
Unpinned npx Installer Introduces a Supply-Chain Execution Risk
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 15–18
Vulnerability Type: Unpinned third-party installer and mutable Skill source
Risk Level: MediumVulnerable Code
bash npx skills add nexscope-ai/eCommerce-Skills --skill tariff-calculator-amazon -gTechnical Analysis
The documented installation command invokes
npxwithout pinning theskillspackage to an exact, reviewed version. Depending on the local environment and package availability,npxcan download and execute the current package published under that name.The Skill source,
nexscope-ai/eCommerce-Skills, is also referenced without an immutable commit identifier, release artifact checksum, or signature. Consequently, the code executed by the installer and the Skill content installed for the user can change after this project has been reviewed.The
-goption requests global installation, increasing the persistence and scope of any compromised content. The audited Python scripts do not require this external installation command for direct execution, so the additional supply-chain exposure is avoidable.No evidence was found that the currently reviewed local scripts are malicious. The vulnerability concerns the mutable external components executed or installed by the documented command.
Attack Path
- An attacker compromises the package registry account or publication pipeline for the unpinned
skillspackage, or compromises the referenced Skill repository. - The attacker publishes a malicious package version or modifies the repository content while retaining the expected package or repository name.
- A user follows the installation instructions and runs the documented
npx skills add ... -gcommand. npxresolves and retrieves the mutable external package, then executes its installer code with the privileges of the invoking user.- The compromised installer or repository content installs altered Skill files globally, and may perform any ot ...[truncated 708 chars]
- An attacker compromises the package registry account or publication pipeline for the unpinned
- Remediation
View remediation
Remediation Suggestions
- Pin the
skillspackage to an exact reviewed version, for example by using an explicit version instead of allowingnpxto resolve the latest release. - Pin the Skill repository to an immutable commit hash or distribute a versioned release artifact with a published cryptographic checksum.
- Verify package integrity, provenance, and publisher ownership before execution. Prefer signed artifacts where the package ecosystem supports them.
- Remove the global installation option unless global installation is strictly necessary. Use a project-local or isolated environment to limit the effect of a compromised installer.
- Avoid elevated execution and explicitly warn users not to run the installer with administrator or root privileges.
- Document direct offline execution of the reviewed Python scripts as the preferred method when installation through an external package is unnecessary.
- Add automated dependency provenance and integrity checks to the release process so that documented versions and checksums are updated only after review.
- Pin the
