Back to skill

Security audit

Uniswap Setup DCA

Security checks for vulnerabilities and agentic risk

Overview

This skill is not malicious, but it asks agents to handle real token swaps while overclaiming recurring automation and persistence that its declared tools do not clearly support.

Review this before installing in any wallet-enabled environment. Use pinned, reviewed install sources; verify the skill version; and do not rely on it to create recurring automation unless you can independently confirm the local config file or Gelato task was actually created, funded, and cancellable. Treat any approval or first swap as real financial activity with possible future spending implications.

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

Warning
Location
README.md:12
Finding
Unpinned Installation Commands Execute Mutable Third-Party Dependencies<![CDATA[ ## Vulnerability Details **File Location**: `README.md`, lines 12–18 **Vulnerability Type**: Supply-chain risk through unpinned npm tooling and mutable remote Skill content **Risk Level**: Medium ### Vulnerable Code ```bash npx skills add https://github.com/wpank/Agentic-Uniswap/tree/main/.ai/skills/setup-dca ``` Or via Clawhub: ```bash npx clawhub@latest install setup-dca ``` ### Technical Analysis The documented installation procedure invokes third-party npm tools through `npx` without pinning them to reviewed versions. The second command explicitly requests `clawhub@latest`, while the first retrieves Skill content from the mutable `main` branch of an external GitHub repository. Neither installation path specifies an immutable Git commit, package version, checksum, signature, or other integrity control. As a result, the dependencies and Skill content executed or installed by these commands may differ from the files reviewed during this audit. This creates a supply-chain trust boundary in which compromise of the relevant npm package, npm publisher account, GitHub repository, or repository maintainer account could replace legitimate installation behavior or Skill instructions with attacker-controlled content. ### Attack Path 1. An attacker compromises an upstream npm publisher account, the referenced GitHub repository, or a maintainer account. 2. The attacker publishes a malicious version of `clawhub` or `skills`, or modifies the Skill content on the repository's `main` branch. 3. A user follows the installation instructions and runs one of the documented `npx` commands. 4. `npx` resolves and executes the mutable third-party package under the user's local privileges, or installs the modified remote Skill. 5. Malicious installation code could access resources available to the invoking user. Alternatively, substituted Skill instructions could later abuse wallet-related tools when the Skill is activated. 6. Because the Skill's legitimate purpose ...[truncated 958 chars]
Remediation
<![CDATA[ ## Remediation Suggestions 1. Pin every npm utility to a reviewed, exact version rather than relying on implicit resolution or `@latest`: ```bash npx clawhub@<reviewed-version> install setup-dca npx skills@<reviewed-version> add <source> ``` 2. Reference the Skill source using an immutable Git commit rather than the mutable `main` branch: ```text https://github.com/wpank/Agentic-Uniswap/tree/<full-commit-hash>/.ai/skills/setup-dca ``` 3. Publish expected cryptographic checksums or signed release artifacts and verify them before installation. 4. Use package-lock integrity metadata, provenance attestations, and npm signature or provenance verification where supported. 5. Advise users to download and inspect the package and Skill content before executing installation tooling, particularly in environments containing wallet credentials. 6. Run installation in a restricted environment with no wallet access, minimal filesystem permissions, and no unnecessary secrets in environment variables. 7. Establish a release process that reviews and signs each published Skill version, and document the exact audited version in the README. ]]>
Vulnerability Patterns
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (7)

Rp1

Medium
Category
MCP Rug Pull
Confidence
92% confidence
Finding
The README instructs users to run `npx skills add ...` without pinning an exact package version, which means the code fetched and executed can change over time. Because `npx` may download and run the latest published package, a compromised or malicious upstream release could execute arbitrary code on the user's machine during installation.

Rp1

Medium
Category
MCP Rug Pull
Confidence
97% confidence
Finding
The command `npx clawhub@latest install setup-dca` explicitly requests the latest version, creating a moving trust target. If the package publisher account is compromised or a harmful update is released, users following the README could execute attacker-controlled code as part of the install flow.

External Model or Provider Selection

Medium
Category
Excessive Agency
Content
schedule, or build a DCA bot. Covers USDC approval, swap path selection,
  frequency configuration, Gelato keeper automation, and monitoring. Works on
  local testnet for development or mainnet for production.
model: opus
allowed-tools:
  - Task(subagent_type:trade-executor)
  - mcp__uniswap__execute_swap
Confidence
90% confidence
Finding
Skill selects an external model or provider that may use a different account or billing plan than the operator expects. Undisclosed model switches can cause unexpected cost or quota consumption.

Description-Behavior Mismatch

Medium
Confidence
96% confidence
Finding
The skill advertises capabilities to persist DCA state and set up Gelato automation, but its declared tools only support quoting, balances, safety checks, and swap execution. This mismatch can cause the agent or user to believe recurring automation and durable configuration exist when they do not, creating a dangerous gap between promised controls and actual execution behavior for financial operations.

Intent-Code Divergence

Medium
Confidence
95% confidence
Finding
The skill instructs that self-execute mode writes a local .uniswap/dca-config.json file, but no tool or mechanism exists to perform file writes. In a trading workflow, this can leave users believing a recurring strategy has been safely recorded when no durable state exists, leading to missed executions, unintended repeats, or unsafe manual recovery.

Intent-Code Divergence

Medium
Confidence
97% confidence
Finding
The skill claims it can create and fund Gelato automation tasks, yet the allowed toolset has no Gelato integration or generic contract-management capability. In this context, users may authorize an initial swap expecting future autonomous execution, but no keeper may actually be created, or the agent may attempt unsupported actions around on-chain automation, creating significant financial and operational risk.

Missing User Warnings

Medium
Confidence
90% confidence
Finding
The skill describes recurring agent-triggered or on-chain swaps, but it does not provide a strong, separate warning that approval and setup may lead to future executions beyond the initial trade. In a financial skill, this is especially dangerous because users may treat the first confirmation as a one-time action while the workflow is designed to continue spending funds on a schedule.

Static analysis

No suspicious patterns detected.