T08 · Insecure Dependencies
- Location
skill.json:20- Finding
Unpinned Third-Party npm Package Is Downloaded and Executed Automatically
- Content
View full analysis
, 100k queries/month free) in `GRAPH_API_KEY`. The server runs over stdio via `npx -y graph-uniswap-mcp`. ``` From `skill.json:20-22`: ```json "command": "npx", "args": ["-y", "graph-uniswap-mcp"], "env": { "GRAPH_API_KEY": "required — free at https://thegraph.com/studio" } ``` ### Technical Analysis The Skill starts `graph-uniswap-mcp` through `npx -y` without specifying an exact package version or integrity hash. When the package is not already available in the local npm cache, `npx` can retrieve it from the configured npm registry and execute it. The `-y` option suppresses the normal installation confirmation. Because no package source, lockfile, integrity metadata, or vendored implementation is included in the audited project, the effective executable payload is not fixed by the reviewed files. A future package release, compromised maintainer account, registry compromise, or malicious dependency introduced into the package could change the code executed by the Skill without any modification to this repository. The child process is also supplied with `GRAPH_API_KEY`. As ordinary locally executing Node.js code, a compromised package could read that credential and access other resources available to the process. The reviewed files do not demonstrate that the current npm package is malicious; the vulnerability is the unsafe, mutable dependency execution model. ### Attack Path 1. An attacker compromises the npm account, publication pipeline, package, or transitive dependency associated with `graph-uniswap-mcp`. 2. The attacker publishes a malicious version under the same package name. 3. A user or Agent invokes this Skill on a system where `npx` ...[truncated 1187 chars]- Remediation
View remediation
