T08 · Insecure Dependencies
- Location
SKILL.md:19- Finding
Unpinned Global Installation of a Third-Party npm Package
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 19–23
Vulnerability Type: Unverified and unpinned third-party dependency installation
Risk Level: Mediummarkdown If not found, install it: ```bash npm install -g pixelvault-clitext ### Technical Analysis The Skill instructs the agent to install `pixelvault-cli` globally from the npm registry without specifying a reviewed version, verifying package integrity, validating the publisher, or documenting an authoritative package source. Because the package version is not pinned, the effective code installed can change after the Skill has been reviewed. npm packages may also execute lifecycle scripts during installation. A malicious package release, compromised maintainer account, package takeover, or registry-level supply-chain incident could therefore cause attacker-controlled code to execute with the privileges of the user running the installation. The global installation scope increases exposure by making the executable available system-wide within the user's npm environment. The audited project does not provide evidence that the package identity, publisher, provenance, or release integrity is verified before installation. ### Attack Path 1. A user invokes the PixelVault setup Skill. 2. The Skill checks for the CLI using `which pixelvault`. 3. If the executable is absent, the agent runs `npm install -g pixelvault-cli`. 4. npm resolves the current package release from the configured registry because no version or integrity constraint is specified. 5. If the package, publisher account, dependency chain, or registry response has been compromised, malicious package code or lifecycle scripts execute during installation. 6. The resulting executable remains available in the user's global npm binary path and may execute additional attacker-controlled behavior when subsequent `pixelvault` commands are invoked. ### Impact Assessment Successful e ...[truncated 684 chars]- Remediation
View remediation
Remediation Suggestions
- Pin the CLI to a specifically reviewed version, for example
pixelvault-cli@<approved-version>, and update it only through an explicit review process. - Verify the package name, publisher identity, repository, npm provenance attestations, and cryptographic integrity against PixelVault's authoritative documentation.
- Document the canonical download source so agents do not rely solely on a package name supplied through registry resolution.
- Prefer a project-local, isolated, or otherwise least-privileged installation instead of a global installation.
- Review the package and its transitive dependencies, including lifecycle scripts, before approving a version.
- Where compatible with the verified package installation process, disable npm lifecycle scripts using
--ignore-scriptsor install in a sandbox that restricts file, network, and credential access. - Do not run the installation with
sudo, as an administrator, or from another elevated shell. - Use lockfiles and integrity metadata when distributing the CLI as part of a controlled project environment.
- Pin the CLI to a specifically reviewed version, for example
