T08 · Insecure Dependencies
- Location
SKILL.md:22- Finding
Unpinned Global Installation of a Third-Party npm Package
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, line 22
Vulnerability Type: Supply-chain exposure through an unpinned global dependency
Risk Level: MediumComplete Code Snippet:
bash npm install -g tavily-mcpTechnical Analysis
The documented command installs the latest available release of
tavily-mcpglobally without pinning a reviewed version or verifying package provenance and integrity. npm packages can execute lifecycle scripts during installation. A global installation can also place executable files in a user-wide or system-wide binary directory.No evidence establishes that the named package is malicious. The vulnerability is the unsafe dependency-installation pattern: the effective installed code can change after this skill has been reviewed.
Attack Path
- An attacker compromises the npm publisher account, package, or release process.
- The attacker publishes a malicious release under the referenced package name.
- A user follows the documented unpinned installation command.
- npm resolves the command to the attacker-controlled latest release.
- Malicious lifecycle scripts execute with the privileges of the user running npm.
- The package may install globally accessible executables or modify files writable by that user.
Impact Assessment
Successful exploitation could execute arbitrary code with the invoking user's privileges. The accessible scope may include the user's files, environment variables, development credentials, npm configuration, and globally writable executable locations. If the command is run from an elevated shell, the impact could extend to system-wide files and other users.
- Remediation
View remediation
Remediation Suggestions
- Pin the package to an explicitly reviewed version, such as
tavily-mcp@X.Y.Z. - Verify the npm publisher, repository, provenance attestations, signatures where available, and package integrity before installation.
- Review package contents and lifecycle scripts using commands such as
npm viewandnpm packbefore execution. - Prefer a project-local or isolated installation over a global installation.
- Use a lockfile and reproducible installation workflow where applicable.
- Run installation without administrative privileges and from an environment that does not expose sensitive credentials.
- Document a trusted authoritative source for the expected package name and version.
- Pin the package to an explicitly reviewed version, such as
