T08 · Insecure Dependencies
- Location
README.md:30- Finding
Unpinned npx Installer Creates a Mutable Supply-Chain Execution Path
- Content
View full analysis
Vulnerability Details
File Location:
README.md, lines 30–33
Vulnerability Type: Unpinned third-party installer execution
Risk Level: MediumVulnerable Code
bash # Install as part of sf-skills npx skills add Jaganpro/sf-skills # Or install just this skill npx skills add Jaganpro/sf-skills --skill sf-ai-agentscriptTechnical Analysis
The installation instructions invoke the
skillsnpm package throughnpxwithout specifying an exact package version or integrity value. If the package is not already available locally,npxcan retrieve and execute the currently resolved registry release.The
Jaganpro/sf-skillsargument identifies the Skill content repository, but it does not pin or authenticate the executable npm package responsible for installation. Consequently, the effective installer can change after this Skill has been reviewed.This creates a supply-chain trust boundary in which compromise of the npm package, its publisher account, registry resolution, or a future mutable release could cause arbitrary installer code to run under the user's account.
Attack Path
- An attacker compromises the npm publisher account, package distribution process, or another component capable of changing the package resolved as
skills. - The attacker publishes or substitutes a malicious release containing harmful installer or lifecycle code.
- A user follows the documented installation command without an exact version pin.
npxdownloads the currently resolved package release.- The malicious package executes with the privileges of the user running the command.
- Depending on local permissions, the payload could access user-readable files, environment variables, developer credentials, source repositories, or modify files within the user's account.
Impact Assessment
Successful exploitation could provide arbitrary code execution with the installing user's privileges. The s ...[truncated 547 chars]
- An attacker compromises the npm publisher account, package distribution process, or another component capable of changing the package resolved as
- Remediation
View remediation
Remediation Suggestions
-
Pin the installer to an audited exact version:
bash npx --yes skills@X.Y.Z add Jaganpro/sf-skills npx --yes skills@X.Y.Z add Jaganpro/sf-skills --skill sf-ai-agentscript -
Document the expected npm publisher, package source, and reviewed version so users can verify package provenance.
-
Publish and verify package integrity information, such as the expected npm integrity hash or signed release metadata.
-
Prefer a lockfile-controlled installation or a previously installed, organization-approved version of the installer rather than resolving the latest release at execution time.
-
In CI environments, install the pinned package with lifecycle scripts disabled when compatible with the installer:
bash npm install --ignore-scripts --save-exact skills@X.Y.Z -
Periodically review the pinned version and update it only after source and release-integrity verification.
-
