T08 · Insecure Dependencies
Warning
- Location
- SKILL.md:7
- Finding
- Unpinned Global npm Dependency Prevents Verification of Executable Behavior## Vulnerability Details **File Location**: `SKILL.md`, lines 7-12 and 24-28 **Vulnerability Type**: Unpinned third-party dependency installed globally **Risk Level**: Medium ### Complete 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/skillbench ``` ``` ### 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
- ## 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 `npx` invocation 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.
