T08 · Insecure Dependencies
- Location
SKILL.md:7- Finding
Unpinned Global npm Dependency Prevents Verification of Executable Behavior
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 7-12 and 24-28
Vulnerability Type: Unpinned third-party dependency installed globally
Risk Level: MediumComplete Code Snippet
yaml requires: bins: [skillbench] install: - id: node kind: node package: "@versatly/skillbench" bins: [skillbench] label: Install SkillBench CLI (npm)markdown ## Installation ```bash npm install -g @versatly/skillbenchtext ### Technical Analysis The skill delegates all executable behavior to the external npm package `@versatly/skillbench`. The package is installed globally without an exact version, integrity hash, lockfile, or included source code. Because npm resolves the current package release at installation time, the code executed by users can differ from the code available when this skill was reviewed. Global installation also exposes the package's installation lifecycle scripts and executable code to the permissions of the invoking user. The supplied project contains no implementation with which to verify the package's behavior. This is a supply-chain weakness rather than evidence that the currently published package is malicious. ### Attack Path 1. An attacker compromises the npm publisher account, package repository, or release process for `@versatly/skillbench`. 2. The attacker publishes a malicious release under the same package name. 3. A user follows the documented `npm install -g @versatly/skillbench` instruction without an exact version or integrity constraint. 4. npm resolves and installs the attacker-controlled release. 5. Package lifecycle scripts or the installed CLI execute with the invoking user's privileges. 6. The malicious package can access resources available to that user, subject to operating-system controls. ### Impact Assessment Successful exploitation could permit arbitrary code execution with the privileges of the user performing the installation or invoking the CLI. Potentially exposed ...[truncated 288 chars]- Remediation
View remediation
Remediation Suggestions
- Pin the dependency to a reviewed exact version, such as
@versatly/skillbench@X.Y.Z. - Publish and verify the expected npm integrity digest and package provenance.
- Include a lockfile or equivalent immutable dependency manifest where the installation model permits it.
- Avoid global installation; use a project-local dependency or a version-pinned
npxinvocation with appropriate safeguards. - Audit package lifecycle scripts and the CLI source before recommending installation.
- Link to the authoritative source repository and reproducible build information.
- Use automated dependency monitoring and require review before updating the pinned version.
- Document that installation must occur under a non-privileged account.
- Pin the dependency to a reviewed exact version, such as
