T08 · Insecure Dependencies
- Location
SKILL.md:25- Finding
Unpinned Global Installation and Execution of a Third-Party npm Package
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 25-28
Vulnerability Type: Unpinned third-party dependency installed globally and executed
Risk Level: Mediumbash npm install -g graph-aave-mcp graph-aave-mcpTechnical Analysis
The setup instructions install the latest available version of
graph-aave-mcpfrom the npm registry into the global package scope and then execute it. The project does not specify an exact dependency version, provide a lockfile, require integrity verification, or include the package source for inspection.Consequently, the code ultimately executed can differ from the code available when this skill was reviewed. npm installation may also execute package lifecycle scripts, while the installed server runs with the permissions of the invoking user. The required
GRAPH_API_KEYis present in the server process environment and may be accessible to dependency runtime code.The audit artifact contains only
SKILL.md; therefore, the package implementation, lifecycle scripts, API-key handling, network behavior, local-resource access, and claimed durable findings store could not be verified.Attack Path
- An attacker compromises the npm publisher account, package, or one of its transitive dependencies, or publishes a malicious future release.
- A user follows the documented
npm install -g graph-aave-mcpinstruction without selecting a previously reviewed version. - npm retrieves the attacker-controlled release and may execute its installation lifecycle scripts.
- The user runs
graph-aave-mcp, executing the package with the user's operating-system privileges. - Malicious code may read environment variables such as
GRAPH_API_KEY, access files and network resources available to the user, or modify files in locations writable by that account.
Impact Assessment
Successful exploitation would provide code execution with the privileges of the user performing ...[truncated 624 chars]
- Remediation
View remediation
Remediation Suggestions
- Pin the command to an exact, reviewed package version rather than installing the latest release.
- Avoid global installation. Declare the package in a local project manifest and commit the corresponding lockfile.
- Verify the package archive using an expected integrity hash or a trusted signed-release mechanism before execution.
- Review the selected release, its lifecycle scripts, and its complete transitive dependency tree.
- Disable npm lifecycle scripts during installation where they are unnecessary, and explicitly review any scripts that must be enabled.
- Run the MCP server under a dedicated, least-privileged account or sandbox with restricted filesystem and network access.
- Expose only the required API key to the process and avoid inheriting unrelated credentials or sensitive environment variables.
- Include the server source or a reproducible reference to the exact audited revision in the skill artifact.
- Establish dependency monitoring and require a new security review before updating the pinned version.
