T08 · Insecure Dependencies
- Location
SKILL.md:8- Finding
Unpinned Global Installation of a Third-Party npm Package
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 8-12
Vulnerability Type: Unpinned third-party dependency installed globally
Risk Level: Mediumbash ## Install Notipo CLI if it doesn't exist ```bash npm install -g notipotext ### Technical Analysis The installation instruction retrieves the latest available version of the `notipo` npm package without pinning a reviewed version or verifying package integrity. The `-g` option installs the package into the global npm environment rather than isolating it within the project. npm installation may execute package lifecycle scripts. Consequently, the effective code executed by this instruction can change after the Skill has been reviewed. A compromised npm maintainer account, malicious package release, or future vulnerable version could result in arbitrary code running with the privileges of the user performing the installation. Although installing the CLI supports the Skill's declared publishing functionality, using an unpinned global installation grants the dependency broader and less predictable access than is necessary. ### Attack Path 1. An attacker compromises the npm package, its maintainer account, or the package publication process. 2. The attacker publishes a malicious version under the legitimate `notipo` package name. 3. A user or agent follows the Skill instruction and runs `npm install -g notipo`. 4. npm retrieves the current malicious version because no version is pinned. 5. Malicious package code or lifecycle scripts execute with the installing user's privileges. 6. The installed global executable can subsequently process API credentials, post content, and publishing operations. ### Impact Assessment Successful exploitation could provide arbitrary code execution under the account running npm. Depending on that account's permissions, an attacker could access environment variables such as `NOTIPO_API_KEY`, read or modify user- ...[truncated 186 chars]- Remediation
View remediation
Remediation Suggestions
- Pin the dependency to a specifically reviewed version rather than installing the latest release.
- Prefer a project-local dependency with a committed lockfile over a global installation.
- Verify package provenance and registry integrity before installation.
- Use npm integrity controls and periodically review the pinned package and its transitive dependencies.
- Run installation and the CLI under a non-privileged account.
- Disable lifecycle scripts during installation when they are not required, then explicitly review any required scripts.
- Document the expected package publisher, version, and cryptographic integrity value so users can detect unexpected releases.
