T08 · Insecure Dependencies
Warning
- Location
- SKILL.md:22
- Finding
- Unpinned Global Installation of a Third-Party npm Package## Vulnerability Details **File Location**: `SKILL.md`, line 22 **Vulnerability Type**: Supply-chain exposure through an unpinned global dependency **Risk Level**: Medium **Complete Code Snippet**: ```bash npm install -g tavily-mcp ``` ### Technical Analysis The documented command installs the latest available release of `tavily-mcp` globally 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 1. An attacker compromises the npm publisher account, package, or release process. 2. The attacker publishes a malicious release under the referenced package name. 3. A user follows the documented unpinned installation command. 4. npm resolves the command to the attacker-controlled latest release. 5. Malicious lifecycle scripts execute with the privileges of the user running npm. 6. 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
- ## 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 view` and `npm pack` before 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.
