Back to skill

Security audit

graph-uniswap

Security checks for vulnerabilities and agentic risk

Overview

The skill is clearly about Uniswap market queries, but it starts an unpinned npm-based MCP server automatically with a Graph API key exposed to that process.

Review this before installing. Use a dedicated low-privilege Graph API key, avoid sharing unrelated environment variables with the MCP process, and prefer a pinned or otherwise verified graph-uniswap-mcp version. Be cautious with generic swap or quote requests because the skill may activate for finance questions that are not specifically about Uniswap.

Vulnerability Patterns
  • Insecure DependenciesIntroduces malicious components through unsafe dependency sources
  • Skill Instruction HijackingAlters the agent's session goals or safety constraints when the skill loads
  • Agent Memory PoisoningWrites attacker-controlled rules into memory that affect later sessions
  • Remote Payload Retrieval and ExecutionFetches external code whose behavior can change after review
  • Embedded Malicious CodeShips malicious scripts inside the skill and executes them locally
Findings (1)

T08 · Insecure Dependencies

Error
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
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
Findings (2)

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
89% confidence
Finding

The trigger keywords are very broad finance terms like swap, quote, pool, liquidity, and token price, which overlap with common user requests and can cause the skill to activate in situations broader than intended. Unintended invocation increases the chance of unnecessary external tool use, privacy leakage in prompts sent to the MCP server, or user confusion in security-sensitive financial contexts.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
94% confidence
Finding

The skill instructs users to run an MCP server via npx -y graph-uniswap-mcp without pinning an exact package version or integrity hash. That creates a supply-chain risk: a newly published or compromised package version could be fetched and executed automatically, and because MCP servers run code locally and may access environment variables such as GRAPH_API_KEY, compromise could lead to credential theft or arbitrary code execution.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.