T08 · Insecure Dependencies
- Location
SKILL.md:12- Finding
Unpinned Third-Party Package Is Installed Globally
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 12-19 and line 31
Vulnerability Type: Unpinned global npm dependency installation
Risk Level: MediumVulnerable Code
yaml "install": [ { "id": "npm", "kind": "npm", "package": "@wipcomputer/markdown-viewer", "global": true, "bins": ["mdview"], "label": "Install markdown-viewer (npm)", }, ],bash npm install -g @wipcomputer/markdown-viewerTechnical Analysis
The skill directs the agent or user to install the latest version of a third-party npm package globally. No exact package version, integrity digest, or locally auditable package source is supplied.
Because npm package references without versions normally resolve through a mutable distribution tag such as
latest, the code installed at execution time can differ from the code that existed when the skill was reviewed. npm installation may also run package lifecycle scripts under the invoking user's account.A global installation expands the effect beyond the current project by placing the
mdviewexecutable in a global binary location. The package implementation is not included in this repository, so the package's lifecycle behavior and runtime claims cannot be independently verified from the audited artifact.Attack Path
- An agent or user follows the installation command in
SKILL.md. - npm resolves the unversioned package from the configured registry.
- If the publisher account, registry path, distribution tag, or package release has been compromised, npm downloads the modified release.
- Package lifecycle scripts, if present, execute with the permissions of the invoking user.
- The package installs a global
mdviewexecutable, which can subsequently execute attacker-controlled behavior whenever invoked.
Impact Assessment
Exploitation could permit arbitrary code execution with the ...[truncated 354 chars]
- An agent or user follows the installation command in
- Remediation
View remediation
Remediation Suggestions
- Pin the dependency to an exact, reviewed version rather than using an unversioned package reference.
- Record and verify the package integrity digest through a lockfile or equivalent trusted verification mechanism.
- Prefer a project-local installation so that the executable and its effects remain scoped to the project.
- Review the package contents and lifecycle scripts before installation.
- Use
--ignore-scriptswhen lifecycle scripts are unnecessary and compatibility has been verified. - Consider vendoring the reviewed implementation or including its source in the audited artifact.
- Run the viewer under a minimally privileged account or sandbox with access limited to the required workspace.
